首页 理论教育 ARMCortexM4固件编程教程:写闪存例程

ARMCortexM4固件编程教程:写闪存例程

时间:2023-11-17 理论教育 版权反馈
【摘要】:本小节将以TI的例程为例来介绍Flash闪存的固件库使用方法。2)创建write_flash工程。图10-3清零GPIO_DATA寄存器从图10-3中可以看到,如果GPIO_DATA寄存器的值不为0,当程序执行完GPIOPin-Write()后,该寄存器将被清零。图10-5向地址0x10000写入的数据从图10-5可以看到,写入的数据和从闪存中读出的数据完全相同,验证了程序功能正确。5)在LaunchPad板上对程序进行测试。将编译生成的.out文件下载到LaunchPad板中,让程序全速在LaunchPad板中运行。这时打开PuTTY“串口助手”,其测试结果如图10-6所示。

ARMCortexM4固件编程教程:写闪存例程

小节将以TI的例程为例来介绍Flash闪存的固件库使用方法。

1)闪存程序。

978-7-111-51624-8-Chapter10-12.jpg

978-7-111-51624-8-Chapter10-13.jpg

978-7-111-51624-8-Chapter10-14.jpg

2)创建write_flash工程。

3)编译write_flash工程生成可执行的.out格式文件。

4)在LaunchPad(EK-TM4C123GXL)板上对程序进行调试。

①将编译生成的.Out文件导入LaunchPad板中。

②在22行处设置一个断点,然后单步执行程序,当程序指针位于25行时的运行结果如图10-3所示。

978-7-111-51624-8-Chapter10-15.jpg

图10-3 清零GPIO_DATA寄存器

从图10-3中可以看到,如果GPIO_DATA寄存器的值不为0,当程序执行完GPIOPin-Write()后,该寄存器将被清零。因此,观察到的结果都符合程序所表达的含义。(www.xing528.com)

③在29行FlashErase(0x10000)处设置一个断点,当单步执行完该语句后的结果如图10-4所示。

978-7-111-51624-8-Chapter10-16.jpg

图10-4 擦除地址0x10000处的数据

从图10-4可以看到,当执行完该条语句后的确擦除了地址为0x10000处的数据。

然后继续单步执行,当执行完FlashProgram()语句后的结果如图10-5所示。

978-7-111-51624-8-Chapter10-17.jpg

图10-5 向地址0x10000写入的数据

从图10-5可以看到,写入的数据和从闪存中读出的数据完全相同,验证了程序功能正确。

5)在LaunchPad(EK-TM4C123GXL)板上对程序进行测试。将编译生成的.out文件下载到LaunchPad板中,让程序全速在LaunchPad板中运行。从地址0x10000和0x10004读出的闪存数据和程序中待写入的数据相同(见图10-5)。这时打开PuTTY“串口助手”,其测试结果如图10-6所示。

978-7-111-51624-8-Chapter10-18.jpg

图10-6 待写入和从闪存中读回数据的测试结果

从图10-6中可以看到写入到闪存中的数据和读出的数据完全相同,验证了write_flash.c程序的正确性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈