
嵌入式操作系统
文章平均质量分 93
饼干饼干圆又圆
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RTT学习
SMP:对称多处理(Symmetrical Multi-Processiong)简称SMP,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。系统上电后,每个CPU都在ROM中的代码控制下独自运行,但是只有主处理器(简称CPU0)跳转到RTT的初始化入口,而其它处理器(次级CPU)会暂停在某个状态下,等待CPU0将它们唤醒。CPU0完成RTT的全局初始化过程,包括外设初始化,中断控制器的中断分发部分初始化、全局变量的初始化、全局内核对象的创建等等。原创 2024-08-16 13:23:48 · 1038 阅读 · 0 评论 -
RTT学习
在进入新的休眠模式,大部分时钟源会被停止,如果外设不支持休眠的冻结功能,那么从休眠唤醒的时候,外设的时钟就需要重新配置外设。绝大部分的嵌入式系统都包含一些I/O(输入/输出)设备,例如仪器上的数据显示屏、工业设备上的串口通信,数据采集设备上用于保存数据的Flash或SD卡,以及网络设备的以太网接口等,都是嵌入式系统中容易找到的I/O设备例子。外设或应用通过投票机制对所需的功耗模式进行投票,当系统空闲时,根据投票数决策出合适的功耗模式,调用抽象接口,控制芯片进入低功耗状态,从而降低系统功耗。原创 2024-08-16 08:58:11 · 899 阅读 · 0 评论 -
RTT DEMO学习
同理的,如果内存池是空的,里面没有数据,接收邮件里面的 RT_WAITING_FOREVER 会使得nrf24l01_thread 线程阻塞,并挂起,然后 MCU 就会去干别的事情去了,在 ds18b20_thread 线程中采集温度,并申请内存块塞数据进去,内存块一旦有数据,就会发邮箱,另外一边一有邮箱收到了,就又开始工作了。我们创建两个线程去工作,onenet_mqtt_init_thread线程用于初始化 MQTT 客户端,onenet_upload_data_thread 线程去上传数据给云。原创 2024-08-11 10:58:18 · 1230 阅读 · 0 评论 -
嵌入式面试总结
new 、delete是C++中的操作符,而malloc、free是标准库函数。new、delete是类型安全的,new知道要分配对象的类型并调用构造函数,malloc只知道字节大小,不调用构造函数。new调用构造函数,delete调用析构函数。malloc、free不调用析构函数。new返回指定类型的指针,malloc返回void*,需要强制类型转换。new可以初始化对象,malloc不会初始化分配的内存。new在分配失败时抛出异常,malloc在分配失败时返回NULL。原创 2024-07-15 14:08:39 · 802 阅读 · 0 评论 -
嵌入式面试准备
malloc()从堆里面获得空间,也就是说函数返回的指针是指向堆里面的一块内存,操作系统中有一个记录空闲内存地址的链表,当操作系统收到程序的申请时,就会遍历该链表,寻找第一个空间大于所申请空间的堆节点,然后将该节点从空闲节点链表中删除,并将该结点的空间分配给程序。依次从小到大取每个序列中的元素比较,较小的一个放进新序列,取完一个有序序列中的所有元素后,再把剩下一个序列中的元素放进新序列的后面的即可。最坏情况下,每次选择的基准总是数组中的最小或最大元素时,快速排序退化为链表,高度为n,每层需要进行n次比较。原创 2024-07-13 10:46:45 · 654 阅读 · 0 评论 -
操作系统——内存管理(面试准备)
我们来看这样一个例子。每个进程都有4GB的虚拟地址空间,而对于大多数程序来说,其使用到的空间远未达到4GB,因为会存在部分对应的页表项都是空的,根本没有分配,对于已分配的页表项,如果存在最近一定时间未访问的页表,在物理内存紧张情况下,操作系统会将页面换出到硬盘,也就是说不会占用物理内存。我们利用这一特性,把最常访问的几个页表项存储到访问速度更快的硬件,于是计算机科学家们,就在CPU芯片中,加入了一个专门存放程序最常访问的页表项的Cache,这个Cache就是TLB,通常称为页表缓存,转址旁路缓存、快表等。原创 2024-07-11 09:53:26 · 1372 阅读 · 0 评论 -
嵌入式实时操作系统的设计与开发学习(一)
TCB里的stack成员隐含了线程的执行代码信息,因为当任务切换时,stack将保存被切换线程的PC指针,PC是指向线程的当前执行代码的。next_id:下一资源的ID,它是一个空闲链表指针,指向下一个空闲资源的编号,属于资源ID的一部分。当某个资源空闲时,id的高16位表示该资源在资源池的编号,分配后表示该资源的ID。线程控制块是一种资源,id表示该线程的资源ID。aCoral线程状态切换图。原创 2022-10-15 06:21:41 · 443 阅读 · 0 评论