This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28377D:串行闪存编程

Guru**** 2041660 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1267786/tms320f28377d-serial-flash-programming

器件型号:TMS320F28377D

您好!

我正尝试使用手册《C2000 微控制器串行闪存编程》(SPRABV4F–2021年10月–2023年7月修订)通过串行方式向 TMS320微控制器发送固件。 当我使用闪烁示例使过程一切正常时、但当我尝试使用我的代码执行此操作时、我会得到" 不正确的数据缓冲区长度 在执行 DFU CPU1 [1]操作后出现错误。

我注意到十六进制(ASCII)文件格式似乎错误。 我正在使用手册中编写的命令:  

serial_flash_programr.exe -d f2837xD -k F2837xD_sci_flash_kernels_cpu01.txt -a output_of_my_program.txt -p COM7 -v


运行命令后内核正确加载

在此之后、我选择选项1 (DFU CPU1)并且会显示此错误(0x122 -不正确的数据缓冲区长度)




这是2837x_FLASH_Ink _CPU1.cmd 文件


Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
MEMORY
{
PAGE 0 : /* Program Memory */
/* Memory (RAM/FLASH) blocks can be moved to PAGE1 for data allocation */
RAMM0 : origin = 0x000122, length = 0x0002DE
RAMD0 : origin = 0x00B000, length = 0x000800
RAMLS0 : origin = 0x008000, length = 0x000800
RAMLS1 : origin = 0x008800, length = 0x000800
RAMLS2 : origin = 0x009000, length = 0x000800
RAMLS3 : origin = 0x009800, length = 0x000800
RAMLS4 : origin = 0x00A000, length = 0x000800
RESET : origin = 0x3FFFC0, length = 0x000002
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 20012000
GROUP { /* GROUP memory ranges for crc/checksum of entire flash */
#endif
#endif
/* BEGIN is used for the "boot to Flash" bootloader mode */
BEGIN : origin = 0x080000, length = 0x000002
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

有些人能帮忙吗?  

谢谢!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Leonardo、

    您能否将链接器文件中的参数更改为"align 指令"、并再次尝试加载?  

    我想知道引导加载程序需要的是128位对齐的地址还是64位对齐的地址。  将所有 Align 参数更改为8将解决此问题。

    如果您的反馈有所帮助、我们将寻找您的反馈。

    此致!

    马修