大神们,我现在正在做一个应用,需要熟悉STM32F4的FLASH的任何错误标识,以用于特殊情况下的错误标识判断做相应处理,但是针对FLASH的编程对齐错误标志(PGAERR)与我理解不同。 原文描述:不允许针对 Flash 执行跨越 128 位行界限的数据编程操作。如果出现这种情况,写操作将不会执行,并且 FLASH_SR 寄存器中的编程对齐错误标志位 (PGAERR) 将置 1。 我的理解:就是在对flash的地址0x0800 000F、0x0800 001F、0x0800 002F……等地址进行WORD编程,因为地址未对齐,并且接近128位行界限地址,所以编程会产生编程对齐错误,置位PGAERR。 但实际验证与我的理解不一样,按照我的理解写程序,最终产生的是编程并行位数错误, PGPERR将置 1。 麻烦帮我解答下,谢谢 |
手册描述这个的目的是要求用户对齐编程,照着做就是了。照着做通常不会出错的。即使真的出错了,库里面出错接口也只能重新写或者报警。 用户研究这个意义不大,这个只对芯片设计人员有意义。
手册描述这个的目的是要求用户对齐编程,照着做就是了。照着做通常不会出错的。即使真的出错了,库里面出错 ...
麻烦不清楚我问题的实际答案就不要另类回答,我既然提出这个问题肯定不只是对flash编程正确的需求这么简单,既然ST提供出来,自然是给用户用的,那文档没说明清楚或与实际测试不相符,就要弄懂,这也是学好技术的好习惯,“要知其然,更要知其所以”。