目录环境参考链接脚本简介STM32F407ZETx_FLASH.ld文件分析控制输出文件中内存布局SECTIONS环境代码:STM32CUBEMX-linux版V6.5.0 + STM32Cube_FW_F4_V1.27.0 + Makefile方式目标SOC:STM32F407ZET6参考1、GUN Binutils2、《程序员的自我修养》链接脚本简介 &nbs
转载
2024-03-24 12:36:22
147阅读
stm32应用:lua在Keil上的移植和使用Lua的简介Lua的移植关于Lua的应用举例 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。本文主要说明一下关于lua移植到STM32上的过程以及简单的举两个例子来说明lua的应用。 Lua的简介关于Lua的官方介绍,此处不在说明。有需要了解的看官可以
转载
2024-04-01 11:48:10
537阅读
最近一直在搞STM32F4的一些小东西,因一些比较郁闷的原因,经常需要修改底层程序逻辑,某天忽然间想到为什么总是翻来覆去地这些底层的东西,难道没有一种比较方便的方法来做吗?于是想到了是否可以用脚本处理业务逻辑,通过驱动与应用分离的方式来处理程序,让上位机去折腾吧,想到就试。 因为有一些linux的基础,也有一些编译器的基础,网上搜索了一下,觉得用LUA做脚本比较合理。 LUA特点不介绍了。 记录一
转载
2024-03-28 11:33:47
148阅读
我们可以自己修改STM32的连接脚本,根据项目需求配置。比如我想配置我编译出来的bin文件分为 os bin、 驱动bin、应用bin、可以按照下面配置:连接脚本修改如下:; *************************************************************; *** Scatter-Loading Description File g...
原创
2022-01-18 14:02:07
472阅读
我们可以自己修改STM32的连接脚本,根据项目需求配置。比如我想配置我编译出来的bin文件分为 os bin、 驱动bin、应用bin、可以按照下面配置:连接脚本修改如下:; *************************************************************; *** Scatter-Loading Description File g...
原创
2021-07-09 11:36:37
460阅读
最近看python搞的蛮火,无意之间看到一个micropython的东西,可以在STM32上面,于是我搭建了一个UBUNTU环境,试试这个东西。首先安装虚拟机先不要导入系统,安装好就行。安装好之后,在安装根目录下面新建一个ISO的文件夹,用来存放系统下载好之后,放到刚才建好的文件夹内,VDI文件不要管,是虚拟机生成的打开虚拟机网上教程:添加好之后,就可以运行起来了。第一次开启有个漫长的过程,安装U
转载
2023-08-06 11:56:25
351阅读
一、链接脚本的简单常识 有时候我们很多文件需要链接到指定的区域,或者叫做段里面,比如在 Linux 里面初始化函数就会放到 init 段里面。因此我们需要能够自定义一些段,这些段的起始地址我们可以自由指定,同样的我们也可以指定一个文件或者函数应该存放到哪个段里面去。要完成这个功能我们就需要使用到链接脚本,链接脚本用于描述文件应该如何被链接在一起形成最终的可执行文件。其主要目的是描述输入文件中的段
转载
2023-08-26 18:29:27
630阅读
STM32实现人脸识别引前言1. 人脸检测1.1 构造函数1.2 源码分析2. 人脸识别2.1 构造函数2.2 源码分析3.通过本地特征文件进行人脸识别3.1 将人脸特征保存到本地3.2 通过本地特征文件进行人脸识别 引OpenMV(一)–基础介绍与硬件架构OpenMV(二)–IDE安装与固件下载OpenMV(三)–实时获取摄像头图片OpenMV(四)–STM32实现特征检测前言本专栏基于以ST
转载
2024-03-15 06:28:31
209阅读
前言: 现在开发stm32已经有很多人性化的ide了,像常用的keil,以及后面ST新推出的跨平台的STM32cubeide,都可以搭建自己的工程来开发。 但是本猿有时候就喜欢玩点另类的,比如这次我在ubuntu上搭建了stm32的开发环境,用vscode来开发,脚本编译甚至用来仿真(j-link),虽然整体功能上没有keil这些配套ide来的强大,但是有vscode的加持与开放的环境,整体用起来
一、目的 相信很多小伙伴第一次使用STM32CubeIDE进行开发遇到GNU LD脚本时都是一脸懵逼,在Keil中我们会使用分散加载文件进行类似操作,那么GNU LD链接器使用的链接脚本是怎样呢? 本篇就根据CubeIDE中的ld脚本说明链接脚本文件的组成(更加详细的内容请参考下面的链接)。
程序的编译分为四个步骤:预处理、汇编、编译、链接。在开发STM32时,我们只要在IDE中点击编译就能一次性完成这4个步骤,实际上IDE也是要经过这些步骤的,只不过IDE为我们屏蔽了很多细节。首先我们需要了解一个image文件的构成。image即编译的产物,我们编译STM32生成的bin文件此处称之为image。一个image文件由RO段和RW段组成,RO段包含只读的代码段和常量,RW段包含可读可写
本篇文章主要围绕项目 STM32_RTOS_GUN 的链接脚本 STM32F417IG_FLASH.ld 进行分析,同时对编写链接脚本的方法进行相应的讲解,尽可能地做到通过阅读这篇文章后能够学会编写简单的链接脚本。什么是链接脚本我们在做 GCC 交叉编译时总会遇到一个 .ld 后缀的文件,这个就是我们常说的链接脚本。有朋友可能会疑惑这个脚本的到底有还是呢么用呢,我们在编写 GCC 命令时只需一句
#stm32重启调试笔记本文章主要解决在使用stm32+ucos进行嵌入式软件开发中遇到的系统重启现象查找与解决。1 、重启原因系统重启又多种可能:1、看门狗中断;2、内存泄漏;3、软件重启。 首先看一下stm32的手册关于系统重启的状态寄存器,其中详细的记录了几个系统重启的原因(低功耗复位标志、窗口看门狗复位标志、)寄存器详细信息:查看寄存器值a:通过debug查看,在代码进入main函数时加入
GPIOx_CRL(x=A~E) 地址偏移:端口配置的初始地址加上偏移地址就是该特殊寄存器的地址 GPIO通用输入输出8种工作模式 1.浮空输入模式: (1)当GPIOx_CRL或GPIOx_CRH寄存器的CNF[1:0]位设置为01,并且MODE[1:0]位设置为00时 (2)STM32复位之后默 ...
转载
2021-04-08 13:51:00
891阅读
2评论
stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈 文章目录stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈前言码农工程师,人狠话不多,大家多看图和代码!!!一、准备工作cubemx配置dma初始化的一个注意点二、拆解freemodbus1.porttimer.c文件不再使用(不使用定时器判断接收完成),接口
转载
2024-03-17 00:43:12
1176阅读
点赞
1评论
一、SysTick基础简介:SysTick系统定时器是 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3
转载
2024-05-16 14:20:13
528阅读
本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看。第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED。。。第一步,建立一个文件夹0.0第二步,打开keil,建立工程在弹出来的对话框中选择你所用的STM32的芯片。在接下来弹出来的对话框中选择是,这样keil就帮我们建立好了启动文件。 第三步,新建一个main.c文件,并添加到
转载
2023-06-19 15:27:24
969阅读
总线矩阵 上图为stm32f4的总线矩阵,其中主控总线有8条,被控总线有7条,主设备和从设备通过各自的总线两两相交连接,图中两条总线相交且为圆圈的地方,表示这两条总线对应的主设备可以访问从设备,如I总线(指令总线),只有跟 M0、M2和M6这三根被控总线交叉的时候才有圆圈,就表示I总线只能跟这三根被控总线通信,这样就可以知道stm32f4的启动有三种分别是FLASH、内部SRAM、外部存储FSM
转载
2023-07-12 23:35:55
475阅读
模拟IICIIC协议GPIO配置根据时序图完成代码起始与停止信号等待应答读写字节检查设备是否连接 IIC协议I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、 CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。它是一个支持多设备的总线。“总线”指多个设备共
转载
2024-03-20 14:56:28
178阅读
基础元器件控制本篇博文将使用LED灯、蜂鸣器、开关元器件,学习如何使用HAL库进行GPIO的输入输出设置。博主采用如下开发板进行学习STM32的编程:LED灯LED(Light Emitting Diode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED可以直接发出红、黄、蓝、绿、青、橙、紫、白色的光。1.查看引脚首先,查看原理图,找到LED灯的引脚。
转载
2024-03-15 10:34:43
441阅读