1.    串口也可以有多根线的,但是各线之间没有协调同步发送,而是各自是独自发送的。并口是同步发送,同步一次8位同时成功同时失败,类比事务。

2.    ASCII码的前32位是通讯预留的编码即使现在也用途广泛,但是在高级语言里,因为不直接和二进制打交道往往都是从新定义了一个新的通讯方式,而在单片机领域则是用ascii码方便大家通讯。

3.    单片机有很多的引脚,同样笔记本的主板也有很多的插槽,这点和笔记本的主板是相同的。

4.    ===================51单片机部分=====================

5.    P3还具有第二个功能,用于特殊信号输入输出和控制信号。所以那些键盘输入,红外线信号等的信息应该都是从P3口输入的。

6.    P0是使用最广泛的外部接口可以接外部存储器和外部设备(外部电路)

7.    P1端口是单片机中唯一仅有的单功能I/O端口,并且没有特定的专用功能,成为通用静态口。与之相对P3是有很多的专用功能,需要指定的寄存器去实现功能。

8.    P2是动态地址端口,P1是静态地址端口。

9.    单片机上显示文字都是根据字模来的,同java中总是把内容事先存放在一个数组里,然后根据数组的下标去取值是一样的。

10.  操作系统本身就是一个管理软硬件的程序,因为操作系统是面向硬件的,所以操作系统最多的操作就是二进制,16进制特性的显示,所以在写操作系统和对单片机开发程序的时候都是一样的,都要考虑硬件的结构,硬件原始的信号状态,操作系统操作的状态仍然是二进制的标志数据。但是当面形软件的时候,这些二进制的方式又被包装成了一些新的数据结构,只为了让软件的开发更贴近问题模型而不是更贴近硬件的状态。电脑有操作系统,电脑的各个I/O和CPU在物理上都已经是联通的了,他们的起作用需要软件的支持,如果没有软件的支持就不能统一这些物理连接的线路让他们发挥功能。所以操作系统实现逻辑上的管理,所有的外部设备都是接入到CPU接入到单片机中的,只有接入到单片机中才能受编程逻辑的控制,才能实现通过程序管理所以的IO资源。我们学习单片机就是学习通过编程管理所有的资源,管理资源管理资源,自然存在谁来管理的问题,这个谁就是CPU就是可以在CPU里面放置的程序。高级程序只是突出强调资源直接的逻辑关系,并不关心逻辑的初始值具体是什么,但是程序模拟的时候却是必须关系的,所以操作系统的作用就是把这个具体的关系添加到逻辑关系中。如果说操作系统和单片机编程编写的内容包括逻辑和初始值,那么高级程序就是指关心逻辑了。这就是完成了抽象,不必关系硬件具体是高电平还是低电平了。这种方式使编程脱离了具体值的束缚,可以在空中飞了,但是最终还是要着陆的这就是需要操作系统来让飞机着地了。计算机的发展过程再次证明聪明的人有时候不只是他注意到什么,有时候还是他忽略了什么。

11.  最初的计算机为什么提供操作系统那,就是因为需要经常性的做相似的工作(面形应用了),我们从这些重复的工作中提炼出了接口,抽象出了新的东西,这就是操作系统。

12.  很有兴趣了解操作系统是怎么从硬件抽象的。

13.  多进程是操作系统的功能是软件实现的并不是硬件直接实现的,多进程是通过抢占时间片,阻塞没有抢占到时间片的程序来实现的。进程间通信,进程间的资源抢占的管理规则也是因为操作系统实现上述软件功能导致的,所以也是通过软件来管理和实现的也是操作系统的功能。

14.  内存管理是通过CPU寻址的,单片机的选址范围为【0x00-????】而操作系统也是如此寻址的,但是电脑的寻址设备很多,有高速缓存,外接设备。文件系统就是管理存储器上文件的内容的方式。

15.  单片机对内存的管理是通过电流实现的,为了减少电路的复杂程度,很多地方都是使用了复用技术,操作系统把这些复用技术用编程语言分别表示出来,由系统本身去管理负责的复用关系。开发者只需要根据需要发送命令就可以了不必关注复用的方式。

16.  多线程同步问题是链表结构造成的,多线程的同步也是链表结构造成的。

17.  系统中锁只有能锁住所有线程的锁才有意义,所以锁本身就是全局变量或者全局静态变量。变量要么属于单个实例,要么属于全部实例,而锁就是其中的一类。

18.  硬件可以获得由规律的信息,但是这个信息却不一定能被人类理解,为了根据需要把硬件的规律信息转换为人类可以理解的必须使用编程。人类的理解和硬件的规律是一样的,但是起点不同,所以看到的东西理解的不同。

19.  驱动程序是写给也是写给CPU看的,对于控制硬件而言计算机和单片机没有区别,都是输出的二进制控制位,单片机一般是接到命令后1s就能给硬件发送命令,但是计算机需要3s因为计算机的CPU需要做的事情更多,他需要判断更多的业务逻辑之后才能确定发给硬件的二进制控制位。无论是驱动程序还是struts他们都是用到了分发函数,而分发函数本质上就是switch-case-结构。驱动程序本身也是在写这个switch-case语句。只是switch-case是比较偏向底层,而分发函数更加面向对象面向模块。Windows开发中分发函数随处可见。

20.  单片机开发之所以程序会从main函数开始执行就是因为汇编语言告诉CPU的,同样的在windows的开发中,C语言已经告诉系统所有新开发的程序的入口函数是WinMain。

21.  Windows里经常出现的注册就是在switch-case语句中add一个case情况,方便等下个命令到来时候,提供这个资源。Windows的窗口资源就是调用了界面显示驱动。

22.   

posted on 2013-10-31 17:24  张海玉  阅读(257)  评论(0编辑  收藏  举报