目的
用RT-Thread Studio创建一个简单工程,主要功能为点亮LED灯,同时用Jlink RTT作为打印输出。RT-Thread官方例程为点亮LED灯,同时用UART1作为console端口。由于Jlink本身带有RTT打印功能,能节省一个UART口。
使用的MCU:STM32F407ZG(正点原子探索者开发板)
开发环境:RT-Thread Studio
步骤
一、打开RT-Thread Studio,新建项目
可以选择标准RT-Thread或者Nano版本新建。
工程名字及路径:根据个人喜好自定义。
基于芯片或者开发板都行,本次是基于芯片。然后选择对应开发芯片的型号。控制台串口先默认UART1,调试器选择Jlink。然后完成。
二、RT-Thread配置,添加RTT软件包,配置console为jlinkRtt
点击添加软件包,搜索RTT软件包,然后添加。
(若想打印浮点型数据,即输出f%,需再添加rt_vsnprintf软件包,添加该软件包大概增加8Kb字节的存储空间)
打开SEGGER RTT功能
组件栏打开PIN功能
打开rt_kprintf控制台,修改控制台名称为jlinkRtt
以上配置修改完成之后,点击保存或者按快捷键Ctrl+S,系统会自动保存并配置好。
三、用STM32 CubeMX生成时钟配置
这里用的MCU是STM32F407ZG,所以用官方的CubeMX软件配置系统时钟。其他厂家的芯片根据厂家提供的时钟配置即可。
根据芯片型号配置时钟,配置好之后GENERATE CODE,生成代码。
用MDK打开工程,copy生成的代码中的SystemClock_Config()函数里所有代码。
四、RT-Thread Studio中手动修改代码
找到并打开drv_clk.c,将上一步在mdk中copy的SystemClock_Config代码,直接替换掉system_clock_config()里的代码。
修改board.c文件,一是初始化jlink_rtt,二是设置console设备。初始化jlink_rtt先extern引用外部函数,然后直接调用。设置console设备的需要在component组件初始化之后,如图所示,放在后面。
在main.c中添加用户程序。程序中循环亮灭红绿灯。
结尾
至此,一个点亮LED灯的基本工程做好了,jlink同时作为打印输出用。J-link RTT使用时,打开J-link RTT Viewer,就能收到RT-Thread的打印信息了,同时还能作为控制台使用。注意发送命令时,先设置Input–>Sending–>Send on Enter,输入命令后按enter键就发送出去了。
刚接触RT-Thread操作系统,做个笔记记录一下。