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.
在第14页的 SPNU629A 中、它说第三个参数是数据缓冲区中16位字的数量(作为寄存器#2传递)。 第18页的"实施范例"符合这一定义。
但 C2000Ware 中的闪存内核会传递字节数、而不是16位字的数量。 例如:C2000Ware_3_03_00_00_Software/device_support/f2837xd/examples/dual/F2837xD_sci_flash_kernel/cpu01//shared_Boot.c. 它声明一个 miniBuffer 为8个 UINT16字长、用8个数据字填充它、并将 sizeof (miniBuffer)作为第三个参数传递给 Fapi_issueProgrammingCommand()。 sizeof ()以字节为单位进行测量、因此 sizeof (miniBuffer)应返回16、而不是指定字数时预期的8个字节。
那么、第三个参数应该是什么? 文档中有什么内容(字数)或示例有什么作用(字节数)?
Mike
PS 为什么闪存库不支持 ELF 目标格式? 甚至 TI 也将其称为"传统 COFF"格式!
好的、我看到你做了什么。 sizeof (unit16_t)=sizeof (uint8_t)=1! 虽然根据 C 标准是合法的、但我在30多年的时间里就不必处理这种脑损伤。 实际上、我上次不得不处理 TI DSP 处理器时。 或 Harris 24位 mini。 因此、文档和代码都是"正确的"。
如果闪存库可用 ELF 格式、那还是很好的。 必须同时支持 ELF 和"传统 COFF"、这只是一个不必要的难题。
Mike、
关于 sizeof()的内核使用:您得到了正确的答案。
关于 EABI 库: 是的、我们将迁移到 EABI。 它很快将在 C2000ware 中提供。
谢谢、此致、
Vamsi