Part Number:TMS320F28388D
TI工程师你好
8个uint16 写flash,报Fapi_Error_AsyncIncorrectDataBufferLength
代码如下——————————————————————————-
uint16 Buffer[8] = {1,2,3,4,5,6,7,8};
for(i=0, u32Index = 0xA8000;(u32Index < (0xA8000 +8));i+= 8, u32Index+= 8)
{
oReturnCheck =Fapi_issueProgrammingCommand((uint32 *)u32Index,Buffer+i,8, 0, 0, Fapi_AutoEccGeneration);
….
….
….
….
oReturnCheck 返回来“Fapi_Error_AsyncIncorrectDataBufferLength”
帮忙分析一下
HE HE:
Buffer,地址如下,已经是128bits对齐
unsigned int[8] (Hex) 0x00008000@Data
,
HE HE:
如果采用 64bit对齐,一次写4个word是否可行?
,
Susan Yang:
关于此,请您看一下
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/951668/faq-faq-on-flash-api-usage-for-c2000-devices
10. How many bits can be programmed at a time using Fapi_issueProgrammingCommand()?
中给出的说明
,
HE HE:
文中写到“(i) if the address is 128-bit aligned, then a max of eight 16-bit words (128-bits) can be programmed at a time.”
没有解决我的疑问,问题再重述,如下
写Buffer,unsigned int[8] (Hex) 0x00008000@Data,已经是128bits对齐,为什么写8个words,会报错
,
Susan Yang:
使用 Fapi_AutoEccGeneration 模式编程时,一次可以编程的 16 位字(为编程功能提供的第三个参数)的数量只有 4 个或 8 个。当地址为 128 位对齐时,您可以编程 8 个 16 位字。看起来您的代码没有问题。
请问您的cmd文件是怎样的?
您可以看一下下面文档第20页上半部分NOTE的内容
https://www.ti.com/lit/ug/spnu632/spnu632.pdf