完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。 相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行. 官方地址:http://www.freertos.org/ 有了STM32CubeMX,FreeRTOS的工程是不用再自己移植的了,直接可以使用STM32CubeMX生成一个FreeRTOS的工程。 如下是一个FreeRTOS工程中关于FreeRTOS的程序。 |
|
相关推荐
|
|
与一般的裸机程序的开发类似的,开始也要对芯片进行相关的初始化。
如下,是对CPU缓存、HAL库,时钟、外设进行初始化。 查看原代码 CPU_CACHE_Enable(); HAL_Init(); SystemClock_Config(); BSP_LED_Init(LED1); |
|
|
|
|
|
这里只使用了一个GPIO 的外设,初始化程序如下:
查看原代码 void BSP_LED_Init(Led_TypeDef Led) { GPIO_InitTypeDef gpio_init_structure; GPIO_TypeDef* gpio_led; if (Led == LED1) { gpio_led = LED1_GPIO_PORT; /* Enable the GPIO_LED clock */ LED1_GPIO_CLK_ENABLE(); /* Configure the GPIO_LED pin */ gpio_init_structure.Pin = GPIO_PIN[Led]; gpio_init_structure.Mode = GPIO_MODE_OUTPUT_PP; gpio_init_structure.Pull = GPIO_PULLUP; gpio_init_structure.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(gpio_led, &gpio_init_structure); /* By default, turn off LED */ HAL_GPIO_WritePin(gpio_led, GPIO_PIN[Led], GPIO_PIN_RESET); } } 那么之后就是对FreeRTOS的使用了。 |
|
|
|
|
|
使用osThreadDef宏新建一个线程。
osThreadDef宏的定义如下,这里合作了“##”来产生线程的名字。 查看原代码 #define osThreadDef(name, thread, priority, instances, stacksz) const osThreadDef_t os_thread_def_##name = { #name, (thread), (priority), (instances), (stacksz) } 线程建好后要使用osThreadCreate开始。 查看原代码 LED1_ThreadId = osThreadCreate(osThread(LED1), NULL); 这里的LED的线程只是一个GPIO的LED的闪烁,可以看到,在线程中有一个for(;;)的循环。这就是线程的主体了。 |
|
|
|
|
|
查看原代码
static void LED_Thread1(void const *argument) { (void) argument; uint32_t PreviousWakeTime = osKernelSysTick(); for(;;) { osDelayUntil (&PreviousWakeTime, 200); BSP_LED_Toggle(LED1); } } 最后,通过以下的函数,打开FreeRTOS,开始线程调度。 查看原代码 osKernelStart(); 程序现象就是LED1闪烁。 |
|
|
|
|
|
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
1919 浏览 0 评论
【瑞萨RA2L1入门学习】+ MacOS安装e2studio
773 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
808 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示
677 浏览 0 评论
759 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12253 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-4 06:00 , Processed in 0.548498 second(s), Total 74, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号