您的位置:首页 > 房产 > 建筑 > 【笔记】MSPM0G3507移植RT-Thread——MSPM0G3507与RT_Thread(二)

【笔记】MSPM0G3507移植RT-Thread——MSPM0G3507与RT_Thread(二)

2024/10/7 4:31:27 来源:https://blog.csdn.net/godmial/article/details/141190005  浏览:    关键词:【笔记】MSPM0G3507移植RT-Thread——MSPM0G3507与RT_Thread(二)

一.创建新工程

找到"driverlib\empty"空白工程,CTRL+C然后CTRL+V复制副本

重命名为G3507_RTT

打开KEIL工程

双击empty.syscfg,然后打开SYSCONFIG

我的不知道为啥没有48pin选项,如果你也一样,可以跟着我做,如果你的正常就不需要再更改芯片型号

更改芯片型号

保存,编译

编译没有错误

二.添加rtthread到工程

如何安装rtthread 3.1.5 keil pack请参考

使用 MDK 移植 (rt-thread.org)icon-default.png?t=N7T8https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/nano-port-keil/an0039-nano-port-keil

将内核加入工程

这时候编译会报错    #error "TODO 1: OS Tick Configuration.,这是rtt主动加的一个报错,提示你需要实现相应功能才能正常使用rtt

这也正好是我们下一步要做的事。

三.修改rtt代码

修改说明参考:

使用 MDK 移植 (rt-thread.org)icon-default.png?t=N7T8https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/nano-port-keil/an0039-nano-port-keil有兴趣看看,我们就直接开始了

rt_hw_board_init里添加代码

/*** This function will initial your board.*/
void rt_hw_board_init(void)
{SYSCFG_DL_init();                                 //在使用任何板级支持包的API之前,执行所需的任何初始化工作。DL_SYSTICK_config(CPUCLK_FREQ/RT_TICK_PER_SECOND);//时钟配置#ifdef RT_USING_COMPONENTS_INITrt_components_board_init();
#endif#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());
#endif
}

会报红,因为头文件还没加

添加头文件,头文件要添加绝对路径,很奇怪

这是我的头文件绝对地址,你要填自己的。

这时候编译就不会报错。

添加终端服务函数:

void rt_os_tick_callback(void)
{rt_interrupt_enter();rt_tick_increase();rt_interrupt_leave();
}void SysTick_Handler()
{rt_os_tick_callback();
}/*** This function will initial your board.*/
void rt_hw_board_init(void)
{SYSCFG_DL_init();                                 //在使用任何板级支持包的API之前,执行所需的任何初始化工作。DL_SYSTICK_config(CPUCLK_FREQ/RT_TICK_PER_SECOND);//时钟配置#ifdef RT_USING_COMPONENTS_INITrt_components_board_init();
#endif#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());
#endif
}

四.使用LED闪烁验证移植是否成功

这时候其实就已经移植完成了,但是我们看不出来,那就开个小灯试一下吧,跟着我做

打开SYSCONFIG

GPIO配置详解请参考,写的很详细

3. 点亮第一个灯 | 立创开发板技术文档中心 (lckfb.com)icon-default.png?t=N7T8https://wiki.lckfb.com/zh-hans/dmx/beginner/led.html

保存。

修改mian函数

#include "ti_msp_dl_config.h"
#include "rtthread.h"int main(void)
{SYSCFG_DL_init();while (1){DL_GPIO_clearPins(LED1_PORT,LED1_PIN_14_PIN);//输出低电平rt_thread_mdelay(1000);DL_GPIO_setPins(LED1_PORT,LED1_PIN_14_PIN);  //输出高电平rt_thread_mdelay(1000);}
}

程序下载到单片机后现象

更改延时为500ms现象:

程序运行正常

本篇教程到此结束,如果对你有帮助请点赞收藏

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com