理清ARM开发思路的四个必看知识点

【理清ARM开发思路的四个必看知识点】由于涉及编程 , 学习ARM单片机系统对于从事电子电路的设计者来说是有些困难的 , 学习知识不难 , 难的是理清其中的开发思路 , 找到一个好的起点 。本文就将从这一步入手 , 为大家介绍初次接触ARM开发应该从哪几方面来理清开发思路 。
做个最小系统板:如果从没有做过ARM的开发 , 建议一开始不要贪大求全 , 把所有的应用都做好 , 因为ARM的启动方式和dsp或单片机有所不同 , 往往会遇到各种问题 , 所以建议先布一个仅有Flash、SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板 , 留出扩展接口 。使最小系统能够正常运行 , 任务就完成了一半 , 好在ARM的外围接口基本都是标准接口 , 如果已有这些硬件的布线经验那就更好了 。
写启动代码
根据硬件地址先写一个能够启动的小代码 , 包括以下部分:初始化端口、屏蔽中断、把程序拷贝到SRAM中、完成代码的重映射、配置中断句柄 , 连接到C语言入口 。也许一些示例程序当中bootloader会有很多东西 , 但是不要被这些复杂的程序所困扰 , 因为这是设计开发板过程中需要设计 , 并不包含在ARM设计范畴中 。
研究芯片资料
尽管ARM在内核上兼容 , 但每家芯片都有自己的特色 , 编写程序时必须考虑这些问题 。尤其是女孩子 , 在这儿千万别有依赖心理 , 总想拿别人的示例程序修改 , 却越改越乱 。
了解操作系统程序
在ARM的应用开放源代码的程序很多 , 要想提高自己 , 就要多看别人的程序 , linux , uc/os-II等等这些都是很好的原码 。
硬件
如果设计者自己制作硬件 , 每个厂家基本上都有针对该芯片的DEMO板原理图 。如果先将原理图消化 。在以后做设计时就能做到对资源的分配心中有数 。器件的DATSHEET一定要好好消化 。
最小系统板
很多人会问 , 做最小系统板是2层还是4层好?答:只有AT91可以用两层板 , 其他的最少4层;44b0的地和电源处理好也可用两层板;谈四层板和33欧电阻:选用四层板不仅是电源和地的问题 , 高速数字电路对走线的阻抗有要求 , 二层板不好控制阻抗 。33欧电阻一般加在驱动器端 , 也是起阻抗匹配作用的;布线时要先布数据地址线 , 和需要保证的高速线;在高频的时候 , PCB板上的走线都要看成传输线 。
传输线有其特征阻抗 , 学过传输线理论的都知道 , 当传输线上某处出现阻抗突变(不匹配)时 , 信号通过就会发生反射 , 反射对原信号造成干扰 , 严重时就会影响电路的正常工作 。采用四层板时 , 通常外层走信号线 , 中间两层分别为电源和地平面 , 这样一方面隔离了两个信号层 , 更重要的是外层的走线与它们所靠近的平面形成称为“微带”(microstrip)的传输线 , 它的阻抗比较固定 , 而且可以计算 。
对于两层板就比较难以做到这样 。这种传输线阻抗主要于走线的宽度、到参考平面的距离、敷铜的厚度以及介电材料的特性有关 , 有许多现成的公式和程序可供计算 。33欧电阻通常串连放在驱动的一端(其实不一定33欧 , 从几欧到五、六十欧都有 , 视电路具体情况) , 其作用是与发送器的输出阻抗串连后与走线的阻抗匹配 , 使反射回来(假设解收端阻抗没有匹配)的信号不会再次反射回去(吸收掉) , 这样接收端的信号就不会受到影响 。
接收端也可以作匹配 , 例如采用电阻并联 , 但在数字系统比较少用 , 因为比较麻烦 , 而且很多时候是一发多收 , 如地址总线 , 不如源端匹配易做 。这里梭说的高频 , 不一定是时钟频率很高的电路 , 是不是高频不止看频率 , 更重要是看信号的上升下降时间 。通常可以用上升(或下降)时间估计电路的频率 , 一般取上升时间倒数的一半 , 比如如果上升时间是1ns , 那么它的倒数是1000MHz , 也就是说在设计电路是要按500MHz的频带来考虑 。
有时候要故意减慢边缘时间 , 许多高速IC其驱动器的输出斜率是可调的 。Linux自身具备一整套工具链 , 容易自行建立嵌入式系统的开发环境和交叉运行环境 , 并且可以跨越嵌入式系统开发中的仿真工具(ICE)的障碍 。内核的完全开放使人们可以自己设计和开发出真正的硬实时系统 , 软实时系统在Linux中也容易得到实现 。强大的网络支持使得可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈 。Linux提供了完成嵌入功能的基本内核和所需要的所有用户界面 , 它是多面的 。它能处理嵌入式任务和用户界面 。
一个小型的嵌入式Linux系统只需要下面三个基本元素:*引导工具*Linux微内核 , 由内存管理、进程管理和事务处理构成*初始化进程如果要让它能干点什么且继续保持小型化 , 还得加上:*硬件驱动程序*提供所需功能的一个或更多应用程序 。再增加功能 , 或许需要这些:*一个文件系统(也许在ROM或RAM)中*TCP/IP网络堆栈 。
本文从启动代码、芯片资料、操作系统程序、最小系统版这四个方面来为新手进行讲解 , 在针对ARM开发思路时首先需要从这四个方面来进行入手 , 那么在之后的学习过程中就会觉得豁然开朗而不是一头雾水 , 因此建议各位新手花上几分钟来阅读本文 , 相信会有意想不到的收获 。

    推荐阅读