rt-thread中的串口初始化过程

本文详细梳理了rt-thread操作系统中串口初始化的过程,从rtthread_startup()函数开始,涉及rt_hw_board_init()、rt_hw_usart_init()、HAL_UART_Init()和HAL_UART_MspInit()等关键步骤,解析了配置串口参数、IO口初始化和控制台输出串口的设定,强调了rtconfig.h文件中的宏定义作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式系统:rt-thread

开发板:STM32F429

上了嵌入式操作系统的程序结构复杂,所以串口初始化的过程也不如裸机程序直观明了,在需要根据实际情况修改串口时,就会存在找不到相关程序位置的现象,所以接下来,对rt-thread中的串口初始化过程进行一下梳理。

1.首先在rt-thread的内核Kernelcomponents.c文件中,有一个rtthread_startup()函数,该函数被$Sub$$main()__low_level_init()entry()三个函数中均有调用,而这三个函数中,具体执行哪个,取决于宏定义,而三个函数前对应的宏定义__CC_ARM__CLANG_ARM__ICCARM____GNUC__是MDK中使用的编译器来选择的。这里推测应该是使用的$Sub$$main()函数。而该函数中$Sub$$的作用就是在main函数执行前,先执行以下这个函数中的代码,即rtthread_startup()函数。

2.rtthread_startup()函数中,主要是rt-thread进行板级的一些初始化,如打印rt-thread的logo信息,系统时钟的初始化,系统调度初始化,空闲进程的初始化等。其中rt_hw_board_init()函数中,就是对一些板级硬件的初始化,该函数的定义位于drv_common.c

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值