首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

uCOSII操作系统移植笔记

笔记一: 今天粗略的看了一下周立功关于uc/osII在lpc2104上的移植方面的说明,这之中印象最深的应该是irq中断和软中断方面的处理,由于arm芯片的特殊性(拥有7种处理器模式),即每种处理器模式都有自己的堆栈,这样在处理堆栈的时候就会相应的麻烦一些。 在 响应异常时,该移植计划在初始代码里面比在没有操作系统的初始代码多了irq的处理,移植里面的irq处理多了由汇编语言编写的对任务环境的保存,没操作 系统的中的任务环境的保存都是由在产生irq中断是用c语言声明的__irq关键字来完成了,移植中irq中断不能采用__irq关键字,因为c语言不能 保证堆栈结构,而uc/osII必须要保证堆栈结构。除此之外,相对于没操作系统的初始代码,基本上是没有什么改变。 在uc/osII的任务切换 中,采用了arm里面的软中断指令swi来执行,对于非中断性的任务切换(如挂起和等待信号量的时候)uc/osII是采用了宏os_task_sw() 来执行的,然后联系到osctxsw()函数来完成任务切换,而遇到中断情况时在返回是需要任务切换是则采用了osintctxsw()来执行的,在周立 功的移植当中,他把osctxsw()与osintctxsw()合二为一了,统一采用osintctxsw()来实现。之所以这样搞的原因是任务进行切 换的时候,都必须进入软中断的状态,而对于软中断的异常响应代码已经将任务的环境变量进行了保存,从而也不需要像osctxsw()里面规定的那样对将环 境变量进行保存。 这是我看今天看了移植说明后所理解的东西,当然还得细致的对代码进行分析,特别是osintctxsw()代码的分析,虽然移植的代码大体是遵从了uc/osII的编码规范,但对于arm的多种处理器模式移植代码有特别的改变,以实现cpu时间和ram的利用。

04
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    各路大牛的C语言编程建议和技巧,看完感触颇深

    我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以来这些基于许多经验的观点一直积累在我的头脑中。因此希望这些观点能帮助你们,了解如何规划一个程序的细节。(我还没有看到过一篇讲关于如何规划整个事情的好文章,不过这部分可以是课程的一部分)要是能发现它们的特质,那很好;要是不认同的话,那也很好。但如果能启发你们思考为什么不认同,那样就更好了。在任何情况下,都不应该照搬我所说的方式进行编程;要用你认为最好的编程方式来尝试完成程序。请一以贯之而且毫不留情的这么做。

    02

    2023秋招大厂-嵌入式开发经典笔试面试题目大整理

    1、什么是进程,线程,有什么区别 2、多进程、多线程的优缺点 3、什么时候用进程,什么时候用线程 4、多进程、多线程同步(通讯)的方法 5、进程线程的状态转换图 。什么时候阻塞,什么时候就绪 6、父进程、子进程的关系以及区别 7、什么是进程上下文、中断上下文 8、一个进程可以创建多少线程,和什么有关 9、进程间通讯: (1)管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket 注意:临界区则是一种概念,指的是访问公共资源的程序片段,并不是一种通信方式。 10、线程通讯(锁): (1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁

    01

    资料分享|基于SHT11的简易温湿度检测仿真

    51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

    03

    sparc处理器浅析

    前几天我看到知乎上的一篇文章《时代的眼泪:繁华落尽的SPARC处理器》,大致上讲述了一下Sun公司的UltraSPARC处理器,那时左批HP,右打IBM,俨然一副高高在上的气势。我觉得关于SPARC如何一步一步从繁荣走向平淡,又是如何在历史长河中发挥出浓墨重彩的一笔,我就不赘述了。这篇文章主要想讲一些sparc体系相关的问题。目前,sparc出现在我们视野中并不多见,其实利用sparc处理器一直是航天上面在使用,由于其特殊的架构以及目前美国对中国的态势,sparc架构在航天、飞机、雷达领域的利用也是越来越重要了。目前北京微电子技术研究所出来几款SPARC V8架构的芯片。其中BM3803是基于SPARC V8体系结构的32位精简指令集的国产嵌入式芯片,其特点是功能强、可靠性高、低功耗等等。下面从系统启动、窗口寄存器、中断处理这三部分看一看sparc v8处理器的特点。

    02

    linux内核学习(四)之回顾简单的汇编知识(一))

    大家周末晚上好,今天给大家分享一些简单的汇编知识;说起汇编,不管是学习或者说工作中,都会或多或少的接触到,比如说学习中,在进入c语言编程世界之前,都会有一段汇编作为引导来进入c的;当然在实际开发当中,现在用汇编来开发的比较少,不是没有;做一为嵌入式软件工程师,我觉得还是非常有必要要掌握一些基本的汇编指令知识的,不要你会写汇编代码,要求自身会分析以.s结尾的文件里面的汇编代码就差不多了,看的懂常规汇编指令就行(这里顺便插一句题外话,我们知道一般ARM都是采用risc架构的,如果有网友对risc-v架构感兴趣的,可以来交流学习),好了,废话就不多说了,开始进入主题啦!

    01

    C语言精通才是真的黑客!

    黑客是一个中文词语,在台湾地区对应的中文词语为骇客,皆源自英文hacker,不同地区的中文使用习惯造成了翻译的差别。实际上,黑客(或骇客)与英文原文Hacker、Cracker等含义不能够达到完全对译,这是中英文语言词汇各自发展中形成的差异。Hacker一词,最初曾指热心于计算机技术、水平高超的电脑专家,尤其是程序设计人员,逐渐区分为白帽(DengKelen)、灰帽、黑帽等,其中黑帽(black hat)实际就是cracker。到了今天,黑客一词已被用于泛指那些专门利用计算机病毒搞破坏的家伙,对这些人的正确英文叫法是Cracker。在媒体报道中,黑客一词常指那些软件骇客(software cracker),而与黑客相对的是红客。当然,也有正义的黑客

    04

    设计分享|基于单片机LCD数字测速仪的设计

    51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

    01
    领券