基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境

如有不详细的描述、错误或疑问,欢迎留言!!!

基于STM32从零写操作系统系列---前言与目录

本章将讲述交叉编译环境的学习,环境平台是ubuntu,工具链是gcc-arm-none-eabi。

目的:

熟悉交叉编译环境,了解如何下载BIN格式的程序文件到单片机。

实验1:

一个简单的交叉编译与程序下载过程

环境搭建(以我的平台为例):

  1. 安装win7 64位系统,具体教程可百度
  2. 在windows系统上安装VMware虚拟机,具体教程可百度
  3. 在虚拟机上新建虚拟机,安装ubuntu系统
  4. 在ubuntu系统使用命令安装make(如果没有),gcc-arm-none-eabi交叉编译工具
  5. 在windows系统上安装ST-Link Utility软件,用于下载bin格式文件到是stm32单片机
  6. 在windows系统上安装编辑器,如notepad++
  7. 在windows系统上安装winSCP软件,用于在windows与ubuntu之间传输文件

具体实验过程:

1.在winows系统中新建一个文件夹,用作项目文件夹,命名为helloworld

2.打开编辑器(我的是notepad++),创建文件boot1.s。这段代码就实现了死循环,并没有什么实际用途,主要是练习如何下载BIN格式文件到单片机,代码如下:

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第1张图片

3.创建文件Makefile,这是编译用的工程文件,用于编译boot1.s文件。Makefile教程,可以网上搜索或阅读Makefile文档。代码如下:

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第2张图片

4.创建链接脚本ldboot1.ld。

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第3张图片

5.在同一目录下,一共创建了3个文件如下

6.通过WinSCP软件,将上述的三个文件放到ubuntu系统中。在ubuntu系统中,进入这些文件所在的位置,输入make命令,将会生成.bin文件。

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第4张图片

7.反汇编代码如下

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第5张图片

8.打开ST-Link Utility软件,点击设置按钮具体设置如图1,点击连接按钮,连接单片机(单片机与电脑需要连接好和驱动需要安装好,打开单片机电源)。连接成功后,如图2:

图1

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第6张图片

图2

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第7张图片

9.下载bin文件到单片机,点击Target->Program & Verify,出现如下图的对话框。注意start address为0x08000000,即为flash的地址。确认File path是否是需要下载的文件。点击Start按钮。

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第8张图片

10.下载成功后,如图,0x08000000处的代码与反汇编的代码相同。第一个实验到此结束,感觉上是成功了。为了验证使用ST-Link Utility软件下载bin格式文件到stm32单片机后,程序是否可以运行,在本系列的第4篇文章将做一个点亮LED的实验。

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境_第9张图片

 

你可能感兴趣的:(从零开始构建自己的操作系统)