如有不详细的描述、错误或疑问,欢迎留言!!!
基于STM32从零写操作系统系列---前言与目录
本章将讲述交叉编译环境的学习,环境平台是ubuntu,工具链是gcc-arm-none-eabi。
目的:
熟悉交叉编译环境,了解如何下载BIN格式的程序文件到单片机。
实验1:
一个简单的交叉编译与程序下载过程
环境搭建(以我的平台为例):
- 安装win7 64位系统,具体教程可百度
- 在windows系统上安装VMware虚拟机,具体教程可百度
- 在虚拟机上新建虚拟机,安装ubuntu系统
- 在ubuntu系统使用命令安装make(如果没有),gcc-arm-none-eabi交叉编译工具
- 在windows系统上安装ST-Link Utility软件,用于下载bin格式文件到是stm32单片机
- 在windows系统上安装编辑器,如notepad++
- 在windows系统上安装winSCP软件,用于在windows与ubuntu之间传输文件
具体实验过程:
1.在winows系统中新建一个文件夹,用作项目文件夹,命名为helloworld
2.打开编辑器(我的是notepad++),创建文件boot1.s。这段代码就实现了死循环,并没有什么实际用途,主要是练习如何下载BIN格式文件到单片机,代码如下:
3.创建文件Makefile,这是编译用的工程文件,用于编译boot1.s文件。Makefile教程,可以网上搜索或阅读Makefile文档。代码如下:
4.创建链接脚本ldboot1.ld。
5.在同一目录下,一共创建了3个文件如下
6.通过WinSCP软件,将上述的三个文件放到ubuntu系统中。在ubuntu系统中,进入这些文件所在的位置,输入make命令,将会生成.bin文件。
7.反汇编代码如下
8.打开ST-Link Utility软件,点击设置按钮具体设置如图1,点击连接按钮,连接单片机(单片机与电脑需要连接好和驱动需要安装好,打开单片机电源)。连接成功后,如图2:
图1
图2
9.下载bin文件到单片机,点击Target->Program & Verify,出现如下图的对话框。注意start address为0x08000000,即为flash的地址。确认File path是否是需要下载的文件。点击Start按钮。
10.下载成功后,如图,0x08000000处的代码与反汇编的代码相同。第一个实验到此结束,感觉上是成功了。为了验证使用ST-Link Utility软件下载bin格式文件到stm32单片机后,程序是否可以运行,在本系列的第4篇文章将做一个点亮LED的实验。