完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用arm-none-eabi-gcc编译cubemx 生成的项目。 发现没有程序没有跳到uart_init
void rt_hw_board_init(void) { extern void SystemClock_Config(void); HAL_Init(); SystemClock_Config(); SystemCoreClockUpdate(); /* * 1: OS tick Configuration * Enable the hardware timer and call the rt_os_tick_callback function * periodically with the frequency RT_TICK_PER_SECOND. */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/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 } #ifdef RT_USING_CONSOLE static UART_HandleTypeDef UartHandle; static int uart_init(void) { /* TODO: Please modify the UART port number according to your needs */ UartHandle.Instance = USART3; UartHandle.Init.BaudRate = 115200; UartHandle.Init.WordLength = UART_WORDLENGTH_8B; UartHandle.Init.StopBits = UART_STOPBITS_1; UartHandle.Init.Parity = UART_PARITY_NONE; UartHandle.Init.Mode = UART_MODE_TX_RX; UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&UartHandle) != HAL_OK) { while (1); } return 0; } INIT_BOARD_EXPORT(uart_init); |
|
相关推荐
3个回答
|
|
rt_components_board_init 这句被调用了,但是 uart_init 没有被调用?
|
|
|
|
这是rtt的自动初始化机制将串口外设在main之前就给初始化好了,参考 自动初始化原理
另外附上rtt串口自动初始化中函数的调用过程,说着这个分析可以分析出串口初始化的过程。 rtthread_startup(components.c) |-> hw_board_init(drv_common.c) |-> rt_hw_usart_init(drv_usart.c) |-> rt_hw_serial_register(serial.c) |-> rt_device_register(device.c) // 注册串口设备,使用 list_device 可以看到注册的设备 |-> rt_object_init(object.c) |
|
|
|
谢谢大佬解惑
原来是我连接脚本没有将".rti_fn*" 的段添加进去 /* section information for initial. */ . = ALIGN(4); __rt_init_start = .; KEEP(*(SORT(.rti_fn*))) __rt_init_end = .; . = ALIGN(4); 但是还有一个问题 为什么我没添加进去会有下面三个生成的? .rti_fn.0.end 0x080054c0 0x4 .rti_fn.0.end 0x080054c0 0x4 CMakeFiles/MainIOBoard.elf.dir/Middlewares/Third_Party/RealThread_RTOS/src/components.c.obj 0x080054c0 __rt_init_rti_board_start .rti_fn.1.end 0x080054c4 0x4 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
451 浏览 0 评论
1101 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2075 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2598 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
28384 浏览 11 评论
71918 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 05:00 , Processed in 0.693849 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号