主题中讨论的其他器件:UNIFLASH、 SYSBIOS、 TM4C1294NCPDT
将"MSP432E4基于闪存的 USB DFU 引导加载程序示例"输出文件刷写到432器件后、我通过在将引脚 PJ0接地后循环通电源、将432置于引导加载程序模式。 进入引导加载程序模式后、我使用 BSL-scripter 通过 USB 闪存 usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt、并获得以下结果。
C:\ti\BSL-Scripter>bsl-scripter.exe script_usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
--------------------------------------
BSL Scripter 3.4.0.1
用于 BSL 编程的 PC 软件
2021年10月18日15:33:56
--------------------------------------
输入文件脚本为:C:/ti/BSL-Scripter/script_usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
模式 E4xx USB
在 USB 端口找到设备总线编号为0x01的设备
器件地址为:0x08
找到 DFU 接口:0x00
RX_DATA_BLOCK_FAST usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
阅读 txt 文件:C:\ti\BSL-Scripter\usb_serial_device_MSP_EXP432E401Y_tirtos_ccs.txt
写入44272字节所用的时间:2.773秒
数据写入速度:15.59(kb/s)
reboot_reset
刷写后、I RESET 电源、432无法在具有有效 COM 分配的端口下显示在设备管理器中、因此我无法再找到 DFU。 为了使该部件再次正常工作、我必须使用 Uniflash 擦除器件。 下面是我对 USB_serial_device_MSP_EXP432E401Y_tirtos_ccs 示例所做的唯一更改。 我缺少什么? 谢谢!
对 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)
}
原始代码:
/*
* ======== 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)
}
将这2行添加到 了..\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 */