查看: 205|回复: 0

想要理清ARM开发思路,这四点必须知道 [复制链接]

技术小白 (离线)
积分
496
帖子
58
发表于 7 天前 |显示全部楼层
关键词: 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网络堆栈。


以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想学习的你和我联系预约就可以免费听课了。
宋工企鹅号:3524-6590-88   Tel/WX:173--1795--1908
微信图片_20170506093918.jpg


您需要登录后才可以发表评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
回顶部