/* common device interface */ rt_err_t (*init) (rt_device_t dev); rt_err_t (*open) (rt_device_t dev, rt_uint16_t oflag); rt_err_t (*close) (rt_device_t dev); rt_size_t (*read) (rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size); rt_size_t (*wr...
1. board 初始化阶段需要初始化系统时钟、倍频 cpu 时钟、 `rt_hw_systick_init`、 `rt_system_heap_init`、 `rt_hw_pin_init`、还有 `rt_hw_usart_init` 设备,可能还有 `rt_console_set_device`。为了能第一时间使用上控制台串口,`rt_hw_usart_init` 必须尽早执行,然后是 `rt_console_set_device` ...
如果没有在这之前初始化 USART,就会造成程序卡死在这里。因此要在 board.c 文件中 rt_hw_board_init 函数中添加初始化 USART1 的代码,文件头部还要包含 USART1 的头文件。示例代码如下 #include "usart.h" void rt_hw_board_init() { /* System Clock Update */ SystemCoreClockUpdate(); /* System Tick...
(void*)0x204000); #else rt system heap init((void*) bss end, (void*)0x204000); #endif #endif /* 初始化系统调度器 */ rt system scheduler init(); /* 如果使用了钩子函数,把rt hw led flash函数挂到idle线程的执行中去 */ #ifdef RT USING HOOK /* set idle thread hook */ rt ...
int system_sram2_init(void) { static struct rt_memheap memheap_sram2; /* Heap initialization */ #if defined(RT_USING_HEAP) rt_memheap_init(&memheap_sram2, "sram2", (void *)RAM2_START, (rt_size_t)RAM2_SIZE); #endif return 0; ...
*/voidrt_hw_board_init(void){/* initialize hardware interrupt */rt_hw_interrupt_init();/* initialize system heap */rt_system_heap_init(heap_start, &heap_start[heap_len/sizeof(uint32_t)]);//rt_system_heap_init(HEAP_BEGIN, HEAP_END);rt_components_board_init();//SystemClock_Init()...
调用rt system heap init函数时的最后一个参数是尾地址0x204000 * 前面的初始地址则根据编译器环境的不同而略微不同 */ #ifdef RT USING HEAP #ifdef CC ARM rt system heap init((void*)&Image$$RW IRAM1$$ZI$$Limit, (void*)0x204000); #elif ICCARM rt system heap init( segment end("HEAP"...
voidrt_system_timer_init(void) { inti; for(i =0; i <sizeof(_timer_list) /sizeof(_timer_list[0]); i++) { rt_list_init(_timer_list + i); } } 【功能】 初始化硬件定时器链表结点,将其前驱指针和后继指针均指向表头结点。
在rt_application_init 函数创建了主线程。 代码语言:javascript 复制 /* the system main thread */voidmain_thread_entry(void*parameter){extern intmain(void);extern int$Super$$main(void);#ifdefRT_USING_COMPONENTS_INIT/* RT-Thread components initialization */rt_components_init();#endif ...
调用rt system heap init函数时的最后一个参数是尾地址0x204000 * 前面的初始地址则根据编译器环境的不同而略微不同 */ #ifdef RT USING HEAP #ifdef CC ARM rt system heap init((void*)&Image$$RW IRAM1$$ZI$$Limit, (void*)0x204000); #elif ICCARM rt system heap init( segment end("HEAP"...