本文基于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. HDU 2955 Robberies
  2. 构建本地缓存java_Java8简单的本地缓存实现
  3. python【数据结构与算法】最长公共子串详解(附代码)
  4. mysql自动备份脚本linux_一个Mysql自动备份脚本,定时备份MYSQ脚本,linux下Mysql自动备份脚本...
  5. curl参数为多维数组时提示数组到字符串的转换问题
  6. python求数字平均值_python 求10个数的平均数实例
  7. Spark :AnalysisException: Required attribute 'value' not found;
  8. 一个cp命令引发的mongodb大量慢查询
  9. 并发相关随笔(持续更新)
  10. 2019年美赛获奖分享经验
  11. python结巴分词代码_结巴分词Python代码
  12. 基于Echarts的图表绘制
  13. 模拟时钟c语言编码,C语言模拟时钟转动程序
  14. team viewer 远程控制计算机,使用TeamViewer让手机控制电脑的设置步骤
  15. 【钛媒体】社交网络广告怎么做才不让人反感?
  16. offer和面经分享(内含offer截图)
  17. C语言·XDOJ练习·拼数字
  18. Solr分组聚合查询之Facet
  19. 继电器驱动设计方案及问题分析
  20. 解决Android的WebView无法加载微信公众号链接中的图片和视频

热门文章

  1. 选微博的还是京东的php开发的offer?
  2. 校级选拔赛测试--charles
  3. Git文件常见下标符号说明
  4. more exceptional c++简要笔记
  5. 设计师:设计师知识储备之设计流派 (高技派、光亮派 、白色派、风格派、极简主义、装饰艺术、后现代、解构主义 、新现代主义 )之详细攻略
  6. 诉说一个站长屌丝20多年的点点滴滴
  7. 怎样招聘一名博士毕业生?
  8. LIMS实验室管理平台——校园实验教育智能化管理工具
  9. 朋友做跨境电商月入八万+?生活永远充满惊喜!
  10. 苹果与微软之战 iPhone/S1对比评测