RT-Thread学习(一)-基于keil移植GD32

1 前言

啊啊啊,纠结了很久,一直在纠结学哪种rtos,在freertos和rt之间反复横跳,一直在想以后工作了会用什么,但是因为现在自己的项目用了GD32,既然国产了,那就继续国产吧,认真好好学rt

2 参考资料

PS:因为我很懒,不想自己配置,所以就想用keil直接解决

  1. https://aijishu.com/a/1060000000367440 (技术贴)
  2. https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/nano-port-keil/an0039-nano-port-keil (官方教程)

3 硬件电路

GD32F427RK(买的开发板)
GD32F427VE(自己画的板子)

4 移植过程

详细的移植过程根据前面的参照资料一步步来就行
特意记录的部分:
board.c中会有这个

点击查看代码
//#error "TODO 1: OS Tick Configuration."
    /*
     * TODO 1: OS Tick Configuration
     * Enable the hardware timer and call the rt_os_tick_callback function
     * periodically with the frequency RT_TICK_PER_SECOND.
     */
这里需要自己配置时钟,在rt_hw_board_init做出如下更改
void rt_hw_board_init(void)
{
//#error "TODO 1: OS Tick Configuration."
    /*
     * TODO 1: OS Tick Configuration
     * Enable the hardware timer and call the rt_os_tick_callback function
     * periodically with the frequency RT_TICK_PER_SECOND.
     */
    /* 1、系统、时钟初始化 */
    systick_config(); // 配置系统时钟
    SystemCoreClockUpdate(); // 对系统时钟进行更新

    /* 2、OS Tick 频率配置,RT_TICK_PER_SECOND = 1000 表示 1ms 触发一次中断 */
    SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
    /* Call components board initial (use INIT_BOARD_EXPORT()) */
#ifdef RT_USING_COMPONENTS_INIT
    rt_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
}

注意包含头文件systick.h和gd32f4xx.h

作者:PhoenixTree

出处:https://www.cnblogs.com/PhoenixTree/p/17458827.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Phoenix-Tree  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题