嵌入式LAB 4:Bootloder

Posted tanxiaxuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式LAB 4:Bootloder相关的知识,希望对你有一定的参考价值。

前期工作准备

Mac OS X + Windows 7虚拟机
安装STM32 ST-LINK Unity。用于烧录程序。
安装STM32 ST-LINK所需要的驱动
安装Keil UVision 5,这是IDE,可以生成Hex文件,也可以烧录到板子上。
安装USB-TTL所以需要的驱动。
安装PUTTY,Windows下查看串口。

器材准备

STM32F103板子一个
ST-LINK V2
USB-TTL
不需要面包板、按钮等

实验流程

串口收发

由于要通过串口发送命令至STM32板子,首先需要解决的是串口收发的问题。主要经过的流程是:USART1_IRQHandler → HAL_UART_IRQHandler → HAL_UART_Receive_IT → HAL_UART_RxCpltCallback。

USART1_IRQHandler主要的功能是打开了USART1的中断,覆盖函数USART1_IRQHandler()处理中断。

HAL_UART_Receive_IT函数是STM32的库函数,就是起着设置信息存放位置的作用,三个参数分别表示接收信息的UART句柄,接收信息的Buffer地址以及接受信息长度。该函数在接收到信息之后,会在Buffer指向的地址顺序写入字符,并在达到指定长度之后调用回调函数HAL_UART_RxCpltCallback。HAL_UART_RxCpltCallback处理的是业务逻辑。

以上几步是通过对中断进行处理,将串口的信息读入到缓冲区内存放。而程序要使用的时候,直接进行读取即可。为了方便,应该封装一个队串口读取字符串的函数。

下面是主函数的代码(PEEK和POKE),为了增加鲁棒性做了很多考虑,所以在用户乱输入的情况下也不会崩溃。主要的思路可以观看注释。

连接示意图

烧录程序示意图

擦出并烧录

实验结果:实验先观察了0x200004b8的内容。再往0x200004a8写入一个字符串。在通过poke观察写入的值。

以上是关于嵌入式LAB 4:Bootloder的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式LAB 6:Linux内核编译

嵌入式LAB 6:Linux内核编译

嵌入式 LAB 3:自行车码表

嵌入式 LAB 3:自行车码表

嵌入式 LAB 3:自行车码表

嵌入式LAB 7:字符设备驱动程序