Part Number:TMS320F28035
flash API 中为什么没有读flash的函数?
#if FLASH_F2803x
#define Flash_Erase(a,b) Flash2803x_Erase(a,b)
#define Flash_Program(a,b,c,d) Flash2803x_Program(a,b,c,d)
#define Flash_Verify(a,b,c,d) Flash2803x_Verify(a,b,c,d)
#define Flash_ToggleTest(a,b) Flash2803x_ToggleTest(a,b)
#define Flash_DepRecover() Flash2803x_DepRecover()
#define Flash_APIVersionHex() Flash2803x_APIVersionHex()
#define Flash_APIVersion() Flash2803x_APIVersion()
#endif
Susan Yang:
您可以直接使用读如下的指针来获取
Uint16 *Flash_ptr; // Pointer to a location in flash
Flash_ptr = Sector[1].StartAddr;
,
user5860441:
感谢,已经自己编写了一个read函数了。再问两个问题
扇区是硬件决定的还是软件决定的?CMD文件中能不能把一个扇区长度变小一点,一个变大一点?
一个扇区16KB,前两个地址写好数据,最后两个地址写好数据,现在要重新修改前两个地址的数据,怎么弄才不会影响最后两个地址的数据?
,
Susan Yang:
user5860441 说:CMD文件中能不能把一个扇区长度变小一点,一个变大一点?
扇区是已经固定好的。但是您可以在cmd文件内来合并连续扇区来组成更大的空间
user5860441 说:一个扇区16KB,前两个地址写好数据,最后两个地址写好数据,现在要重新修改前两个地址的数据,怎么弄才不会影响最后两个地址的数据?
我记得Program写入函数一次只能操作1个16-bit字长度
,
user5860441:
可以写入一个数组。
我的意思是当要修改已经被编程的数据时,要使用擦除函数,怎么不影响不想修改的同扇区的其他地址的数据?
,
Susan Yang:
FLASH存储区一次擦除的最小单位是1个扇区;
,
user5860441:
这个我知道,就是这个原因,怎么不影响不想修改的同扇区的其他地址的数据?
,
user5860441:
1个扇区16KB,整个RAM才20KB,我不能说把整个扇区中的数据都读出来,修改好,再擦除扇区,再program吧?
,
Susan Yang:
就目前来说,是这样的机制:
擦的时候一次擦除的最小单位是1个扇区;Program写入函数一次可以操作1个16-bit字长度