访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机Cube编程

stm32.cube(七)——arm-gcc.helloworld

导读: 一、前言对与MDK-ARM(keil),EWARM(IAR)和TureSTUDIO(Atollic)这三个ARM常用IDE工具,在cube包里都有对应的例子。而对于arm-gcc,cube里只提供了例程的源码。由于需要自己写Makefile,因此比起各种IDE来
关键字:
ARM,cube,gcc,helloworld,
一、前言

对与MDK-ARM(keil),EWARM(IAR)和TureSTUDIO(Atollic)这三个ARM常用IDE工具,在cube包里都有对应的例子。

而对于arm-gcc,cube里只提供了例程的源码。由于需要自己写Makefile,因此比起各种IDE来说,配置的复杂度要更高一点。

二、cube.gcc项目建立过程2.1 移植代码

根据实际应用,拷贝需要用到的HAL、BSP、CMSIS、middleware、RTOS代码到工程文件夹。

比如一个项目用到了触屏,就从middleware目录下拷贝STemWin。

用到的芯片peripheral,就从HAL目录下拷贝相应的hal_xxx_xxx.c和hal_xxx_xxx.h。

建立一个APP文件夹,用来存放我们自己编写的应用层代码。最好先写个简单的测试函数,因为没有main函数就无法编译出Flash固件。

2.2 修改配置文件

HAL层和middleware目录下都有一个xxx_conf_template.h文件。把它修改成xxx_conf.h就是该模块的默认配置文件。然后需要再对它进行编辑,设置每个模块的配置。

2.3 startup.s和hal层初始化

cube包里有针对不同的芯片的startup.s和flash.ld。系统上电后执行的就是startup.s编译后的指令,它会初始化中断向量表、系统时钟和栈指针,然后跳转到main函数。

flash.ld用来标识flash和ram的地址映射和ram,还有各分段的链接地址。这些都在CMSIS目录下,需要添加到新的工程里。

在main函数里,要调用hal_init()函数来对hal层进行初始化。

2.4 Makefile

arm-gcc没有单独的文档,它包含在GCC的文档里面。编译选项:

https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

对写Makefile的编写,需要注意这么几点:

  • 确保startup.s和flash.ld被正确编译和链接。

  • 将芯片系列用-D选项包含在Makefile里。

  • 用-I选项指定头文件搜索目录,不要漏掉。

  • 将烧写命令写在Makefile里方便烧写。


来源:互联网   作者:karen  2018/6/19 16:40:01
栏目: [ STM32单片机Cube编程]

相关阅读

有关于STM32Cube的几个常见问题(USB设备库)

STM32标准库改为HAL库的程序实现

STM32CubeMX新建工程的过程及方法解析

STM32程序之MAX6675热电偶温度读取

意法半导体STM32Cube微控制器开发软件在GitHub正式上线

基于嵌入式系统原型设计的STM32开放式开发环境详解

意法半导体为STM32Cube生态系统新增LoRaWAN®固件无线更新支持

STM32单片机的CPU运行性能的算法测试

意法半导体发布STM32CubeMonitor工具 可实时显示应用程序运行时的变量

手机红外遥控器发送红外信号到STM32【HAL库】

意法半导体更新TouchGFX软件框架,新增强大功能和支持STM32Cube的便利工具

STM32CubeMX开发工具的安装

浅析STM32 HAL固件库编程文件组织

STM32CubeMX配置工具创建了STM32微控制器 让优化MCU配置参数更加轻松

ST针对STM32微控制器推出一套免费的功能强大的设计工具及软件STM32Cube

ST的 STM32Cube开发工具将支持经市场考验的STM32 F2微控制器

关于stm32CubeMX的stm32f103编程

意法半导体发布最新版的STM32Cube ecosystem Multi-OS软件

意法半导体推出STM32Cube开发工具

意法半导体(ST)灵活便捷的STMCube软件平台帮助设计人员快速上手,支持所有量产STM32微控制器