描述 |
问题描述 详细描述问题的状况,字数在800以内。 |
Slide 1:
Slide 2:
Slide 3:
Slide 4:
Slide 5:
Slide 6:
Slide 7:
Slide 8:
Slide 9:
Slide 10:
Slide 11:
Slide 12:
Slide 13:
Slide 14:
Slide 15:
Slide 16:
Slide 17:
Slide 18:
Slide 19:
Slide 20:
Slide 21:
Slide 22:
Slide 23:
Slide 24:
Slide 25:
Slide 26:
Slide 27:
Slide 28:
Slide 29:
Slide 30:
Slide 31:
Slide 32:
Slide 33:
Slide 34:
Slide 35:
Slide 36:
Slide 37:
Slide 38:
Slide 39:
Slide 40:
Slide 41:
Slide 42:
Slide 43:
Slide 44:
Slide 1: 锐极ARM9教学实验课程
锐极科技
support@ruijitek.com
www.ruijitek.com
Slide 2: 嵌入式软硬件系统概述
基于ARM9核的主流嵌入式处理器技术
基于LINUX的主流嵌入式操作系统技术
www.ruijitek.com
Slide 3: 32位MCU的常见构架
ARM: ARM7/ARM9/ARM10 ...
POWERPC
COLDFIRE/M68K
MIPS: AMD AU1200
X86 : VIA edan
www.ruijitek.com
Slide 4: ARM体系结构概述
www.ruijitek.com
Slide 5: ARM体系结构概述
ARM-V1/2/3 :已过期
ARM-V4
ARM-V5
• E --提供增强型DSP指令集,
• J --支持JAVA,提供字节代码执行的软硬件优化
例如i.MX21是ARM926EJ-S
www.ruijitek.com
Slide 6: 流水线pipeline
N级流水线:支持N条执行同时执行,大大提高了CPU效率
ARM单周期指令3级流水线操作
【注】PC指向正在取指的指令,而不是正在执行的指令
www.ruijitek.com
Slide 7: 支持两种存储器模式
内存地址
0x30000020
小端 little-endian模式:
--字数据的高位字节存在高地址中
大端 big-endian模式:
--字数据的高位字节存在低地址中
0x30000023
0x44
0x33
0x22
0x11
例如:x = 0x11223344;
内存地址
0x30000020
0x30000023
0x11
0x22
0x33
0x44
www.ruijitek.com
Slide 8: 受益于ARM构架
软硬件资源众多,工具丰富
低功耗
3寄存器指令操作,大大提高指令效率
固定32bit指令长度,结构更为简单。并引入16bit的THUMB指令做
补充,可降低代码尺寸(40%的节省)
www.ruijitek.com
Slide 9: 常见ARM9平台选型
i.MXL/MX21
EP9315
AT91RM9200
www.ruijitek.com
Slide 10: 高性能PowerPC的应用
内置100M以太网接口
–高性能的网络通信能力
100M
以太网口
–以太网通信不占用PCI总线,系统
整体性能优于MPC8245
支持电信设备常用的HDLC接口
PCI插槽可接多种PCI设备
–PCI接口的3层以太网交换机芯片
–PCI接口的南桥芯片
–可用PCI接口的IDE控制卡(ultra
DMA100)扩展多个硬盘接口
PCI接口
支持8M字节 Flash
支持最大256M so-dimm内存条
HHPPC8250-3FEC-PCI-R1
266MHz ,CPM主频:200MHz,总
线频率:66MHz
www.ruijitek.com
Slide 11: 高性能PowerPC的应用
适用于网络路由器、交换机、存储子系统、高端网络设备、印刷/成像设备、网络扫描器
•667MHz(600MHz~1GHz, 1850 MIPS at 800 MHz)
•2个千兆以太网口
•1个10/100M以太网口
•1路光纤接口
•166 MHz,DDR内存最大支持2G
•PCI2.1/2.2,64-bit
•PCI-X 64bit,133MHz
•Rapid I/O, 500 MHz, 8-bit,
•32 KB L1 data and 32 KB L1 instruction cache
•256 KB on-chip L2 cache
www.ruijitek.com
Slide 12: 我们需要一个操作系统来管了
Linux 支持广泛的ARM体系CPU,目前已有数十
种不同厂家的芯片, 支持的板子也超过200多种,
并且越来越多的厂家在ARM上选择使用Linux系
统。
ARM Linux的资源丰富,有很多的系统方案提
供商
可以方便地添加自己的ARM平台
ARM Linux的开发也在不断进行中
http://www.arm.linux.org.uk/
www.ruijitek.com
Slide 13: 选择LINUX-网络时代最明智的选择
• VxWorks
• WinCE
• Embedded Linux
• Others
超强的网络功能:在当今的网络互联的时代尤显重要
开放的资源使之可任意裁减,适应小巧的嵌入式系统
完全的免费
即刻拥有全球数以千万计的共同爱好者及开发者,拥有极其丰富的资源
www.ruijitek.com
Slide 14: 嵌入式LINUX的分类
uClinux
系统更小,但因为C库的变更使得代码移植不够方便。
用户被赋予更多的权限,但责任也更大了。
带MMU CPU上的嵌入式LINUX
armlinux & ppclinux
驱动和应用程序的移植都非常方便,有REDHAT LINUX这个最好的测试
工具,无论PPP拨号还是摄像头、USB无线网卡等驱动移植,都可先
在PC LINUX测试好了直接移植过来。
www.ruijitek.com
Slide 15: ARM Linux 概况
Linux 支持广泛的ARM体系CPU,目前已有数十
种不同厂家的芯片, 支持的板子也超过200多种,
并且越来越多的厂家在ARM上选择使用Linux系
统。
ARM Linux的资源丰富,有很多的系统方案提
供商
可以方便地添加自己的ARM平台
ARM Linux的开发也在不断进行中
http://www.arm.linux.org.uk/
www.ruijitek.com
Slide 16: ARM Linux的发布
ARM Linux 是以patch的方式发布的,
需要在原linux基本内核基础上打patch
举例说明:
bash$ tar zxvf linux-2.4.18.tar.gz
bash$ cd linux-2.4.18
bash$ zcat ../patch-2.4.18-rmk7.gz | patch -p1
bash$ zcat ../diff-2.4.18-rmk7-pxa1.gz | patch -p1
bash$ zcat ../diff-2.4.18-rmk7-pxa1-mz4. gz | patch -p1
www.ruijitek.com
Slide 17: 角色转换的困惑(1)
单片机/X86硬件开发人员…
熟悉的开发模式:使用宿主机-目标机的方式,使用仿真器进行
调试。这种调试方式移植沿用到16位以及32位嵌入式处理器。
单片机设计中对外设接口的设计可持续沿用下来,对CPU板卡的
调试方式方法保持不变。
需要更新的是对32bit MCU的高集成度的理解、硬件需要外扩
FLASH和SDRAM;对汇编依赖程序的降低和软件体系的变化。
www.ruijitek.com
Slide 18: 角色转换的困惑(2)
WINDOWS下VC软件开发人员…
开发模式的变化
C编码技术的继承性:因为C库的兼容性和类似性。LINUX下开
发类似于DOS下TC的编程。WINDOWS下程序员可充分利用C
代码编程的积累,加深对C库的了解,但需要更多的了解一些硬
件的常识。
只是整个系统复杂了,但绝大部分是不需要我们干预和修改的,
就用户的角度而言,所需处理的工作量不变,只是形式变化了。
不过用户被赋予了更多的潜在的权利,你可以利用也可以置之不
理。
www.ruijitek.com
Slide 19: 跨入32位嵌入式系统开发的殿堂
习惯并热爱阅读全英文的CPU manual,永远不要寄希望于中文资料。熟
悉CPU寄存器诸位设置的方式,例如SDRAM的初始化等。
www.ruijitek.com
Slide 20: 跨入32位嵌入式系统开发的殿堂
编译、链接的理解:
开放源代码系统下的软件使用和开发模式都是下载源代码编译安装。必须掌握C代码编译
两个基本参数:
gcc –c –I. –o hello1.o hello1.c
gcc –L. –o hello hello1.o hello2.o -lcrypt
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -I.
-I/opt/host/armv4l/armv4l-unknown-linux/include -c -o hello1.o hello1.c
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc
-L/opt/host/armv4l/armv4l-unknown-linux/lib/ -o hello hello1.o hello2.o -lcrypt
www.ruijitek.com
Slide 21: 关于Makefile
Makefile就是一个批处理的脚本!
make
PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
tdb.o tty.o
LIBS += -lcrypt
all: pppd
pppd: $(PPPDOBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
clean:
rm -f $(PPPDOBJS) pppd *~
www.ruijitek.com
Slide 22: 跨入32位嵌入式系统开发的殿堂
熟悉REDHAT PC LINUX操作
例如:telnet/ftp等常用的工作方式和工具,系统搜索路径等常见问题等
熟悉REDHAT LINUX OS安装后的文件和目录结构:
[root@rj/]# ls
bin etc
initrd
boot HHARM9-EDU lib
dev home
misc
mnt
[root@rj /]# cd usr/local/
[root@rj local]# ls
arm
arm-elf
bin
etc
arm-linux games info
opt sbin
lost+found root tmp
proc tftpboot usr
var
gcc-m68k lib
include
man
libexec
m68k-elf sbin
www.ruijitek.com
share
RealPlayer src
Slide 23: 跨入32位嵌入式系统开发的殿堂
熟悉LINUX内核源代码的文件和目录结构:
arch
include
init
Documentation
COPYING
Makefile
ipc
CREDITS
Rules.make
net
kernel
scripts
README
vmlinux
fs
mm
drivers lib
MAINTAINERS
System.map
www.ruijitek.com
Slide 24: LINUX内核目录结构
www.ruijitek.com
Slide 25: 目录所在位置
www.ruijitek.com
Slide 26: 还需要一些基本知识(2)
终端的概念
串口终端与网络终端
嵌入式OS都做了stdin/stdout的重定向
www.ruijitek.com
Slide 27: 通过串口终端操作
www.ruijitek.com
Slide 28: 通过网络终端操作
www.ruijitek.com
Slide 29: 还需要一些基本知识(3)
软件系统构成
bootloader(一次固化)+内核(多次更新)+根文件系统(
多次更新)
www.ruijitek.com
Slide 30: 一个典型ARM9系统的软件构成
www.ruijitek.com
Slide 31: 关于内核…
通过看Makefile和完整的编译过程
make zImage >log
/opt/host/armv4l/bin/armv4l-unknown-linux-ld -p -X -T arch/arm/vmlinux.lds
arch/arm/kernel/head-armv.o arch/arm/kernel/init_task.o init/main.o init/version.o \
--start-group \
arch/arm/kernel/kernel.o arch/arm/mm/mm.o arch/arm/mach-s3c2410/s3c2410.o
kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
drivers/serial/serial.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o
drivers/net/net.o drivers/media/media.o drivers/scsi/scsidrv.o drivers/video/video.o
drivers/usb/usbdrv.o \
net/network.o \
arch/arm/nwfpe/math-emu.o arch/arm/lib/lib.a /HHARM2410-R3/kernel/lib/lib.a \
--end-group \
-o vmlinux
www.ruijitek.com
Slide 32: 关于文件系统…
RAMDISK:
mount –o loop ramdisk.image mydir
umount mydir
gzip ramdisk.image
JFFS2:
mkfs.jffs2 -d jffs2_dir/ -o jffs2.img
CRAMFS:
mkcramfs cramfs_dir cramfs.img
ROMFS:
genromfs -v -V "ROMdisk" –f romfs.img –d romfs_dir
www.ruijitek.com
Slide 33: 还需要一些基本知识(4)
片选:MemoryMAP平坦32位地址空间统一编制
(不同于X86体系)
Memory = RAM + FLASH
I/0(外设芯片内部寄存器,即各个CS)
CPU内部寄存器
*((volatile unsigned short *)(0x10000300))=0xf0c0;
*((volatile unsigned long *)(0x56000020))&=0xffffcfcf;
www.ruijitek.com
Slide 34: 一个典型ARM9系统的CS分布
www.ruijitek.com
Slide 35: 一个典型ARM9系统的CS分布
www.ruijitek.com
Slide 36: 还需要一些基本知识(5)
中断的处理:同单片机
SDRAM的初始化设置错误非常容易被忽略 它其实是平台移植的关键
可执行文件格式
大小端及字节对齐问题,ARM-V5以下都不支持非对齐字的传输
功耗不等于CPU功耗,例如SDRAM耗电的问题
关于实时性: RTOS/BSP常见术语、2.6内核引入
常见接口设计技术 <参见教程第二部分>
软件的源头
www.ruijitek.com
Slide 37: 下载烧写原理
对于ARM9平台--JTAG vs ICE
JTAG (Joint Test Action Group):两种模式
1.
使用芯片最外围的一条扫描链,即边界扫描方式:串行方式,扫
描链Scan chain非常长,速度很慢;但可不必了解ARM内核;但
不同芯片的扫描链定义不同。
2.
直接控制内部ICE方式:直接控制ARM AB/DB/IO等,速度快;
但不同的ARM内核有差异,不统一;需要了解ARM内核。
www.ruijitek.com
Slide 38: 下载烧写原理
JTAG
【目标板】
运行 Linux 的 PC【宿主机】
JTAG工具软件
A)初始化CPU
B)初始化SDRAM
C)初始化FLASH片选
D)一个简单的SHELL
PC端软件
检测软件(bootloader的雏形)
下载
A) 初始化CPU(关闭看门狗、中断、FLASH
cache等)
B)初始化SDRAM
C)初始化FLASH片选
D)初始化串口输出
E)一个简单的SHELL
板载软件
www.ruijitek.com
Slide 39: 关于NOR FLASH读写
两个基本单元操作:
erase_sector
write_word
*((volatile unsigned short *)(0xaaa))=0xaaaa;
*((volatile unsigned short *)(0x554))=0x5555;
*((volatile unsigned short *)(0xaaa))=0xa0a0;
*((volatile unsigned short *)(addr))=0x1234;
www.ruijitek.com
Slide 40: 以太网下载烧写
以太网
【目标板】
运行Linux 的PC【宿主机】
www.ruijitek.com
Slide 41: 以太网下载烧写
交换机
网线
【宿主机】
串口线
运行Redhat Linux的PC机
假设IP为:192.168.2.2.122
交叉编译
www.ruijitek.com
网
线
Slide 42: 烧写工具的角色
bootloader的双重角色
JTAG
慢速设备
一次使用
bootloader
快速以太网TFTP
反复下载烧写
LINUX内
核
各个文件
系统映像
www.ruijitek.com
Slide 43: 内核剪裁
make menuconfig
www.ruijitek.com
Slide 44: 结 束
锐极科技
support@ruijitek.com
www.ruijitek.com

添加时间: 2009-03-18 11:00:18
1061浏览 | 3收藏 | 2下载 | 0分享
锐极ARM9教学实验课程。Linux 支持广泛的ARM体系CPU,目前已有数十种不同厂家的芯片, 支持的板子也超过200多种,并且越来越多的厂家在ARM上选择使用Linux系统。 ARM Linux的资源丰富,有很多的系统方案提供商 可以方便地添加自己的ARM平台 ARM Linux的开发也在不断进行中http://www.arm.linux.org.uk/

(33人浏览过)
(14人浏览过)
(4人浏览过)
(2人浏览过)
(2人浏览过)
(1人浏览过)
(1人浏览过)
(1人浏览过)
(1人浏览过)
(1人浏览过)