1.HUAWEI LiteOS 移植过程
2.手把手教你把JLink变成串口调试助手
3.printf系列教程04_SWO打印输出配置,基于IAR『Terminal IO』
4.hex文件详解及常用合并方法介绍
5.JLink:嵌入式开发者的得力助手,下载
HUAWEI LiteOS 移植过程
本文主要介绍了将LiteOS系统移植到STMFZGT6单片机开发板的过程。
在开发环境中,主要使用的工具包括以下几种。
本文主要记录了基于gcc开发的秒赞源码8.0LiteOS移植过程,如果使用vscode的朋友,其原理相同,也可以作为参考。
在基础工程准备阶段,我使用的是STMCubeMX生成的工程文件。生成过程如下:
1. 打开STMCubeMX程序。
2. 选择对应的芯片(STMFZGT6)。
3. 设置时钟来源为外部晶振。
4. Debug设置为串行(我用的是Jlink下载程序),为了方便移植,将系统tick来源设置为TIM1。
5. 配置LED的引脚为输出,我的开发板两个可控led分别为GPIOF_9和GPIOF_。
6. 设置系统时钟,配置为MHz。
7. 分别设置头文件和.c文件。
8. 中着急打了个病句...
9. 最后生成工程,选择为makefile生成格式。
工程将在对应文件夹内生成。
切换到文件夹内,执行make指令构建工程,将在build文件夹下生成你在cubemx里设置的工程名.elf文件。
此时修改Core文件夹下的main.c文件,就可以实现基础的基于HAL库的单片机控制。
修改Makefile文件,添加烧录命令如下:
此时执行make run就可以将.elf文件烧录到单片机中。源码编号下载源码
在移植LiteOS源码下载过程中,我所使用的源码是GitHub上的LiteOS代码的develop分支。
下载该仓库的代码,得到文件夹结构如下。
在STMCubeMX创建的工程下面新建文件夹为LiteOS(具体什么名看你心情),并将以下几个文件夹导入:
得到
OS_CONFIG文件夹下的target_config包含头文件是stmf的HAL头文件,如果是cortex-m3或者其他内核的单片机需要在这里修改包含的头文件,我的工程将之改为了#include "stmf4xx.h"。
此时需要修改你工程的Makefile文件,将新添加的LiteOS的代码添加到你的工程当中去。
具体修改如下:
此时执行make构建工程,会出现报错,说是重复定义了PendSV_Handler和SysTick_Handler,这是因为这两个函数在LiteOS系统中已经有了定义。这时要到Core/Src文件夹下的stmf4xx_it.c将重复定义的两个处理函数注释掉。
注释掉两个函数的定义。
此时再执行make clean删除原来的构建生成文件,重新make构建。
构建成功,能够生成elf文件,移植成功。
可以修改OS_CONFIG文件夹下的target_config文件,适配自己的开发板。
在移植测试阶段,可以根据STMCubeMX构建工程时所用的GPIO引脚在程序中定义任务。我的测试任务如下:
我的任务定义位于main.c,也可以将任务定义移动到单独的文件中。
功能就是两个led灯实现不同频率的闪烁。
可以观察到上面的led灯闪烁频率低于下面的led,任务创建成功,移植成功。asp源码+php源码
手把手教你把JLink变成串口调试助手
在单片机开发过程中,打印调试信息通常依赖于串口调试。通常,我们会预留串口1进行调试,但如果在实际项目中没有预留,JLink仿真调试器可以成为你的得力助手。JLink,由SEEGER公司出品,体积小巧,只有四根线,非常适合携带和使用,尤其适合ST系列芯片的开发。
首先,确保你的电脑上已安装JLink驱动,可以从segger.com下载最新版本的JLink V7.或更高版本。安装完成后,你将发现安装目录下包含RTT功能的相关文件。RTT源码包位于JLink驱动的Samples\RTT文件夹中,只需将其复制到项目文件夹并与工程中的.c文件集成即可。
接下来,配置RTT功能。在编译无误后,连接JLink下载器,并启动JLinkRTTViewer.exe。配置好RTT参数,将程序下载到单片机,就能看到打印信息了。注意,RTT的缓冲大小可自定义,以适应大量信息的打印需求。
RTT还支持多虚拟端口打印,源码源码支付查看以及颜色定制,只需在字符串前添加对应宏定义。此外,你还可以通过重定向printf到RTT来简化调试,只需替换fputc函数即可。这样,即使在没有预留串口的情况下,你也能轻松进行调试和打印信息。
总结来说,当遇到项目中无串口调试需求时,JLink的RTT功能是一个实用的解决方案,可以根据具体项目的特点灵活运用。通过这个方法,你可以轻松地在单片机开发中实现调试打印。
printf系列教程_SWO打印输出配置,基于IAR『Terminal IO』
SWO打印输出配置教程基于IAR『Terminal IO』 本文将深入讲解SWO(Serial Wire Output)的配置与应用,主要针对STM、ST-link和J-link工具进行解析。SWO为单引脚异步串行通信,可在Cortex-M3/M4/M7上使用。ITM(Instrumentation Trace Macrocell)模块为其实现基础,需连接SWO引脚以实现与SWV(Serial Wire Viewer)终端的通信。 一、SWO引脚与配置 SWO引脚可视为UART的Tx引脚,无连接则SWV终端无法接收打印信息。对于Cortex-M3/M4/M7内核的STM系列,其具备SWO功能。而Cortex-M0系列则无此功能,包含STMF0、STML0、STMG0等。好源码网站源码STMCubeMX工具中进行Debug选项配置即可实现SWO功能。 二、IAR SWO输出配置 在IAR EWARM的『Terminal IO』中输出信息,需进行如下配置:在Project -> Options选项下,选择SWO功能与调试工具(ST-Link或J-Link),并完成相应配置。
进入调试模式,通过JLink菜单(ST-Link类似)配置SWO参数,包括时钟、ITM端口使能及PC采样。
修改ITM端口,如使用ITM端口1,调整相关代码实现。注意,若修改ITM端口,需使能对应ITM刺激端口。
三、输出效果与下载源码 完成配置后,输出效果可通过IAR EWARM的『Terminal IO』查看。为便于学习,已提供相应源码工程下载,包含STMF(HAL)_SWO、STMF(HAL)_SWO等。链接与提取码已提供。 四、注意点与说明该文档仅供个人学习,禁止商用。
教程内容可能存在错误,欢迎指正。
关注微信公众号『嵌入式专栏』,获取全系列教程。
五、相关链接与资源博客:strongerhuang.com
GitHub:github.com/EmbeddedDeve...
关注微信公众号『strongerHuang』,了解更多精彩内容!hex文件详解及常用合并方法介绍
在多模块系统开发中,hex文件合并技巧显得尤为重要,特别是当涉及IAP升级这样的场景,需将BOOT和APP分区整合为一个文件。hex文件,作为单片机可执行的文件格式,其合并策略至关重要。接下来,我们将深入解析hex文件的结构和常见合并方法。hex文件的本质
hex文件是一种用于向单片机加载程序的二进制文件,通过编译器将C语言或汇编程序编译而成。它的核心结构包括三部分:首部信息、数据区和尾部结束标记。首部信息的前4字节标识数据长度,后4字节描述地址和类型,如数据记录()、文件结束()、地址扩展()等,最后的校验和保证数据完整。hex文件与地址对应
hex文件中的每个数据行都与单片机的内存地址紧密相关。首字节的数据长度指示后续字节的数量,后续字节则包含地址信息,如0x表示从特定地址开始记录。校验和确保数据的正确性,例如,第2行的校验和0xD2通过计算得出。合并hex文件的方法
1. 直接合并法 简单但不推荐的方式是直接在文本编辑器中操作。删除BOOT文件的最后一行结束标识,然后粘贴APP代码。但这种方式缺乏精确的地址管理和校验,不适用于大规模或复杂项目。 2. 使用jlink工具 jlink是一款强大的单片机烧录工具。通过jflash功能,你可以打开两个hex文件,将一个文件的内容追加到另一个文件的末尾,然后保存合并后的文件。这不仅方便,还能确保地址的连续性和一致性。 3. 开源工具 网络上有许多免费的开源工具,如C#编写的STM-IAP-HEX-Merge。下载源码,根据提示操作,可以轻松合并多个hex文件,生成的bin文件也可一并使用。这种方式更加灵活且便于扩展。经验分享
合并hex文件是开发过程中的基础技能,掌握好这些方法可以简化生产流程,减少成本。如果你在合并过程中遇到问题,欢迎随时与我交流,一起探索和学习。JLink:嵌入式开发者的得力助手,下载
下载链接:
[V7.f][][JLink_Windows_Vf_x_.exe]
位下载链接:呐,我给你 - 做一个舒服的嵌入式工具下载站
[V7.f][][JLink_Windows_Vf_i.exe]
位下载链接:呐,我给你 - 做一个舒服的嵌入式工具下载站
JLink是SEGGER公司推出的一款适用于嵌入式系统的调试工具,它的出现极大地方便了嵌入式开发者的调试工作。
一、JLink简介
JLink是一款专为嵌入式系统设计的调试工具,支持ARM、Cortex-M、Cortex-R等多个系列的处理器。通过JLink,开发者可以在计算机上与目标板进行实时通信,进行程序下载、调试、仿真等操作。其主要优点包括:支持多种处理器系列、操作简单方便、功能强大等。但同时,它也存在一些不足,如:价格相对较高,不提供源代码等。
二、JLink使用指南
硬件准备
使用JLink需要准备相应的硬件设备,包括JLink调试器和目标板。调试器需与计算机连接,而目标板则通过调试器与计算机通信。
软件安装
在硬件准备完毕后,安装相应的软件使用JLink。首先安装SEGGER的J-Flash软件,用于将程序烧录到目标板上;其次安装JLink驱动程序,用于连接调试器和计算机;最后安装相应的IDE和编译器,以便编写和编译程序。
连接方式
调试器和目标板的连接方式根据实际情况选择。通常,可以通过串口、USB接口或JTAG接口连接。具体连接方式需根据目标板的接口类型和调试器的接口类型确定。
数据传输
使用JLink进行数据传输主要包括程序下载和调试数据传输两个方面。程序下载是通过J-Flash软件将编译好的程序烧录到目标板上;调试数据传输是通过JLink驱动程序与目标板进行实时通信,传输调试过程中的数据。
三、使用案例
调试硬件问题
在嵌入式系统开发中,硬件问题是不可避免的。使用JLink可以帮助快速定位并解决硬件问题。如出现某个硬件故障时,可以通过JLink将调试器连接到目标板上,然后在计算机上运行相应程序,观察目标板的反应情况,从而快速定位故障位置。
加载程序
在嵌入式系统开发中,需要将程序烧录到目标板上。使用JLink可以方便地将程序烧录到目标板上。通过J-Flash软件,将编译好的程序文件烧录到目标板闪存中。同时,JLink还支持在程序运行过程中进行动态加载,在不重新烧录程序的情况下,对部分代码进行更新和调试。
四、注意事项
安全问题
使用JLink时需要注意安全问题。由于调试过程中需要与目标板进行实时通信,因此需确保目标板与计算机之间的连接稳定可靠。此外,还需对调试过程中传输的数据进行加密处理,以防数据被非法获取或篡改。
连接稳定性
在嵌入式系统开发时,需保持调试器与目标板的稳定连接。若连接不稳定,可能导致程序下载失败或调试过程中出现异常情况。因此,需定期检查连接状态并进行维护,以确保连接稳定可靠。
电池寿命
若目标板使用的是可充电电池进行供电,需注意电池寿命问题。若电池电量不足,可能导致目标板无法正常工作或出现异常情况。因此,需定期检查电池电量并进行充电,以确保电池寿命得到充分保障。
五、结论总结
本文介绍了使用JLink的技巧和攻略。通过掌握这些技巧和注意事项,可以更方便地利用JLink进行嵌入式系统开发工作。同时,我们也注意到,不同的目标板和实际需求对使用技巧和注意事项有不同的要求和挑战。因此,在使用JLink时需结合具体情况灵活应用并加以思考和总结。总的来说,JLink作为一款强大的嵌入式系统调试工具,对嵌入式开发者来说具有很高的实用价值和使用价值。