历史上的今天
今天是:2024年09月10日(星期二)
2019年09月10日 | 基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境
2019-09-10 来源:eefocus
本章将讲述交叉编译环境的学习,环境平台是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的实验。

史海拾趣
|
火线、零线两之间,我用一只红色发光二极管串接一个100K电阻并在火线零线之间后,发光二极管正常工作; 可是我用一蓝色发光二极管串接一个100K电阻并在火线零线之间后,为什么就不能正常工作了呢? 着急啊?请教各位大侠,用蓝灯如何接才能正常、 ...… 查看全部问答> |
|
据金鹰网报道 现年39岁的Vasyl Lazarenko是一位来自乌克兰西部的工匠。由于女友非常喜欢坐敞篷车去兜风,而他自己又觉得硬顶车篷很实用,于是突发奇想,决定自己打造一款世界上独一无二的“双面车”。 这辆车的左边是现代轿车的造型,而右边则 ...… 查看全部问答> |
|
请教 华为 和 ST-Ericsson 这两个公司哪个好点啊? 请教各位前辈: 我刚刚走出校门,不清楚每个公司情况 请问做研发的话(底层驱动) 华为 和 ST-Ericsson(T3G) 这两个公司哪个好点啊?… 查看全部问答> |
|
我用两根线将DEC2812的CAN接口与凌华CAN接口卡相连。两者都设置成1M波特率。 但是2812总是信息发送不出去,相应的CANTA位总不能置位。 但是,单独DEC2812自测试模式下工作正常,单独凌华接口卡CAN自己通信(双口)也正常。 请问是什么原因,应该 ...… 查看全部问答> |
|
我使用的是msp430f169。在SCL和SDA上加10K上拉电阻。 A2=A1=A0=0; SCL = BIT4; SDA = SDA; 本程序已经条是通过了。多谢在此过程中指教的各位。 #include "msp430x16x.h" unsigned int adjg; unsigned char ack,ctlbyte; void ysh(unsig ...… 查看全部问答> |




