主题中讨论的其他器件:HALCOGEN
您好!
我遇到了一个问题,当块大小配置为大于4040读取导致数据损坏. 在4040字节后,数据被损坏。 当块大小配置为最高4040时、一切都正常工作。 在本例中、每个虚拟扇区都分配给一个闪存扇区(4KB)。 我有32个虚拟扇区和16个大小为4095的块。 因此、我猜我处于部门规模之内。 任何帮助都会被感激.
此致
乌沙·约加帕奈克
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.
您好!
我遇到了一个问题,当块大小配置为大于4040读取导致数据损坏. 在4040字节后,数据被损坏。 当块大小配置为最高4040时、一切都正常工作。 在本例中、每个虚拟扇区都分配给一个闪存扇区(4KB)。 我有32个虚拟扇区和16个大小为4095的块。 因此、我猜我处于部门规模之内。 任何帮助都会被感激.
此致
乌沙·约加帕奈克
Jagadish、您好!
谢谢你的答复。 您的解释会将其清除。 但我仍然遇到问题、要将大数据写入/读取到多个块中。
我目前的配置是32个虚拟扇区, 16个大小2048块。
但是、每当我尝试写入10个或更多个块时、读取数据会失败、并且随机块的错误代码 block_invalid。 尽管首次尝试始终失败、但多达9个块的读取/写入工作正常。 我已经附加了 ti_fe_cfg.c 和 ti_fe_cfg.h。 您能看一下吗?
e2e.ti.com/.../6237.ti_5F00_fee_5F00_cfg.he2e.ti.com/.../6237.ti_5F00_fee_5F00_cfg.c
e2e.ti.com/.../8524.eeprom_5F00_bank_5F00_rw_5F00_example.zipI已附加了项目文件。 我正在使用 TMS570LC43x LaunchPad 进行测试。 您能看一下吗?
此致
宇沙
Jagadish、您好!
某个操作。 这些是我的初始配置。 后来我手动配置了/edited ti_fee_cfg.h 并且 ti_fe_cfg.c 没有使用 halcogen 来重新生成代码。 无论如何、我已经添加了更新的项目文件。 这应该会有所帮助。
诚挚的问候,谢谢
宇沙
e2e.ti.com/.../5344.eeprom_5F00_bank_5F00_rw_5F00_example.zip
尊敬的 Usha:
我了解了问题的根本原因!

所有数据块的大小不能超过虚拟扇区长度。 这意味着所有数据块的大小应小于一个虚拟扇区大小。
在您的代码中、我们没有遵循此条件。 这意味着如果我们计算每个线性调频脉冲的
所有数据块的大小=(数据块数*一个数据块的大小)+(数据块数*数据块标头的大小)
=(16 * 2048)+(16 * 24)= 33152字节= 32.375KB
但是、我们的配置中的一个虚拟扇区大小等于一个物理扇区大小、即4KB。

您还可以在下面看到类似的问题主题:
(+) TMS570LS3137:TI FEE 驱动器将大数据读取/写入多个块的问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
此处客户也执行了相同的操作、他声明了16个块、每个块2048字节、4个虚拟扇区、每个虚拟扇区大小为32KB。 由于总块大小大于虚拟扇区大小(32.375KB >32KB)、他最终会出现相同的问题。
后来、他减小了数据块大小、同时将两个物理扇区映射到一个虚拟扇区(在他的器件中、每个 物理扇区的大小为32KB)、现在、虚拟扇区的总大小变为64KB、远远大于块总大小、然后他的代码运行良好。
因此、请在您的代码中也执行相同的操作。 请记住、对于 LC4357、物理扇区大小非常小、即 e.4KB。 因此、请在进行配置时确保所有数据块大小都应小于虚拟扇区大小。
--
谢谢。此致、
Jagadish。