你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32C031评测】适配RT-thread nano

[复制链接]
andey 发布时间:2024-3-12 14:27

概述

RT-thread 是个具有丰富组件的开发系统,相对其它运行在mcu的系统其丰富的组件是其一大优势,而且RT-thread的bsp架构下支持的STM32的开发板数量也很丰富,而且官方也有如何创建STM32 BSP的指导手册(STM32BSP制作)。该教程基本是保姆级别的教程了,按照方法制作即可,不过在STM32C0的板子上使用标准版本的RT-thread,最终只是开启基本的驱动框架核shell发现最后会link error资源不够,看来STM32C0 32k的flash资源跑标准版本的还是中了些,对应的link错误如下:

rt-thread-linkerror.jpg

从编译错误缺少的空间还是比较多的,RT-thread 还有个nano 版本相对对资源要求低很多,既然标准版放不下我们就适配下nano版本。看了下之前其他芯片跑的RT-thread 标准版的最小系统镜像大小为40k。

rtmin.png

RT-thread nano版本适配

本地使用的环境是IAR,官方对nano版本的适配也有参考文档这样会加快我们的适配过程,对应的教程也算是保姆级别的讲述的很详细,基于 IAR 移植 RT-Thread Nano

rtt_nano.png

按照上述文档很容易就能完成对应的移植适配过程,按照上述文档的移植完的系统是不包含finsh组件的,我们没有办法使用shell,此时检查系统镜像的大小发现小了很多大约为9K

RT_SIZE.png

基于上述移植的系统基础上添加shell组件,将如下文件加入工程编译:

rtt_shell.png

shell 会依赖物理层的接口我们使用的是串口,修改代码实现如下的串口收发函数。

void rt_hw_console_output(const char *str)
{
  while(*str)
  {  
      while (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TXE)  == RESET );
      if(*((uint8_t *)str) == '\n')
      {
        huart2.Instance->TDR = '\r';
        while (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TXE)  == RESET );
      }
      huart2.Instance->TDR = *((uint8_t *)str);
      str++;
  }  
}


int rt_hw_console_getchar(void)
{
  int data = 0;
  if(RingBuffer_Read(&uart_rx,(uint8_t *)&data,1))
  {
    return data;
  }
  else
  {
    return -1;
  }
}

此时我们上电运行,熟悉的串口终端已经运行起来,熟悉的味道。

20240312-142953.gif

添加shell 后镜像为13K,相对增加了4K,在main task内添加周期闪烁led的程序,led 按照预期的闪烁shell也可以正常交互说明系统调度正常。

int main(void)
{
  /* Initialize BSP Led for LED4 */
  BSP_LED_Init(LED4);
  /* USER CODE END SysInit */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    BSP_LED_On(LED4);
    rt_thread_mdelay(500);
    /* USER CODE BEGIN 3 */
    BSP_LED_Off(LED4);
    rt_thread_mdelay(500);
  }
  /* USER CODE END 3 */
}
收藏 评论2 发布时间:2024-3-12 14:27

举报

2个回答
STMCU-管管 回答时间:2024-3-12 14:43:21
RT-thread 挺热门$ J; [% T; g& A' Z4 j
andey 回答时间:2024-3-12 15:17:08

STMCU-管管 发表于 2024-3-12 14:43
RT-thread 挺热门

嗯嗯 组件很丰富的一个系统,最近一直在学习RT-thread

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版