终于结束了晦涩枯燥的第三章,我自己也长吁了一口气,现在我真的是非常同情那些教专业基础课或者工程数学的老师,这里真诚的说一声:“辛苦你们了”。
这一章要轻松不少,相信就算是刚走出校门的雏鸟,多少都有一定的C语言基础,大学好象都要过一个计算机等级考试,所以C语言自然是逃不了。你不要指望我给你讲述C语言原理和指令这类基础知识,我更不会给你讲述C++那些面对对象编程的高级编程方法,这一章讲述的内容都是C语言在单片机上应用会遇到的一些有意思的现象,让你知道C在单片机上是怎么工作的。
当然也会告诉你一些C的经验技巧,这些对提升你的单片机程序能力还是有一定作用的。
4.1. 单片机C语言
早期单片机编程是没有C语言支持的,都是汇编甚至是二进制的机器码,随着电脑技术的突飞猛进,单片机编程不再安于汇编的一亩三分地,也向着C语言的方向进发。理论上讲单片机实现C语言编程不存在丝毫问题,毕竟和电脑是同根生,于是一批专业或非专业、有着利益目的或无利益目的的工程师开始了这方面的努力。
和电脑最大的不同是单片机种类繁多,不象电脑只有那么几种芯片,而且电脑CPU的发展遵循着一定的规则,不同CPU要求做到指令兼容,单片机做这样的要求显然不现实,厂商不可能接受都遵循制定标准设定MCU的要求。虽然单片机种类繁多,但大部分单片机还是会采用通用构架进行设计,毕竟遵循一定标准可以不用厂商自己去完成指令系统、编译工具等繁琐工作,所以市面上流行的单片机内核其实并不多,不少八位的单片机都采用51内核,高端的MCU内核更是集中在ARM/MIPS…这几种当中。
详细内容请点此下载链接下载阅读:
https://static.mianbaoban-assets.eet-china.com/forum-images/EECOL/EEF/IMAGES/SITE/attachments/blog/mcu_training_chap4.pdf
用户1406868 2014-5-27 00:17
allen_zhan_752827529 2014-5-24 17:11
所谓"tristate"很可能对应于 ASB 中的 timing 的定义, 可能是指在某些个本应该在其他bus 协议中确定的捕获用的上升沿, 并不需要 bus 被明确的 assert, bus 可以保持 tristate. 或者这里的 tristate 意指 hi-Z(如果有错请告诉我)? AXI 将 write/read transfer 表现为 channel 的组合模式, 这似乎提供了 outstanding 的并行与 out-order 的可能, 在这种由 channels "任意"组合的假设下, 我们或者可以说 AHB 也是 AXI 的子集了. 我们阅读文档, 似乎 AHB 和 AXI 都是面向 burst 模式的应用. AXI 的channel由于每个 master与slave 的握手机制而十分灵活, channel ID 似乎就是并行与乱序的基础. 而 AHB 表现为 address/data phase 的建立, 似乎就不那么灵活, 并具有 fix pipeline 的特点. AHB Lite 面向的是 single master 的应用. 而在 AHB-Lite 上的多个 master, 比如说 DMA 或其他, 可能要用 multi-layer 的模式来解决. AHB 没有每个channel 的单独握手bus, 因此不可避免地需要 decoder. 但是 APB 的每次 SETUP, ACCESS phase 的建立, 以及没有握手的bus, 以及可以关闭的特性, 都适合一个外围的 peripherals 的应用. 至于 atb, 通过 protocal 的阅读, 似乎具备单独从 source -> target 的单方向 information 的导出,仅仅在 buffer flush 的 request 才例外. 通过简单的阅读掌握的也许就只能如此, 深入的话, arm amba kit 与 amba designer ADR-400 就成为需要了.
用户1039176 2013-9-13 08:50
allen_zhan_752827529 2013-9-12 10:48
用户1610239 2013-9-12 10:09
用户1157254 2013-9-12 09:50
allen_zhan_752827529 2013-9-12 09:35
用户1602177 2013-9-11 16:25
allen_zhan_752827529 2013-9-9 11:20
Thx, Mike. 这里需要补充的是, AHB-Lite 协议中指出, AHB-Lite 支持的是单 master system. 而在 AHB-Lite bus interface 中实现 multi-system, 则需要使用 Multi-layer AHB-Lite. 我们想, 这应是在从完整 AHB 协议中简化出的这个 subset(AHB-Lite) 的最大不同之一.
用户1277994 2013-9-9 11:09