基于ubuntu的STM32嵌入式软件开发(三)——基于官方标准函数库的软件工程移植
本文基于st官方提供的标准库搭建应用软件工程(即非cube方式、非寄存器方式),采用标准库搭建的工程具有软件可移植性高、可读性好、符合软件设计人员思维方式。本文描述官方下载标准库及标准库的移植过程,具体流程如下所述:
1.首先在st官方下载stm32f4系列最新的标准库压缩包(STSW-STM32065的标准库)。
https://www.st.com/en/embedded-software/stsw-stm32065.html
2.拷贝stm32f4系列的标准库(V1.9版本)到工作目录并解压。
3.新建应用软件工程目录project_m4,并在project_m4的目录下新建5个子目录(分别新建cmsis、include、source、fwlib、user等5个文件夹)。
4.将标准固件库目录/Libraries/CMSIS/Include文件夹,以及固件库文件目录/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO文件夹,全部拷贝移植到project_m4/cmsis文件夹下,移植后cmsis文件夹目录如下图所示:
5.将标准固件库文件目录/Libraries/STM32F4xx_StdPeriph_Driver文件夹下的inc和src文件夹全部拷贝移植到fwlib文件夹下,移植后fwlib文件夹目录如下图所示:
6.将标准固件库文件目录/Libraries/CMSIS/Device/ST/STM32F4xx/Include文件夹目录下的stm32f4xx.h、system_stm32f4xx.h文件拷贝到project_m4/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文件夹目录如下图所示:
8.将标准固件库文件目录Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM32F40_41xxx文件夹下的STM32F417IG_FLASH.ld拷贝到projec_m4的应用软件工程目录下,并重命名为stm32_flash.ld。
9.至此完成了应用软件工程的搭建,下节将介绍应用软件修改、Makefile及编译脚本编写。
基于ubuntu的STM32嵌入式软件开发(三)——基于官方标准函数库的软件工程移植相关推荐
- 基于Ubuntu和STM32分析全局变量、局部变量、堆、栈
目录 一.C程序的内存分配 二.STM32的内存分布 三.Ubuntu系统和STM32中验证 1.Ubuntu 2.STM32 四.参考资料 一.C程序的内存分配 栈(stack) 由编译器自动分 ...
- 基于android的移动应用开发PPT,基于Android的移动应用开发课件.ppt
基于Android的移动应用开发课件.ppt * 界面事件 触摸事件 当手指接触到触摸屏.在触摸屏上移动或离开触摸屏时,分别会引发ACTION_DOWN.ACTION_UP和ACTION_MOVE触摸 ...
- 基于Eclipse搭建STM32开源开发环境
最近项目不忙,想着没事看看简单的嵌入式,弄弄物联网什么的.于是就从廉价的STM32开刀了.因为一直是做PC软件开发的,那VS的智能感知那叫一个爽啊,相比之下,觉得这个Keil简直就像文本编辑器一样lo ...
- STM32单片机开发实例 基于STM32单片机的智能行李箱
一.系统设计 本次设计的是基于STM32F103C8T6单片机设计的一款智能行李箱,系统内使用HX711压力传感器模块采集行李箱内的重量数据,使用ULN2003电机驱动模块来驱动两个步进电机 以此来模 ...
- STM32单片机开发实例 基于STM32单片机的温室大棚监测系统
一.系统设计 通过STM32单片机进行主控,通过光敏电阻模块进行大棚内的光照强度的采集,通过DHT11数字温湿度传感器进行温湿度的采集,通过气压模块进行大棚气压强度的采集,通过水滴模块进行土壤湿度的采 ...
- 基于ESP8266的STM32物联网开发板
这个板子也是我做的第二块开发板,同时也是一款物联网开发板. 既然是开发板,那我肯定是把所有模块都打通了: 既然是物联网开发板,也是把物联网打通了才会来画这个开发板. 废话不多说,先上图再详谈: 上图芯 ...
- STM32单片机开发实例 基于STM32单片机的智能血压计
一.系统设计 通过单片机32作为主控制器,完成对人体血压的测量,主要方式是通过气压模块来模拟完成对血压的采集,同时将采集到的血压数据在显示屏上进显示.同时可以通过按键对整个血压上下限值进行设定,一旦超 ...
- 基于MyEclipse+Tomcat+Mysql+JSP开发得基于java的保险业务管理系统的设计与实现
•本管理软件的开发工具为Myeclipse,前台页面使用JSP技术,后台数据库为MySQL,使用SSH框架,配合数据库的连接,使此系统里的每个模块都能很好的实现. 1.登录模块 5-1 登陆界面 所 ...
- 基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)
最近在学习王维波老师的<STM32Cube高效开发教程>,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了 ...
最新文章
- HDU 2955 Robberies
- 构建本地缓存java_Java8简单的本地缓存实现
- python【数据结构与算法】最长公共子串详解(附代码)
- mysql自动备份脚本linux_一个Mysql自动备份脚本,定时备份MYSQ脚本,linux下Mysql自动备份脚本...
- curl参数为多维数组时提示数组到字符串的转换问题
- python求数字平均值_python 求10个数的平均数实例
- Spark :AnalysisException: Required attribute 'value' not found;
- 一个cp命令引发的mongodb大量慢查询
- 并发相关随笔(持续更新)
- 2019年美赛获奖分享经验
- python结巴分词代码_结巴分词Python代码
- 基于Echarts的图表绘制
- 模拟时钟c语言编码,C语言模拟时钟转动程序
- team viewer 远程控制计算机,使用TeamViewer让手机控制电脑的设置步骤
- 【钛媒体】社交网络广告怎么做才不让人反感?
- offer和面经分享(内含offer截图)
- C语言·XDOJ练习·拼数字
- Solr分组聚合查询之Facet
- 继电器驱动设计方案及问题分析
- 解决Android的WebView无法加载微信公众号链接中的图片和视频