本小节将以TI的例程为例来介绍Flash闪存的固件库使用方法。
1)闪存程序。
2)创建write_flash工程。
3)编译write_flash工程生成可执行的.out格式文件。
4)在LaunchPad(EK-TM4C123GXL)板上对程序进行调试。
①将编译生成的.Out文件导入LaunchPad板中。
②在22行处设置一个断点,然后单步执行程序,当程序指针位于25行时的运行结果如图10-3所示。
图10-3 清零GPIO_DATA寄存器
从图10-3中可以看到,如果GPIO_DATA寄存器的值不为0,当程序执行完GPIOPin-Write()后,该寄存器将被清零。因此,观察到的结果都符合程序所表达的含义。(www.xing528.com)
③在29行FlashErase(0x10000)处设置一个断点,当单步执行完该语句后的结果如图10-4所示。
图10-4 擦除地址0x10000处的数据
从图10-4可以看到,当执行完该条语句后的确擦除了地址为0x10000处的数据。
然后继续单步执行,当执行完FlashProgram()语句后的结果如图10-5所示。
图10-5 向地址0x10000写入的数据
从图10-5可以看到,写入的数据和从闪存中读出的数据完全相同,验证了程序功能正确。
5)在LaunchPad(EK-TM4C123GXL)板上对程序进行测试。将编译生成的.out文件下载到LaunchPad板中,让程序全速在LaunchPad板中运行。从地址0x10000和0x10004读出的闪存数据和程序中待写入的数据相同(见图10-5)。这时打开PuTTY“串口助手”,其测试结果如图10-6所示。
图10-6 待写入和从闪存中读回数据的测试结果
从图10-6中可以看到写入到闪存中的数据和读出的数据完全相同,验证了write_flash.c程序的正确性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。