具体为:刚新建了一个stm32F407ZGT6和一个STM32F103RCT6的工程,之后啥代码也没有改,直接打开main.c文件然后编译,直接报错。 报错定位在“drivers/board.c”,再具体定位在代码“RT_WEAK void rt_hw_board_init()”。 以下是代码原码: board.c #include<rtthread.h>#include<board.h>#include<drv_common.h>...
rt-thread 源码目录下 “components/dfs/filesystems/romfs” 有个 romfs.c 文件,是 rom 文件系统配置模板文件,拷贝它到你的应用目录下,修改_root_dirent定义。可以创建只读文件。 RT_WEAK const struct romfs_dirent _root_dirent[] = { {ROMFS_DIRENT_DIR, "dummy", (rt_uint8_t *)_dummy, sizeof(_d...
rt-thread 源码目录下 “components/dfs/filesystems/romfs” 有个 romfs.c 文件,是 rom 文件系统配置模板文件,拷贝它到你的应用目录下,修改_root_dirent定义。可以创建只读文件。 RT_WEAK const struct romfs_dirent _root_dirent[] = { {ROMFS_DIRENT_DIR, "dummy", (rt_uint8_t *)_dummy, sizeof(_d...
报错中会含有main函数的报错,在cubemx生成的main.c里,在main函数前加上__weak(注意此处是两个短下划线)如图二所示 而真正的main.在application里。如图三所示 这个时候build的话就不会有什么报错了。 然后我们可以修改系统时钟为HSE,在drv_clk.c里,clk_init中注释掉原本的system_clock_config,并如图二所示修改。
rt-thread 定义的软件定时器还细分两种,“硬定时器” “软定时器”,前一种是在 SysTick 中断中执行回调函数的,多数用于线程内置定时器,应用层也可以用,但是要时刻谨记它的回调函数是在中断中执行的。 后一种,是在一个线程中运行的,应用层对定时精度要求不是很高的可以用这种,但是也要注意“定义定时器和执行定...
weak,自行修改一下就行,该项问题不属于芯片支持包部分,之前也有给RT Thread官方反馈过该问题,可能暂...
RT_WEAK 的错误是上面两处。3.4.2 mpy_main.c 文件的 rt_thread_self()->name 需要改为 rt_...
__attribute__((weak))voidPendSV_Handler(void){/* USER CODE BEGIN PendSV_IRQn 0 *//* USER CODE END PendSV_IRQn 0 *//* USER CODE BEGIN PendSV_IRQn 1 *//* USER CODE END PendSV_IRQn 1 */} 在编译,还是报错: 函数rt_hw_board_init未定义,这里也可以抄一抄,在RT-Thread Studio中生成...
移植RT-Thread,我们主要需要修改的是board.c和rtconfig.h这两个文件,board.c主要是配置系统时钟和OS_TICK(为操作系统提供心跳),而rtconfig.h则是可以根据需要配置系统的各项功能的。这里我们的配置如下(仅供参考): rtconfig.h 代码语言:javascript 代码运行次数:0 ...
因为找不到RT_WEAK的定义,需要修改头文件rtdef.h#defineRT_WEAK __attribute__((constructor))4.5.5屏蔽rt_hw_us_delay定义4.5.6修改entry函数intentry(void){rt_hw_interrupt_disable();rtthread_startup();return0; }4.5.7修改main_thread_entry函数voidmain_thread_entry(void*parameter){externintmain(voi...