博文
对嵌入式开发工程师的建议(2008-10-28 10:13:00)
建模技术在嵌入式系统需求捕获、系统分析、设计、实现和验证领域的更加广泛应用,是在嵌入式系统开发工具领域,技术发展的最新趋势。我们认为,主要的原因在于:
1. 嵌入式系统需要实现的功能越来越复杂,提高问题理解的抽象层次,并保持各个层次之间严格的追踪关系,是解决复杂问题分析设计的根本方法。
2. 现在的开发团队和产品设计方式,需要应对一个快速变化的环境。这种变化既来源于用户需求的变化,又来自于底层软硬件实现技术快速的变化。分析和设计方式要具有对变化目标的高适应性,各个模型抽象层次功能的封装和复用是根本。
3. 从系统的角度,帮助嵌入式系统开发的用户实现软硬件协同分析和设计,实现模型级别的早期验证。
嵌入式Linux开发工具发真迅猛(2008-10-21 17:50:00)
嵌入式Linux具有稳定、可伸缩及开放源代码等特点,可兼容多种处理器和主机,广泛适用于各种产品和应用。但是,交叉编译、设备驱动程序开发/调试,以及更小尺寸等要求对嵌入式Linux开发者来说都是严峻的挑战。为应对这些挑战,针对嵌入式Linux开发的专用工具应运而生,而且发展十分迅猛。
本文关键词:嵌入式开发 嵌入式系统 嵌入式Linux开发工具
Linux是少数既可以在嵌入式设备上运行也可作为开发环境的操作系统之一。这一特性可让开发者在转向此开发系统之前于常用硬件(比如X86桌面系统)之上开发、调试和测试应用程序和库,因此可减少对标准参考平台和指令集仿真器的依赖。这一技术仅适用于应用程序和库,但不适用于设备驱动程序,因为后者的开发依赖于Linux架构。
Linux的快速发展及其桌面方案的不断涌现提出了一个重要问题:所选择的工具方案怎样在不同的Linux分布式系统上运行?它们依赖于主机平台的软件配置吗?
有些Linux工具提供独立于主机平台的开发环境,包括一系列可支持开发工具的应用软件、库和实用程序。这一方法几乎将开发环境与主机配置完全隔离开来,因此主机可以是任何Linux分布式系统,而且任何更新和修改都不会影响开发环境的功能。
这种方法的主要缺点是对存储空间的要求有所增加——约200MB,因为它自己实际上相当于一个微型Linux分布式系统。
可用的工具
一个嵌入式Linux产品的开发需要几个阶段,包括为目标板配置和构建基本Linux OS;调试应用程序、库、内核及设备驱动程序/内核模块;出货前最终方案的优化、测试和验证。
有数百种开放源代码开发工具可供选择。只要开发者原意花时间和精力去调研、实施和维护一系列各不相同的工具,总能找出一个完整的解决方案,完成几乎任何开发任务。HSPACE=12 ALT="图1:开发者必须精确地考虑到这些工具的松散集合能提供什么样的功能,以及需要付出多大的努力才能形成完整的解决方案。">
在Linux应用程序和库的调试方面,GNU Debugger(GDB)作为一种标准已有几年的历史。它是一种命令行程序,由多个不同的图形用户界面前端予以支持,每个前端都能以多种方式提供调试控制功能。尽管GDB不是一个完美的方案,但它足够应对各种调试任务,而且已经得到开放源代码团体的广泛支持。
Linux内核或设备驱动程序的调试要比应用程序的调试繁琐得多。
在做调研时,以下方面应特别注意:
什么调试方法支持要开发产品的硬件?
需要什么内核补丁程序?
还需要其它什么补丁程序?
调试界面怎么样,如何使用?
该工具需要调试内核模块及处理虚拟地址转换吗?
还需要其它什么工具才能提供完整的方案?
经过进一步的调查,开发者往往发现工具A和工具B并没有提供完全一致的功能,因为它们是在彼此独立的情况下开发的。结果,开发者必须精确地考虑到这些工具的松散集合能提供什么样的功能,还需要付出多大的努力才能形成完整的解决方案。
如果不同处理器类型间的集成、可用性、互操作性和移植性很关键的话,开发者应考虑购买商用开发工具。这主要是因为将开发一个“免费”方案所付出的努力考虑进去,商用开发工具并不算贵。
Linux BSP
Linux系统有两大主要部分:带设备驱动程序的Linux内核;以及根文件系统,包括系统所需的全部支持应用程序、服务和库。
除了驻留在目标板上的OS组件外,还需要创建一个由GNU Compiler Collection构成的交叉编译环境,为库和二进制程序(binutils)提供支持。
虽然几乎每一个组件都可在网上找到,但在硬件或设备驱动程序支持、集成测试信息、交叉编译指南或软件兼容性方面却很难收集到太多信息。尽管开发者可从网上免费下载各种组件以配置嵌入式Linux操作系统,但每个组件在版本、支持、稳定性和测试等方面的状态则需要开发者自己决定。然后,开发者还要完成最后的OS集成和测试,以及为所开发产品提供终身Linux OS维护。
另一方面,嵌入式Linux供应商所提供的商用Linux板支持工具包一般都是经过预先安装和测试的,而且提供支持和维护。其它须考虑的因素包括Linux桌面主机将会添加不同的库和内核功能,以及由于组织内的开发者变动而引起的长期维护问题。
品质保证部门一般会执行一系列严格的验证和性能测试,其中包括存储器泄漏检测/纠正、代码优化和任务跟踪等。那些想利用开放源代码工具开发面向非X86平台的嵌入式Linux产品开发者将会发现这一任务甚至要比选择开放源代码调试方案难得多。Linux Trace Toolkit、Valgrind工具及其它存储器分析程序可完成部分测试和验证任务。但总的来说,它们缺乏关键特性、集成功能及广泛的硬件支持。这些开放源代码分析工具的评估过程与评估调试方案的过程基本相同。
技术支持:0755-25327151和0755-83690619
新型WJ89C52V1.1单片机开发板(2008-10-13 12:13:00)
[性能特点]
1. USB和外接电源两种供电方式
2. 单片机所有引脚可以用跳线断开,可以方便自己外接其它电路
3. 板子自带3V电池,可以给时钟芯片供电,确保时间不会停止
4. 波峰焊工艺生产,质量保证,性能更稳定
5. 主板四角配有铜柱作为底座,使用更安全,更放心
6. 提供丰富的实验例程,全部在本主板上调试通过
7. 采用了零插拔力的缩紧插座,方便连接要烧写程序的51单片机
[系统资源]
WJ
1. 8路LED:可以显示P0口的状态,比如正反流水灯,交通指示等等
2. 8位LED数码管:可以实验各种计数器、数字显示、以及用单片机做电子钟
3. 1个蜂鸣器:适合做各类发声程序的实验
4. 4*4矩阵键盘:可以作为程序的功能按钮或数据输入,比如调节时钟等
5. 16*2字符型液晶接口:连接字符液晶显示你要的数字字母信息
6. 128*64图形液晶接口:连接128*64图形液晶显示图形和汉字等
7. DS1302实时时钟芯片:可以做功能强大的时钟
8. DS18B20单总线数字温度传感器:可以用单片机控制它来测量温度
9. AT
10. AT
11. RS232串口通讯接口:可以和PC机进行串行通讯
12. PS2接口:可以连接PC键盘鼠标,实现数据输入
13. CH451数码管键盘驱动芯片:用它驱动数码管可以节省CPU的时间,而且实现功能强调的显示效果
14. ATISP编程接口:用ISP下载线和PC机并口连接,可以实现对AT89S系列单片机编程
15. 红外线接收头:可以接收遥控发出的红外线命令
16. IO口扩展:所有单片机引脚都引出并口断开外围电路,方便客户连接自己的电路
[配套资料]
1. 完整的原理图(pdf格式),快速掌握单片机系统的组成
2. 用户手册:非常详细,让你快速踏入单片机开发应用之门
3. 芯片手册:开发板上全部芯片的芯片资料
4. 单片机视频教程:方便你快速学习单片机
5. 送最新版51单片机开发环境Keil uv3入门教程
6. 送其它单片机相关学习资料
[配套软件]
1. 最新破解版Keil uVision3 V
2. STC-ISP-v3.91 STC单片机烧写软件
3. 串口调试器
4. 字模提取V2.2
5. 51波特率计算软件
6. 51定时器初值设定软件
[实验代码]--代码为C语言编写
1. LED流水灯实验
2. 定时器中断实验
3. 蜂鸣器报警实验
4. CH451数码管显示实验
5. 4*4矩阵键盘扫描实验
6. 交通灯实验
7. AT
8. AT
9. RS232单片机串口通信实验
10. DS18B20温度测量实验
11. DS1302实时时钟实验
12. 红外线遥控解码实验
13. PS/2键盘扫描实验
14. 1602字符液晶显示实验
15. 12864图形液晶显示实验
[标准配置]
1. WJ89C52开发板主板一块
2. 1602字符液晶一块
3. 串口通信电缆一根
4. USB电源线一根
5. STC
6. 配套光盘一张
购买联系:13148818895 0755-83690800/075583662100 余焕丽
ARM9处理器的LDM8086T嵌入式平板电脑(2008-9-27 10:17:00)
LDM8086T嵌入式平板电脑采用低功耗的32位ARM9处理器,8英寸TFT液晶显示屏(分辨率800×600)及触摸屏,引出丰富接口,预装WinCE5.0/4.2系统,具备电磁屏蔽金属机壳。产品特点是:性能好、功耗低、成本低、方便整合安装、方便二次开发
LDM8086T 嵌入式平板电脑是立宇泰电子自主研发设计的一款嵌入式 8"(800×600分辨率)触摸液晶显示人机界面产品,特别适合监控操作终端、数据采集终端、查询终端等应用。该产品采用低功耗的32位ARM处理器,主频400MHZ,内置硬件看门狗、支持触摸屏,具有电磁屏蔽性良好、方便嵌入式安装的金属外壳,能够在严苛的环境下长期稳定工作。LDM8086T 预装了微软嵌入式实时多任务操作系统 WinCE4.2/WINCE5.0操作系统(中文版),用户快速加入自己的应用程序和 logo 后即可成为专业应用产品。
该产品的特点是性能稳定、功耗低无风扇、良好的售后和二次开发技术支持。
产品特色:
· 采用低功耗嵌入式微 32 位处理器;
· 接口丰富(网口、USB、RS232 等接口);
· 内置硬件看门狗;
· 采用嵌入式操作系统(WinCE4.2.NET/WinCE5.0);
· 已经定制好产品上所有接口的驱动;
· 提供 SDK,方便用户进行二次开发;
· 提供丰富的应用开发实例程序 demo,源码方式提供;
· 具有屏蔽性好美观坚固的金属外壳;
· 界面美观、性能稳定、功耗低、易于安装;
· 提供注册表修改说明,支持注册表掉电保存、RTC 掉电保存,支持注册表中修改 MAC 地址等。
购买联系:余焕丽0755-25327151和0755-83690619 QQ:731130060
三星S3C44B0开发板入门之开发环境(2008-9-23 15:19:00)
三星的 S3C44B0X处理器,为手持设备等提供一个低成本高性能的解决方案。S
S
如果你的产品需要接入网络,三星S
存储器接口
一.Boot ROM设计
当系统复位时,S
ARM开发板_s
实验说明
实验目的:
熟悉ARM 芯片I/O 端口程序设定方法。
实验设备:
1) 硬件需要S
2) 软件需要ADS1.2 整合开发环境,Windows 2000/NT/XP。
实验内容:
ARM 芯片的I/O 端口通常都是和其它引脚复用的,要熟悉ARM 芯片I/O 端口的程序设定方法,熟悉S
5.2.2 . 实验原理
S
每组端口都可以通过软件设定寄存器来满足不同系统和设计的需要。在执行主程序之前, 必须先对每一个用到的引脚的功能进行设定, 如果某些引脚的复用功能没有使用, 可以先将该引脚设定为I/O端口。S
端口设定寄存器(PCONA-G)
在S
端口数据寄存器(PDATA-G)
如果端口定义为输出端口,则输出资料可以写入PDATn 中相应的位;如果端口定义为输入端口,则输入的数据可以从PDATn 相应的位中读入。
端口上拉寄存器(PUPC-G)
通过设定端口上拉寄存器可以使该组端口和上拉电阻连接或断开。当寄存器中相应的位设定0 时, 该引脚接上拉电阻; 当寄存器中相应的位设定1 时,该引脚不接上拉电阻。
外部中断控制寄存器(EXTINT)
通过不同的信号方式可以使8 个外部中断被请求,EXTINT 寄存器可以根据外部中断的需要将中断触发信号设定为低电位触发、高电位触发、下降沿触发、上升沿触发和上下沿触发几种方式。
I/O端口控制寄存器
|
寄存器 |
地址 |
R/W |
描述 |
复位值 |
|
PCONA |
0x01D20000 |
R/W |
端口A的引脚配置 |
0x3ff |
|
PDATA |
0x01D20004 |
R/W |
端口A的数据寄存器 |
Undef |
|
PCONA |
Bit |
Description | |
|
PA9 |
[9] |
0 = Output |
1 = ADDR24 |
|
PA8 |
[8] |
0 = Output |
1 = ADDR23 |
|
PA7 |
[7] |
0 = Output |
1 = ADDR22 |
|
PA6 |
[6] |
0 = Output |
1 = ADDR21 |
|
PA5 |
[5] |
0 = Output |
1 = ADDR20 |
|
PA4 |
[4] |
0 = Output |
1 = ADDR19 |
|
PA3 |
[3] |
0 = Output |
1 = ADDR18 |
|
PA2 |
[2] |
0 = Output |
1 = ADDR17 |
|
PA1 |
[1] |
0 = Output |
1 = ADDR16 |
|
PA0 |
[0] |
0 = Output |
1 = ADDR0 |
|
PDATA |
Bit |
描述 |
|
PA[9:0] |
[9:0] |
当端口配置为输出时,对应脚的状态和该位的值相同,当端口配置为功能引脚时,如果读该位的值,将是一个不确定的值。 |
Arm7和arm9的不同之处(2008-9-6 10:06:00)
ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构;
ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。
ARM7没有MMU,ARM720T是MMU的 ,ARM9主要包括ARM9TDMI和ARM9E-S等系列ARM9是有MMU的,ARM940T只有Memory protection unit.不是一个完整的MMU。
ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线, ARM7处理器采用3级流水线,而ARM9采用5级流水线, 5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。指令周期的改进,
指令周期的改进:
2.1 loads 指令矛n stores指令
指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间减少了30%。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。
(1)ARM9有独立的指令和数据存储器接口,允许处理器同时进行取指和读写数据。这叫作改进型哈佛结构。而ARM7只有数据存储器接口,它同时用来取指令和数据访问。
(2)5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器。
以上两点实现了一个周期完成loads指令和stores指令。
2.2 互锁(interlocks)技术
当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少管道互锁的数量。
2.3 分枝指令
ARM9和ARM7的分枝指令周期是相同的。而且ARM9TDMI和ARM9E-S并没有对分枝指令进行预测处理。
ARM9结构及特点
以ARM9E-S为例介绍ARM9处理器的主要结构及其特点。
(1)32bit定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-time)调试;
(2)片内指令和数据SRAM,而且指令和数据的存储器容量可调;
(3)片内指令和数据高速缓冲器(cache)容量从4K字节到
(4)设置保护单元(protcction unit),非常适合嵌入式应用中对存储器进行分段和保护;
(5)采用AMBA AHB总线接口,为外设提供统一的地址和数据总线;
(6)支持外部协处理器,指令和数据总线有简单的握手信令支持;
(7)支持标准基本逻辑单元扫描测试方法学,而且支持BIST(built-in-self-test);
(8)支持嵌入式跟踪宏单元,支持实时跟踪指令和数据
arm9概况--龙人嵌入式开发事业部(2008-8-29 9:52:00)
新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。
关键词:arm9 arm9处理器 嵌入式处理器 arm7
1 时钟频率的提高
ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。
2 指令周期的改进
指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。
2.1 loads 指令矛n stores指令
指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间减少了30%。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。
(1)ARM9有独立的指令和数据存储器接口,允许处理器同时进行取指和读写数据。这叫作改进型哈佛结构。而ARM7只有数据存储器接口,它同时用来取指令和数据访问。
(2)5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器。
以上两点实现了一个周期完成loads指令和stores指令。
2.2 互锁(interlocks)技术
当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少管道互锁的数量。
2.3 分枝指令
ARM9和ARM7的分枝指令周期是相同的。而且ARM9TDMI和ARM9E-S并没有对分枝指令进行预测处理。
3 ARM9结构及特点
以ARM9E-S为例介绍ARM9处理器的主要结构及其特点。ARM9E-S的结构如图4所示。其主要特点如下:
(1)32bit定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-time)调试;
(2)片内指令和数据SRAM,而且指令和数据的存储器容量可调;
(3)片内指令和数据高速缓冲器(cache)容量从4K字节到
(4)设置保护单元(protcction unit),非常适合嵌入式应用中对存储器进行分段和保护;
(5)采用AMBA AHB总线接口,为外设提供统一的地址和数据总线;
(6)支持外部协处理器,指令和数据总线有简单的握手信令支持;
(7)支持标准基本逻辑单元扫描测试方法学,而且支持BIST(built-in-self-test);
(8)支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。
4 ARM9的典型应用
TI公司的OMAP730是最新的无线通信基带信号处理器。该处理器是TI的GPRS Class 12通信模块与专用于应用处理的ARM926通用处理器(GPP)的集成。由于GPP的速度可达200MHz,因此OMAP730具有两倍于上一代OMAP710处理器的应用处理性能。如同所有的OMAP处理器一样,OMAP730可支持领先的移动操作系统,其中包括Microsoft的智能电话与Pocket PC PhoneEdition、Svmbian OS与Series 60、Palm OS以及Linux。
嵌入式大容量数据储存解决方案(2008-8-27 10:03:00)
北京龙人高科技术有限公司作为专业的嵌入式应用开发商和方案提供商,针对行业用户的不同需求,提供高性价比的系统设计,帮助用户实现最优的嵌入式大容量数据储存解决方案。
嵌入式处理器 嵌入式解决方案 嵌入式系统 嵌入式开发
应用场合
嵌入式大容量数据存储解决方案可用于如下应用场合:
* 需要大容量本地数据存储的数据采集与监控系统;
* 各种车载、舰载、机载大容量数据记录仪,如“黑匣子”等;
* 公共安全、公共交通等信息查询系统;
方案介绍
目前,大容量嵌入式数据存储的实现方式有如下几种:
第一种方式为“硬盘存储方案”,即将PC机系统的硬盘挂接到嵌入式系统中,以实现大容量的数据存储,如常见的硬盘录像机、硬盘监控系统等,但这种方式具有功耗高、体积大、易损坏等局限性,其应用场合受到很大限制。
第二种方式为“存储卡方案”,即在嵌入式系统中采用SD卡、MMC卡、U盘等存储介质,实现大容量的数据存储,该方式在系统功耗、体积等方面优于前一种方式,但由于这些存储介质均采用插座方式接入系统,因此,系统的可靠性较低,特别是在使用环境比较恶劣的场合。
随着嵌入式大容量数据存储应用需求的逐步提高,这两种方式已经越来越不能满足用户的需要,特别是随着高性能嵌入式微处理器价格逐渐降低和芯片级存储介质的存储密度越来越大,可以采用一种全新的方式来实现高性能的嵌入式大容量数据储存。
系统构成及基本工作原理
随着高性能嵌入式微处理器价格的逐渐降低以及芯片级存储介质的存储密度的提高,采用以高性能嵌入式微处理器为系统核心,结合大容量存储芯片,实现高性能、低功耗、低成本、小体积的嵌入式大容量数据存储,具有无可比拟的优势。
在该系统中,高性能嵌入式微处理器和大容量存储芯片为系统核心,随着半导体技术的不断发展,目前已经很容易在单芯片上实现几GB~几十GB的数据存储,采用多片并联的方式,可以实现大容量的存储系统。
为实现系统高可靠性、高效率的工作,必须采用高性能嵌入式微处理器作为系统的管理核心,通过与高效的嵌入式操作系统相结合,实现数据的可靠存储。
系统同时提供多种通信手段,方便实现数据的远程传输,便于用户对数据进行进一步的处理。
优势与技术突破
与传统的嵌入式数据存储系统相比较,该方案采用基于ARM架构的高性能32位嵌入式微处理器,结合大容量的芯片级存储介质,运行嵌入式操作系统,可以实现高性能、高可靠性的大容量数据存储。
嵌入式操作系统在系统中具有至关重要的作用,依托高性能嵌入式操作系统的强大功能,该方案实现了各种常用文件系统的支持,便于数据的迁移,同时,嵌入式操作系统还实现了存储介质的自动管理、自动纠错、疲劳算法等,保证了存储数据的高可靠
技术支持:http://www.embedm.com 手机:13148818895 小灵通:21192100余焕丽
5本超实惠嵌入式系统开发实验教程(2008-8-27 10:03:00)
产品名称: 嵌入式系统开发与应用实验教程
产品简介:
本书以 ARM实验教学系统为硬件开发平台,建立了以ARM为核心的、完整的嵌入式系统教学与培训实验体系。实验内容包括: 嵌入式软件开发基础实验、基本接口实验、人机接口实验、通信与音频接口实验、嵌入式操作系统μC/OSII的移植及应用开发实验,共22个实验,为嵌入式系统的学习者提供了丰富的实验例程,形成
产品名称: 嵌入式系统开发与应用
产品简介:
本书以嵌入式系统的基本开发技术为主线,以ARM处理器核及国内应用广泛的Samsung公司的S
产品名称: ARM7嵌入式开发实验与实践
产品简介:
以ARM7核的 EDUKITII/III多核实验教学系统为硬件开发平台,以ARM7中广泛使用的外围基本接口功能开发为例,并以μC/OSII和μClinux嵌入式操作系统为软件开发平台,设计开发了31个实验,内容包括:基于ARM的嵌入式软件开发基础实验、基本接口实验、人机接口实验、通信与音频接口实验、μC/OSII基础实验和μClinux基础实验。
产品名称: ARM9嵌入式开发实验与实践
产品简介:
以ARM9核的 EDUKITII/III多核实验教学系统为硬件开发平台,以ARM9中广泛使用的外围基本接口功能开发为例,并分别以嵌入式Linux和WinCE嵌入式操作系统为软件开发平台,设计开发了46个实验,内容包括:基于ARM的嵌入式软件开发基础实验、基本接口实验、人机接口实验、通信与音频接口实验、嵌入式Linux和WinCE基础实验
产品名称: ARM与嵌入式技术
产品简介:
本书包括了当前硬件、软件方面的两个流行趋势,一个是32 位微控制器ARM,一个是嵌入式操作系统Linux。Linux 提供了强大的操作系统功能和丰富的应用软件。开发者和学习者可以从Internet 上下载 Linux 源代码和许多 Linux 的应用程序,并根据需要对源代码进行修改,减少程序的编写和调试负担。
阅读全文(1175) | 评论:0 | 复制链接
我学习嵌入式ARM编程的总结和心得(2008-8-21 11:42:00)
Tag:嵌入式开发 arm开发 arm开发板 嵌入式系统 arm9开发板
前言
这个文档是我学习ARM编程的总结和心得。阅读这个文档的人应当首先阅读ADS1.2的帮助文档及相关内容。这个文档不会对编译器及连接器做出具体的说明,在需要的时候会指出具体内容在相关资料的章节。同时阅读这个文档的人需要了解ARM指令集和一些ARM汇编的基本内容以及C和C 的相关编程内容。同时还需要了解ARM的流水线结构及一些基本的编程知识。同时为了方便查阅英文文档,所有的相关术语都使用英文原文 字串4
第一章 STARTUP
1 ARM的启动
一般的嵌入式系统在主程序执行之前都需要执行一些初始化的过程以创造嵌入式程序运行的环境,尤其是一些高级的嵌入式系统,由于核心芯片使用内存映射、内存保护等机制以及编程使用高级语言C,C 甚至JAVA语言,都需要先创建一个适合程序运行的硬件环境,然后初始化或者配置或者剪裁run-time library, 这些工作都必须在主程序运行前完成,所以一个startup程序或者程序组对于一个嵌入式系统来说是非常重要的。要编写startup程序,需要对编译器、链接器和汇编器的细节有一定的了解,同时对ARM芯片硬件本身的地址分配以及memory mapping机制也需要有一些了解。
2 .ARM 程序的工作过程
首先由各种source file经过编译产生object文件,然后object文件经过链接生成Image文件,然后通过ICE的方法,根据描述文件的指定下载到目标板上的固态存储器指定地址当中,比如flash,EEPROM, ROM等等。在程序执行之前,根据某些描述文件,将需要读写数据的部分读出放入动态存储器比如RAM当中,然后程序从ROM开始执行。或者有时为了提高程序的运行速度,也可以将所有的程序(有一些root的部分除外,以后会提及)通过一个描述文件放入指定的RAM当中,然后程序从RAM开始执行,但是这样会耗费大量的动态存储器,所以大部分程序会取折中的方法,将需要快速运行的部分和要读写的部分放入RAM中(一般读固态存储器的过程和动态存储器的过程是一样的,但是写就不同了,所以读写的部分一定要放到RAM中),而只读的部分和对速度要求不是那么高的部分放入固态存储器。同时ARM结构的异常向量表规定放在地址为0x00000000开始的地址空间上,而一般的CPU为了提高异常相应速度,会将这个向量段remap到其他的RAM当中,所以在描述文件当中必须精确指定异常向量跳转程序的地址到remap的地方。在application程序执行前,还需要由一些文件描述application程序执行的环境。比如系统工作时钟,总线频率。现在一般嵌入式编程语言为C,C 等。假如在使用它们的时候使用的runtime-library,那么在程序执行前还需要为这些库函数初始化heap。然后ARM可能工作在不同的模式,还需要为不同的工作模式设置stack。这样,描述链接地址的文件,以及在application运行前所有的初始化程序就是startup程序组
3. STARTUP分类
这样,将startup程序所完成的功能分类。一类是链接地址描述,一类是各种初始化的程序。根据不同的应用,描述文件和初始化程序的内容以及结构和复杂程度都会不同。但是基本上,它们都必须实现以下功能。
3.1 描述文件实现功能
描述文件可以是链接命令行上简单的几个字符,也可以是一个非常复杂的文件,但是它必须完成如下功能:
; 指定程序下载的地址
; 指定程序执行的地址
3.2 初始化程序实现的功能
初始化程序根据不同的应用,其结构和复杂度也不同,但是它必须完成如下基本功能:
; 异常向量初始化
; 其他硬件环境初始化
; 内存环境初始化
好了,基于时间关系我今天先写到这里,之后我会经常上网写一些关于arm开发 嵌入式系统开发 arm开发板 arm9开发板 2440开发板方面的文章,希望大家能够关注。
联系电话:0755-83662100 手机:13148818895余焕丽
阅读全文(1182) | 评论:0 | 复制链接


最新评论