Other Parts Discussed in Thread: UNIFLASH, SYSBIOS, TM4C1294NCPDT
After flashing the "MSP432E4 Flash Based USB DFU Boot Loader Example" output file to the 432 device I then put the 432 into bootloader mode by cycling power after grounding pin PJ0 to ground. Once in bootloader mode I then flash usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt over USB using BSL-scripter and I get the following result.
C:\ti\BSL-Scripter>bsl-scripter.exe script_usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
---------------------------------------------------------
BSL Scripter 3.4.0.1
PC software for BSL programming
2021-Oct-18 15:33:56
---------------------------------------------------------
Input file script is : C:/ti/BSL-Scripter/script_usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
MODE E4xx USB
Found device at USB port with device bus number : 0x01
and device address is: 0x08
Found DFU interface : 0x00
RX_DATA_BLOCK_FAST usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
Read Txt File : C:\ti\BSL-Scripter\usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
Time elapsed of writing 44272 bytes : 2.773 seconds
Speed of writing data :15.59(kB/s)
REBOOT_RESET
Once flashed I reset power and the 432 fails to show up in device manager under ports with a valid com assignment and I can no longer find DFU. To get the part functional again I must erase the device using Uniflash. The only changes I've made to the usb_serial_device_MSP_EXP432E401Y_tirtos_ccs example are below. What am I missing? Thanks!
Changes made to MSP_EXP432E401Y_TIRTOS.cmd:
#define BOOTLOADER_CODE 1 /* * ======== MSP_EXP432E401Y_TIRTOS.cmd ======== * Define the memory block start/length for the MSP_EXP432E401Y M4F */ --stack_size=1024 /* C stack is also used for ISR stack */ HEAPSIZE = 0x20000; /* Size of heap buffer used by HeapMem */ #if BOOTLOADER_CODE #define APP_BASE 0x00004000 #else #define APP_BASE 0x00000000 #endif MEMORY { FLASH (RX) : origin = APP_BASE, length = (0x00100000 - APP_BASE) SRAM (RWX) : origin = 0x20000000, length = 0x00040000 } /* Section allocation in memory */ SECTIONS { .intvecs: > APP_BASE .text : > FLASH .const : > FLASH .rodata : > FLASH .cinit : > FLASH .pinit : > FLASH .init_array : > FLASH .TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT) .data : > SRAM .bss : > SRAM .sysmem : > SRAM /* Heap buffer used by HeapMem */ .priheap : { __primary_heap_start__ = .; . += HEAPSIZE; __primary_heap_end__ = .; } > SRAM align 8 .stack : > SRAM (HIGH) }
Original code:
/* * ======== MSP_EXP432E401Y_TIRTOS.cmd ======== * Define the memory block start/length for the MSP_EXP432E401Y M4F */ --stack_size=1024 /* C stack is also used for ISR stack */ HEAPSIZE = 0x20000; /* Size of heap buffer used by HeapMem */ MEMORY { FLASH (RX) : origin = 0x00000000, length = 0x00100000 SRAM (RWX) : origin = 0x20000000, length = 0x00040000 } /* Section allocation in memory */ SECTIONS { .text : > FLASH .const : > FLASH .rodata : > FLASH .cinit : > FLASH .pinit : > FLASH .init_array : > FLASH .TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT) .data : > SRAM .bss : > SRAM .sysmem : > SRAM /* Heap buffer used by HeapMem */ .priheap : { __primary_heap_start__ = .; . += HEAPSIZE; __primary_heap_end__ = .; } > SRAM align 8 .stack : > SRAM (HIGH) }
Added these 2 lines to the top of ..\usb_serial_device_tirtos\tirtos_builds_MSP_EXP432E401Y_release_ccs\release.cfg
var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi'); m3Hwi.resetVectorAddress = 0x4000; /* App base */