EDA365电子论坛网

标题: RT-Thread nano pack中board.c配置错误怎么办? [打印本页]

作者: abc66    时间: 2022-10-10 10:47
标题: RT-Thread nano pack中board.c配置错误怎么办?
nano的MDK移植( I4 K+ K3 U# a, [5 |9 ~
# g$ f, C- \! D* U0 A
board.c 中rt_hw_board_init()报错
* I3 x6 T# J$ i: N+ E#error "TODO 1: OS Tick Configuration."
- X1 R/ X: d) ?' v2 v- x+ v$ G6 H* s+ z* z) O6 D% I
void rt_hw_board_init(void)* `& S8 y5 M8 O( b6 p
{& _, x0 L8 i; \! J! B
/*) @4 s" l$ W% {% W0 A& x4 j

0 v2 ]) n* t6 D7 g3 `TODO 1: OS Tick Configuration
$ G7 z& }2 G; Y3 a% b* VEnable the hardware timer and call the rt_os_tick_callback function# O* y* C8 W# t# L: T6 [5 _/ b
periodically with the frequency RT_TICK_PER_SECOND.
  j$ X& L" l* l# Y/
$ {2 l, j" W( k5 t" q9 k2 }9 ~! n3 Z/ 1、系统、时钟初始化 /
' a3 Q/ n- H' @- F0 r* A. YHAL_Init(); // 初始化 HAL 库 ** waring:is invalid in c99*
1 M& A  Z. E: BSystemClock_Config(); // 配置系统时钟 waring:is invalid in c99
9 L8 R; F) A+ b; l2 C5 A( l3 E/ a7 z: vSystemCoreClockUpdate(); // 对系统时钟进行更新 waring:is invalid in c995 H& j9 X) r! h, i0 q1 I9 U
/* 2、OS Tick 频率配置,RT_TICK_PER_SECOND = 1000 表示 1ms 触发一次中断 /
3 ^( F( S9 n) y; K2 F  c- ?SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); ** SystemCoreClock不能识别*
6 x" _: w# w+ Y+ ^' }/ a3 l- x9 x/* Call components board initial (use INIT_BOARD_EXPORT()) */$ f1 r: B  f. x  @( [
#ifdef RT_USING_COMPONENTS_INIT
8 D9 w: ?; W7 n- W6 P+ Irt_components_board_init();
! Q& `; P! M% W/ ~) g! V, H3 t# ]& {#endif8 M2 c" H% A) y; a$ x
#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP): u4 w9 l4 N8 N+ e6 M4 i
rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());) ^3 z; Q  F" r6 W% t
#endif
( a% B& S: w1 o3 p2 {) P}
作者: dsgh    时间: 2022-10-10 13:07
这应该只是个提示,提示先要把 systick 配置好。配置好后,这个提示就可以关闭了或者手动注释掉,board.c文件默认是平台适配的,用户需要手动配置时钟、systick定时器等。3 z8 Q' ?" I% Z7 T! E0 K2 k

作者: itch    时间: 2022-10-10 13:22
一般我们使用
3 T) n- A: S( ?5 `/ p4 M6 k  U3 L3 W) \+ j
#error "TODO 1: OS Tick Configuration."* t" }  `, [! |* K
提示用户,这里需要做移植适配,仅此而已。# U% Y8 R4 _$ y" X

作者: lahhse    时间: 2022-10-10 13:52
nano版本默认配置,使用线程是静态创建得只能使用rt_thread_init(struct rt_thread* thread, const char* name, void (*entry)(void* parameter), void* parameter, void* stack_start, rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick);而一般使用比较多得rt_thread_create(const char* name, void (*entry)(void* parameter), void* parameter, rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick);动态创建,所以为了能使用,开启此处使能既可以。& ?9 {1 L3 D, k# s* s





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2