本篇文章主要围绕项目 STM32_RTOS_GUN 的链接脚本 STM32F417IG_FLASH.ld 进行分析,同时对编写链接脚本的方法进行相应的讲解,尽可能地做到通过阅读这篇文章后能够学会编写简单的链接脚本。什么是链接脚本我们在做 GCC 交叉编译时总会遇到一个 .ld 后缀的文件,这个就是我们常说的链接脚本。有朋友可能会疑惑这个脚本的到底有还是呢么用呢,我们在编写 GCC 命令时只需一句
stm32应用:lua在Keil上的移植和使用Lua的简介Lua的移植关于Lua的应用举例 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。本文主要说明一下关于lua移植到STM32上的过程以及简单的举两个例子来说明lua的应用。 Lua的简介关于Lua的官方介绍,此处不在说明。有需要了解的看官可以
转载 2024-04-01 11:48:10
534阅读
最近一直在搞STM32F4的一些小东西,因一些比较郁闷的原因,经常需要修改底层程序逻辑,某天忽然间想到为什么总是翻来覆去地这些底层的东西,难道没有一种比较方便的方法来做吗?于是想到了是否可以用脚本处理业务逻辑,通过驱动与应用分离的方式来处理程序,让上位机去折腾吧,想到就试。 因为有一些linux的基础,也有一些编译器的基础,网上搜索了一下,觉得用LUA脚本比较合理。 LUA特点不介绍了。 记录一
转载 2024-03-28 11:33:47
148阅读
前言: 现在开发stm32已经有很多人性化的ide了,像常用的keil,以及后面ST新推出的跨平台的STM32cubeide,都可以搭建自己的工程来开发。 但是猿有时候就喜欢玩点另类的,比如这次我在ubuntu上搭建了stm32的开发环境,用vscode来开发,脚本编译甚至用来仿真(j-link),虽然整体功能上没有keil这些配套ide来的强大,但是有vscode的加持与开放的环境,整体用起来
一、目的        相信很多小伙伴第一次使用STM32CubeIDE进行开发遇到GNU LD脚本时都是一脸懵逼,在Keil中我们会使用分散加载文件进行类似操作,那么GNU LD链接器使用的链接脚本是怎样呢?        本篇就根据CubeIDE中的ld脚本说明链接脚本文件的组成(更加详细的内容请参考下面的链接)。
#stm32重启调试笔记本文章主要解决在使用stm32+ucos进行嵌入式软件开发中遇到的系统重启现象查找与解决。1 、重启原因系统重启又多种可能:1、看门狗中断;2、内存泄漏;3、软件重启。 首先看一下stm32的手册关于系统重启的状态寄存器,其中详细的记录了几个系统重启的原因(低功耗复位标志、窗口看门狗复位标志、)寄存器详细信息:查看寄存器值a:通过debug查看,在代码进入main函数时加入
程序的编译分为四个步骤:预处理、汇编、编译、链接。在开发STM32时,我们只要在IDE中点击编译就能一次性完成这4个步骤,实际上IDE也是要经过这些步骤的,只不过IDE为我们屏蔽了很多细节。首先我们需要了解一个image文件的构成。image即编译的产物,我们编译STM32生成的bin文件此处称之为image。一个image文件由RO段和RW段组成,RO段包含只读的代码段和常量,RW段包含可读可写
目录环境参考链接脚本简介STM32F407ZETx_FLASH.ld文件分析控制输出文件中内存布局SECTIONS环境代码:STM32CUBEMX-linux版V6.5.0 + STM32Cube_FW_F4_V1.27.0 + Makefile方式目标SOC:STM32F407ZET6参考1、GUN Binutils2、《程序员的自我修养》链接脚本简介   &nbs
今天来说说 MicroPython 的架构情况,如果有必要我会做一些源码分析的文章供大家参考。先来认识一下 MicroPython 整体情况,可以从软件的角度上去看待,首先我们拿到 MicroPython 的主仓库。直接 git clone https://github.com/micropython/micropython ,在 Windows 下进行操作了解一下。之后需要交叉编译代码的时候,必
在嵌入式设备中,常涉及到低功耗下的串口通信,本文以STM32L4作为硬件平台,讲解3种低功耗下的串口通信,希望对做低功耗的嵌入式开发者有所启发或帮助。笔者才疏学浅,难免有错误或遗漏之处,望读者能不吝指正。下文所涉及的低功耗模式都是指STM32的停机模式,在该模式下PLL停止工作,仅LSI和HSI继续运行(进休眠前已经打开的话),所有IO状态、内部RAM数据保持不变,所有外部IO中断、内部RTC定时
前言:在前一篇《STM32WL开发之LM401评估板开箱及PingPong测试》中经过测试,认为STM32WL的LoRa通信和易智联的LM401评估板都是OK的,接下来就开始开发环境的准备以及对易智联随评估板提供的Demo程序进行学习。LM401模组的软件开发环境       LM401模组采用的是STM32WLE5CB的芯片,因此其使用
按照之前设定的计划,利用业余时间做了这么一个项目。目标是基于RT Thread实时操作系统,将Micropython、OpenMV、USB摄像头+模拟摄像头+STM32身自带的DVP摄像头,在OpenMV框架下,全部引入进来。这样的话,该软件平台同时具备了RTOS、Python脚本、USB OpenMV串口驱动、存储设备如SPI flash驱动,SD卡驱动、U盘驱动(和OpenMV串口组成一个U
    之前使用nodemcu时萌发了一直LuaSTM32的想法。后来项目需要,便花了2天移植。     Lua移植大约需要67K的rom,所以STM32F103C8无法使用,至少得103CB才行。 1. 官网下载源文件 http://www.lua.org/download.html 我下载的 是当前最新版本--5.3.5。 2. 解压,源代码位于src
在MDK环境下,终于将3.90版的UCGUI移植到STM32下了,在网上看到的都是例程代码,很少看到有关于在STM32下移植UCGUI的教程方法,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)移植步骤:第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。第二步:加入UCGUI程序包。第三步:配置LCDConf.h GUIConf.h GUITo
转载 2024-04-25 13:48:24
111阅读
移植FreeRTOS到STM32单片机上引言介绍什么是 RTOS?为什么嵌入式设备往往使用RTOS?FreeRTOS具体步骤总结 引言本文详细介绍如何移植FreeRTOS到STM32单片机上。移植操作系统是嵌入式开发的入门基础,单片机和嵌入式在物理上其实是一摸一样的,区别就是软件上嵌入式跑了操作系统而单片机没有。文本选用市场上最常见的STM32和FreeRTOS,为大家介绍如何移植操作系统到MC
一、基础知识  1、cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断  2、STM32只有84个中断,包括16个内核中断和68个可屏蔽中断STM32F103上只有60个可屏蔽中断(本文重点讲解F103)  4、先占优先级和次占优先级抢占优先级):抢占优先级不同,会涉及到中断嵌套,抢占优先级高的会优先抢占优先级低的,优先得到执行。抢占优先级相同,不涉及到中断嵌套,响应优
STM32低功耗+lora调试1. 使用符合《输变电设备物联网传感器数据规范》的lora协议规定汇聚节点有两个信道(控制信道+业务信道)控制信道默认为1,业务信道根据自己的实际情况可以进行设置,汇聚节点上电后首先将izji的业务信道进行设置,设置相关参数后需要使用命令进行lora的重启。当GD20(传感器节点)申请组网时候汇聚会收到相关的通知命令。2. 使用stm32单片机作为主控使用stm32
硬件平台:stm32f10xZET6开发环境:keil MDK uVision v4.10开发语言:C、ST_lib_3.5固件库 【串口通信】 typedef struct { u32 USART_BaudRate; u16 USART_WordLength; u16 USART_StopBits; u16 USART_Parity; u16 USAR
写在前面:菜鸟结合了许多大佬的文章,成功实现了基于LVGL的GUI设计,小开心~浅浅记录一下!~本文以单片机STM32F103VET6为核心,利用ST7796芯片驱动分辨率为480*320的LCD液晶屏模块,移植LVGL,对接显示接口,对接外部接口——旋转编码器,完成以上两步,就可以实现LVGL的显示和控制啦!Emmm可以开始你的创作了!~一、显示接口对接具体步骤:下载源码文件lvgl-mast
一:准备材料: mavlink源码 stm32串口程序   1.mavlink源码:       a.进入mavlink官网(http://qgroundcontrol.org/mavlink/start)                 
转载 8月前
163阅读
  • 1
  • 2
  • 3
  • 4
  • 5