• 删繁就简单片机入门到精通 > 删繁就简-单片机入门到精通
  • 删繁就简-单片机入门到精通

    免费下载 下载该文档 文档格式:PDF   更新时间:2010-05-02   下载次数:1   点击次数:2
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:pdf
    文档作者:微软用户
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    删繁就简-单片机入门到精通
    第四章
    单片机 C 语言
    终于结束了晦涩枯燥的第三章,我自己也长吁了一口气,现在我真的是非常同情那些教专业基 础课或者工程数学的老师,这里真诚的说一声: "辛苦你们了" . 这一章要轻松不少,相信就算是刚走出校门的雏鸟,多少都有一定的 C 语言基础,大学好象都 要过一个计算机等级考试,所以 C 语言自然是逃不了.你不要指望我给你讲述 C 语言原理和指令这 类基础知识,我更不会给你讲述 C++那些面对对象编程的高级编程方法,这一章讲述的内容都是 C 语言在单片机上应用会遇到的一些有意思的现象,让你知道 C 在单片机上是怎么工作的. 当然也会告诉你一些 C 的经验技巧,这些对提升你的单片机程序能力还是有一定作用的.
    4.1. 单片机 C 语言
    早期单片机编程是没有 C 语言支持的,都是汇编甚至是二进制的机器码,随着电脑技术的突飞 猛进,单片机编程不再安于汇编的一亩三分地,也向着 C 语言的方向进发.理论上讲单片机实现 C 语言编程不存在丝毫问题,毕竟和电脑是同根生,于是一批专业或非专业,有着利益目的或无利益 目的的工程师开始了这方面的努力. 和电脑最大的不同是单片机种类繁多,不象电脑只有那么几种芯片,而且电脑 CPU 的发展遵循 着一定的规则,不同 CPU 要求做到指令兼容,单片机做这样的要求显然不现实,厂商不可能接受都 遵循制定标准设定 MCU 的要求.虽然单片机种类繁多,但大部分单片机还是会采用通用构架进行设 计,毕竟遵循一定标准可以不用厂商自己去完成指令系统,编译工具等繁琐工作,所以市面上流行 的单片机内核其实并不多,不少八位的单片机都采用 51 内核,高端的 MCU 内核更是集中在 ARM/MIPS…这几种当中. 厂商设计的 MCU 通常都会沿用某一种构架,也就是厂商产品目录中的 xx 系列,这样做厂商可 以节省开发成本,一套编译器可以为一个甚至多个系列的 MCU 所用,这样新设计 MCU 或编译器有问 题也可以在日后进行改进,如果弄成一种 MCU 就对应一套编译器的方式,神仙也会疯掉.厂商为了 占领更多的市场,自然就会依据市场需求针对 MCU 推出 C 的编译器,不过这种做法所退出的 C 编译 器质量局限于厂商自己技术能力,通常说这类编译器可以用,但不要期望有着很高的效率.如果是 流行面广的内核, 会有另外一种方式, 就是专业的软件公司针对这种内核的指令系统开发 C 编译器, 象 KEIL C 就是一例,这种软件公司在编译方面经验丰富,所以他们做出来的编译器效率方面相当 不错,只要是他们编译器支持的内核,就很容易让编译器支持.软件公司推出的 C 编译器虽然好, 但要钱,有免费的版本可限制多多,技术世界从来不缺少活雷锋,GCC 这样的组织让免费获取 C 编
    MCU EDU 第 134 页 作者:Dai ShangJu
    删繁就简-单片机入门到精通
    译器成为了现实,不过这类组织所支持的对象只能是内核为 ARM/MIPS…的高端通用 MCU. 想要做好单片机的 C 编译器则必须具备这两个条件:一是熟悉 MCU 的硬件资源和指令系统,二 是熟悉 C 语言,两者缺一不可,否则是做不出一个优质高效的单片机 C 编译器的.编译器的工作就 是将用 C 写的代码按一定规则转换成汇编指令,这样程序员面对的是接近自然语言的 C 代码,对程 序的结构控制,含义理解等会容易不少.由于转换操作依赖编译器,虽然一个编译器需要经过大量 测试才会推出,但测试无法涵盖所有的编程可能,这样编译器并不能保证可靠性为百分百,一旦有 错误产生,调试会麻烦许多,毕竟错误不是程序员而是编译器产生的,在 C 语言层面会让错误弄得 一头雾水,当然程序员对 C 和汇编都很熟悉的话还是可以通过查看汇编代码的方式来查找编译器错 误. 同电脑的 C 相比单片机的 C 编程存在自己的特点:电脑用 C 写程序奉行的是硬件无关的原则, 程序员只要了解 C 的语法就可以,就是深入到驱动程序层面也只需要了解驱动程序的接口就够,单 片机则不然,C 只是让程序员面对的代码不再是汇编格式,程序编写依然还是要了解硬件特性,只 是将原本由汇编写的硬件控制代码改成了 C 的语法格式;为了最大程度的利用单片机的各种指令, 单片机的 C 编译器同电脑的 C 编译器相比可能会有多不同,比如对某些 C 语法做出修改,象 KEIL C 对 51 系列的单片机就多出了位变量的定义和操作的语法;单片机结构要比电脑简单,所提供的资 源也要少许多,希望能支持 C 编程也主要是为了让程序结构简单明晰,所以 C 的控制流程语法就已 经够用,并不需要象电脑一样在标准 C 的基础上继续类似 C++各种改进.但也不是绝对,现在各种 嵌入式平台也还是尽力向电脑方向靠拢,这样做我的理解是众人拾柴火焰高,嵌入式已经发展到了 需要许多人合作才能实现的阶段. 单片机用 C 编程便捷性无疑是大为提高,可当用 C 实现对单片机支持后新问题出现,这就是目 前我们国家的现状是做单片机的大多是电子信息类的专业出生,在学习阶段以控制方面的知识为 主,C 只是做为辅助课程出现,更不用说软件工程之类的课程,这样当这部分人由学生转入工作时 容易写出汇编 C 代码,就是语法是 C 而程序风格和思路是汇编,在计算机专业出身的人眼里看为垃 圾代码,如果本身是计算机专业出身去写单片机 C 程序又会面临电子专业基础不足的问题.这一章 我会告诉习惯汇编的单片机程序员一些 C 的经验和技巧,相信通过这章的学习会让你对 C 的单片机 编程有更深的认识.

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • 删繁就简单片机pdf  精通单片机软件方法  删繁就简三秋树  删繁就简的意思  删繁就简  删繁就简造句  删繁就简三秋树全诗  删繁就简三秋树标题  人生删繁就简