| 281 | } |
| 282 | |
| 283 | int rtthread_startup(void) |
| 284 | { |
| 285 | rt_hw_interrupt_disable(); |
| 286 | |
| 287 | /* board level initialization |
| 288 | * NOTE: please initialize heap inside board initialization. |
| 289 | */ |
| 290 | rt_hw_board_init(); |
| 291 | |
| 292 | /* show RT-Thread version */ |
| 293 | rt_show_version(); |
| 294 | |
| 295 | /* timer system initialization */ |
| 296 | rt_system_timer_init(); |
| 297 | |
| 298 | /* scheduler system initialization */ |
| 299 | rt_system_scheduler_init(); |
| 300 | |
| 301 | #ifdef RT_USING_SIGNALS |
| 302 | /* signal system initialization */ |
| 303 | rt_system_signal_init(); |
| 304 | #endif |
| 305 | |
| 306 | /* create init_thread */ |
| 307 | rt_application_init(); |
| 308 | |
| 309 | /* timer thread initialization */ |
| 310 | rt_system_timer_thread_init(); |
| 311 | |
| 312 | /* idle thread initialization */ |
| 313 | rt_thread_idle_init(); |
| 314 | |
| 315 | #ifdef RT_USING_SMP |
| 316 | rt_hw_spin_lock(&_cpus_lock); |
| 317 | #endif /*RT_USING_SMP*/ |
| 318 | |
| 319 | /* start scheduler */ |
| 320 | rt_system_scheduler_start(); |
| 321 | |
| 322 | /* never reach here */ |
| 323 | return 0; |
| 324 | } |
| 325 | #endif |
no test coverage detected