本文基于st官方提供的标准库搭建应用软件工程(即非cube方式、非寄存器方式),采用标准库搭建的工程具有软件可移植性高、可读性好、符合软件设计人员思维方式。本文描述官方下载标准库及标准库的移植过程,具体流程如下所述:

1.首先在st官方下载stm32f4系列最新的标准库压缩包(STSW-STM32065的标准库)。

https://www.st.com/en/embedded-software/stsw-stm32065.html

图1 下载最新版本的标准库压缩包

2.拷贝stm32f4系列的标准库(V1.9版本)到工作目录并解压。

图2 拷贝并解压标准库压缩包到工作目录

3.新建应用软件工程目录project_m4,并在project_m4的目录下新建5个子目录(分别新建cmsis、include、source、fwlib、user等5个文件夹)。

图3 新建应用工程目录及子目录

4.将标准固件库目录/Libraries/CMSIS/Include文件夹,以及固件库文件目录/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO文件夹,全部拷贝移植到project_m4/cmsis文件夹下,移植后cmsis文件夹目录如下图所示:

图4 cmsis目录文件移植

5.将标准固件库文件目录/Libraries/STM32F4xx_StdPeriph_Driver文件夹下的inc和src文件夹全部拷贝移植到fwlib文件夹下,移植后fwlib文件夹目录如下图所示:

图5 fwlib目录文件移植

6.将标准固件库文件目录/Libraries/CMSIS/Device/ST/STM32F4xx/Include文件夹目录下的stm32f4xx.h、system_stm32f4xx.h文件拷贝到project_m4/include文件夹下。

图6  include目录文件移植

7.将标准固件文件目录Project/STM32F4xx_StdPeriph_Templates目录下的main.c、stm32f4xx_conf.h、stm32f4xx_it.h、stm32f4xx_it.c、system_stm32f4xx.c拷贝移植到project_m4/user文件夹下,其中main.c文件是STM32工程文件的主函数程序,移植后user文件夹目录如下图所示:

图7 usb目录文件移植

8.将标准固件库文件目录Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM32F40_41xxx文件夹下的STM32F417IG_FLASH.ld拷贝到projec_m4的应用软件工程目录下,并重命名为stm32_flash.ld。

图8 project_m4目录下的stm32_flash.ld文件

9.至此完成了应用软件工程的搭建,下节将介绍应用软件修改、Makefile及编译脚本编写。

基于ubuntu的STM32嵌入式软件开发(三)——基于官方标准函数库的软件工程移植相关推荐

  1. 基于Ubuntu和STM32分析全局变量、局部变量、堆、栈

    目录 一.C程序的内存分配 二.STM32的内存分布 三.Ubuntu系统和STM32中验证 1.Ubuntu ​ 2.STM32 四.参考资料 一.C程序的内存分配 栈(stack) 由编译器自动分 ...

  2. 基于android的移动应用开发PPT,基于Android的移动应用开发课件.ppt

    基于Android的移动应用开发课件.ppt * 界面事件 触摸事件 当手指接触到触摸屏.在触摸屏上移动或离开触摸屏时,分别会引发ACTION_DOWN.ACTION_UP和ACTION_MOVE触摸 ...

  3. 基于Eclipse搭建STM32开源开发环境

    最近项目不忙,想着没事看看简单的嵌入式,弄弄物联网什么的.于是就从廉价的STM32开刀了.因为一直是做PC软件开发的,那VS的智能感知那叫一个爽啊,相比之下,觉得这个Keil简直就像文本编辑器一样lo ...

  4. STM32单片机开发实例 基于STM32单片机的智能行李箱

    一.系统设计 本次设计的是基于STM32F103C8T6单片机设计的一款智能行李箱,系统内使用HX711压力传感器模块采集行李箱内的重量数据,使用ULN2003电机驱动模块来驱动两个步进电机 以此来模 ...

  5. STM32单片机开发实例 基于STM32单片机的温室大棚监测系统

    一.系统设计 通过STM32单片机进行主控,通过光敏电阻模块进行大棚内的光照强度的采集,通过DHT11数字温湿度传感器进行温湿度的采集,通过气压模块进行大棚气压强度的采集,通过水滴模块进行土壤湿度的采 ...

  6. 基于ESP8266的STM32物联网开发板

    这个板子也是我做的第二块开发板,同时也是一款物联网开发板. 既然是开发板,那我肯定是把所有模块都打通了: 既然是物联网开发板,也是把物联网打通了才会来画这个开发板. 废话不多说,先上图再详谈: 上图芯 ...

  7. STM32单片机开发实例 基于STM32单片机的智能血压计

    一.系统设计 通过单片机32作为主控制器,完成对人体血压的测量,主要方式是通过气压模块来模拟完成对血压的采集,同时将采集到的血压数据在显示屏上进显示.同时可以通过按键对整个血压上下限值进行设定,一旦超 ...

  8. 基于MyEclipse+Tomcat+Mysql+JSP开发得基于java的保险业务管理系统的设计与实现

    •本管理软件的开发工具为Myeclipse,前台页面使用JSP技术,后台数据库为MySQL,使用SSH框架,配合数据库的连接,使此系统里的每个模块都能很好的实现. 1.登录模块 5-1  登陆界面 所 ...

  9. 基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)

    最近在学习王维波老师的<STM32Cube高效开发教程>,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了 ...

最新文章

  1. 此内容过于真实,引起强烈舒适
  2. “.NET研究”关于C# 中的Attribute 特性
  3. Python数据分析学习笔记05:用户画像
  4. java-Hyper-V
  5. IntelliJ IDEA 的这个接口调试工具真是太好用了!
  6. information_schema.engines学习
  7. JS原生Ajax和jQuery的Ajax与代码示例
  8. Django2 SQLite3迁移到MySQL数据库
  9. 基于局部自适应阈值的图像二值化
  10. tips to understand kexec
  11. 信号与线性系统管致中第六版pdf_2021年西北工业大学887信号与系统基础考研全套...
  12. 校验码的计算方法说明
  13. Oligo 7 引物设计 安装
  14. 山东大学高频电子线路实验二 高频功率放大实验详解
  15. 电脑上打开chm文件时系统提示:不能打开文件:mk:@MSITStore:(文件路径)
  16. 数据预处理之数据缩放
  17. 滴滴云GPU服务器做深度学习之tensorflow object detect 对象检测 实践
  18. Spring实战学习笔记
  19. android 获取屏幕旋转方向,android获取手机屏幕尺寸和旋转方向
  20. JDK JRE JVM的区别

热门文章

  1. 历届蓝桥杯JavaC组真题标题
  2. HeyUI组件库 | 如何实现在线切换主题
  3. 小程序 通过id从列表页跳转到对应的详情页
  4. 【论文翻译】Taking A Closer Look at Domain Shift:Category-level Adversaries for Semantics Consistent Domai
  5. NEC发布USB 3.0控制芯片 下月出货
  6. 烧录的HEX文件大于flash存储空间问题
  7. 基于SOGOU电子地图和GPS定位的车辆管理系统
  8. 如何用ChatGPT进行剧本/广告脚本写作?
  9. 计算机在工作中的应用,计算机技术在设计工作中的应用
  10. [程序设计]基于人工智能博弈树,极大极小(Minimax)搜索算法并使用Alpha-Beta剪枝算法优化实现的可人机博弈的AI智能五子棋游戏。