2.2.1 板级硬件初始化 — rt_hw_board_init 在上图找那个,板级硬件初始化最后调用了登录后复制rt_components_board_init()函数,这个函数如下: rt_components_board_init()函数会把所有 INIT_BOARD_EXPORT 的设备都初始化,这里暂时不介绍是如何实现的,但是有必要说明一下。 比如我们什么外设都没使能,但是使用到...
; * rt_base_t rt_hw_interrupt_disable(); ; */ rt_hw_interrupt_disable PROC EXPORT rt_hw_interrupt_disable MRS r0, PRIMASK CPSID I BX LR ENDP 1.2.rt_hw_board_init() 该函数主要进行MCU相关硬件外设的初始化,内容依然较多。 /** * This function will initial STM32 board. */ RT_WEAK vo...
我们看到,该函数名是rt_为前缀的,要被RT-Thread上层函数调用,具体是在drv_common.c中通过宏RT_USING_SERIAL控制的初始函数: RT_WEAK void rt_hw_board_init() { ... /* USART driver initialization is open by default */ #ifdef RT_USING_SERIAL rt_hw_usart_init(); #endif ... } 之前文章分析过...
rtthread_startup是启动流程当中的关键,首先rtthread_startup会先调用rt_hw_board_init,这个函数也由bsp支持部分提供,一般来说主要完成例如初始化中断向量表、系统时钟的初始化,设置输出控制台,同时初始化系统堆内存。 紧接着会调用rt_show_version打印RT-Thread内核的系统版本信息,其中主要是利用...
1、调用函数rt_hw_board_init 完成板子初始化工作 2、显示版本信息:rt_show_version 3、初始化系统滴答:rt_system_tick_init 4、系统内核对象初始化:rt_system_object_init 5、定时器初始化:rt_system_timer_init 6、系统堆栈初始化rt_system_heap_init ...
如上图红框所示,rt_hw_pin_init和rt_hw_usart_init都是使用 INIT_BOARD_EXPORT(fn)声明的函数,因此,它们是存放在橙色竖线所在的区间的,使用rt_components_board_init()函数就可以对这个区间进行遍历。 如上图蓝框和绿框所示,它们分别是用 INIT_COMPONENT_EXPORT(fn)和 INIT_APP_EXPORT(fn)声明的函数,这些函数...
board.c文件中的rt_hw_board_init()函数 -> drv_common.c文件中的hw_board_init()函数 -> drv_clk.c文件中的clk_init()函数 -> drv_clk.c文件中的system_clock_config()函数。 知道这个流程之后就可以自行修改时钟配置函数。 总结:关于修改外部时钟配置的网上有很多人写过,只不过可能不少人会忽略了修改...
* This function will initial STM32 board. */ void rt_hw_board_init() { // rtthread tick configuration // 2. Configure rtos tick and interrupt //SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); ...
在board.c 文件的函数 rt_hw_board_init 中,添加代码如下 #ifdef RT_USING_SERIAL extern void rt_hw_usart_init(); rt_hw_usart_init(); #endif //注意,代码添加在rt_console_set_device之前, 否则,好像shell是用不了的,应该是console未能初始化。
把stm32的系统时钟放到board.c后面 把系统时钟初始化放到void rt_hw_board_init() 5.重新编译没有错误,自此移植结束。 三.使用rt-thread点亮LED 1.首先GPIO初始化 在board.c添加GPIO初始化函数 2.使用2种方式点亮LED 使用静态栈方式 #include "board.h" ...