1、裸机和FreeRTOS的区别,为什么用RTOS?
1、实时性如何实现?
2、任务间如何通信
3、二值信号量和互斥信号量的区别?
4、任务通知怎么实现
5、框架性地回答一个嵌入式freeRTOS启动到结束的过程
6、任务调度的原理?
首先FreeRTOS有一个系统定时器的滴答中断,一般设置为1ms,在滴答中断触发时,系统会查看是否需要进行任务切换,其次是每个任务在被创建时都有其对应的任务控制块,其中包含了它的优先级,任务的状态包括就绪、运行、阻塞、挂起,而FreeRTOS的核心是任务调度器,它负责管理所有任务的状态,并决定哪个任务会运行。
7、如何实现队列?
8、简述FreeRTOS的任务调度?
9、简述FreeRTOS的移植流程?
10、FreeRTOS的IPC通信方式?
队列提供了一个发送任务和接受任务之间的数据缓冲区,可以实现任务之间数据的传输。
信号量可以看做一种资源,可以借他实现任务间的同步,这个意思是指A任务在得不到信号量时会被阻塞,当B任务执行完同步操作后释放信号量,此时A任务得到信号量执行下一步操作,这样实现了任务的顺序执行。
11、tickless模式是什么?
12、如何创建任务?
13、如何管理内存?
14、如何配置、裁剪内核?
配置内核主要包括确定系统的堆栈大小,滴答定时器的频率,配置任务优先级以及选择任务调度策略。
15、什么是软件定时器?
软件定时器是FreeRTOS的一种机制,它允许任务在将来的某个时间点被唤醒,是用调度器和滴答定时器来模拟的,软件定时器可以通过配置与一个任务相关联,定时器完成计数后会将该任务放入就绪列表内。
16、中断和任务的区别?
中断是指硬件和软件触发的事件,主要用于快速响应内部或外部事件,具备固定的优先级,且执行的事件非常短。
任务则是操作系统调度的一个基本单位,可以执行复杂的操作,可以被挂起和恢复。
17、任务栈是什么?如何初始化?
18、什么是死锁?如何避免?