1.关于内核的寄存器的理解大家有没有想说几句的呢?
我先复制一段话,给大家找个议题:
寄存器组 RS(Register Set或Registers)
RS实质上是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。
寄存器组分为专用寄存器组和通用寄存器组.
通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。通用寄存器的数目因微处理器而异,其用途广泛并可由程序员规定用途。
专用寄存器组的作用是固定的,分别寄存相应的数据。包括状态标志寄存器和指令指针寄存器。
好吧,我先说2句,本来我是不想研究内核的,因为我感觉自己用C编程序平时也用不到内核寄存器和汇编指令的问题,但是最近看ucosII的一些资料,说是让看看M3内核的东西,其中就包括它的寄存器组,再加上总感觉自己对M3内核的寄存器一无所知的话,显得很不高端,永远成不了“大虾”,您说我说的对吗?
引用: sxy4517 发表于 2015-3-6 09:29
好吧,我先说2句,本来我是不想研究内核的,因为我感觉自己用C编程序平时也用不到内核寄存器和汇编指令的问题,但是最近看ucosII的一些资料,说是让看看M3内核的东西,其中就包括它的寄存器组,再加上总感觉自己对M3内核的寄存器一无所知的话,显得很不高端,永远成不了“大虾”,您说我说的对吗?
你说的也不错,如果不懂内核的体系结构的话,那绝对不叫玩M3,而是玩C语言而已。
常见的知识包括指令集,寄存器,异常和中断等,如果学到操作系统级别的话,这些是必须掌握的。
像一些特殊寄存器的功能,中断时哪些寄存器入栈,入栈的顺序是什么都很重要。
其实,这个时代已经不像之前的51时代了,我们对他们的内核指令了如指掌,原因很简单,由于51速度、存储等资源有限,如果你不了解这些,可能有很多应用都受到限制或者得不到满意的结果。
但是,随着技术的发展,如果你每款单片机都去完全了解,恐怕很少有公司会给你这个时间,而且很多时候我们需要选择多种内核的单片机进行开发,再者,现在的单片机不管从速度还是存储等资源上来说,基本都够使用。与其花大量的时间了解内核,不如花大量的时间搞好应用。
现在的很多单片机厂商都退出自己的代码库也是基于这些因素,以后的单片机开发基本就是玩C了,除非一些特殊的场合,例如FAE、操作系统移植、底层驱动开发等,否则真没有必要再去了解内核。
当然,这只是本人的一家之言。
如果你想学习ucos II的移植过程,确实有必要学习一下,如果你想应用ucos,那就没有必要了,网络上,甚至官方网已经为你提供了移植好的代码,任何M3核的代码都是可以通用的。
我是想应用ucosII 去组织我的代码。因为之前用大循环的方式跑程序,感觉自己的程序杂乱无章,实时性差。
现在 RTOS 很多,UCOS 确实提供的例程也很多,你需要的是了解一些关于 RTOS 的知识。