上位机到下位机

来源:互联网 发布:破解版软件 编辑:程序博客网 时间:2024/05/01 20:12
    在大学里,一向没有重视计算机体系结构之类的课程,以为光靠数据结构,编译原理,操作系统,软件工程等几大主课就能解决一切问题。最近因工作需要,接触到单片机编程。才发现硬件知识及其匮乏,一些最基本的概念都不清楚,花了不少的时间才算初步上手。
    基本上,在单片机上用C编程和以前用TC的时候差不多,主流程用一般的结构化编程的思路就能搞定,当把芯片功能封装完成后,剩下的就是纯粹编码任务了。
    单片机的功能实现全靠主CPU和外围芯片,所以编程的基础就是封装其硬件功能。需要的基础知识有:能基本看懂硬件原理图,了解管脚功能,看懂芯片的资料,了解其工作流程,寄存器功能,操作时序图,就能进行功能封装了。在封装的时候要注意一点的是功能的独立性,并且尽量不要用到全局变量。比如说为Flash芯片做读写操作,接口一般情况就可以这样写:flash_read(unsigned char *pBuffer, int read_size, ...(地址相关参数)); flash_write(unsigned char *pBuffer, int write_size, ...(地址相关参数)); 曾经见过不使用指针传递参数,而分配一个全局数组,将读写内容在数组中操作,另外再进行函数调用的做法。一般程序新手不习惯使用指针,而使用其他手段进行数据传递,这会导致程序的简洁性与使用的方便性大幅下降。
    在以前一直是用VC写上位机程序,C++用得比较多,用回C有点不太习惯,刚开始有点思路混乱,还好写的程序规模都很小一般5K行内就能搞定,所以也算比较轻松。不过用仿真器Debug的速度真有点不习惯,走一步要好久。这时才注意到编码的正确性也是非常重要的。
    单片机程序一般是单任务的,但是也是可以使用操作系统,为了实时性的要求,使用的多是ucos,ucLinux之类的RTOS。在移植操作系统的时候,大多要考虑硬件平台架构和一些系统底层的问题,这和上位机应用编程是大不一样的,最近会接触这方面的内容比较多,看来学习的过程不会缺少坎坷的。
原创粉丝点击