| |||||||||||||||||||||
PreSoCes PreSoCes的实作功能有哪些?它是专门针对SoC嵌入式系统开发、训练而设计的平台,它是一个ICE(Pocket ARM ICE或Carrier ARM ICE)、Domingo Debugger、Creator组合而成。系统上特点:一、在WINDOWS环境就能操作Linux 系统,不需另灌一台Linux PC,也就是一台PC就能开发Embedded Linux。二、具有Linux OS Debugging的Debugger。Creator它的特点很多,但主要有(1).在Creator上,可更换CPU模组,如用不同的ARM CPU,或具ARM Core的FPGA模组,其他的MIPS CPU也是考虑之一。(2).在Creator上,可更换性的週边IP FPGA模组,如:Create Ph-FPGA-XC2S。(3).电流量测,可对CPU、Memory、LCD、Compact Flash、CMOS Sensor、USB、Ethernet等作量测。其他功能特点如下: CPU: ˙ARM7TDMI S3C4510(Factory out standard) CPU模组更换:(另选) ˙Create-ARM922T板(另选)、Altera EPXA1 100K Gates ˙ARM9 TDMI S3C2410 CPU板(另选) ˙其他CPU板(另选) ˙其他大容量FPGA 板(另选) 记忆体(Memory): ˙2MB Bytes Flash ROM ˙16M Bytes SDRAM support byte, half-word, word size ˙Access Compact flash card(compact flash card optional) ˙SDRAM Memory Expansion connector 通讯传输(Communication): ˙RS232C port for Debug Console ˙RS232 port for Application ˙RJ-45 10/100 Base-T Ethernet interface ˙USB 1.1 interface 人机界面(Human-Machine Interface): ˙Codec function with Speaker, Microphone circuit ˙CMOS Camera Module ˙4×4 Keypad ˙LED Lamp X 8;7-Seg LED X 4;8 Pin DIP Switch ˙Graphic LCD Display by 4 Level 系统支援(Board System): ˙1*system reset switch ˙1*JTAG connector ˙Real time clock by I2C interface ˙EEPROM 128×8 Bit ˙Clock changeable for CPU ˙可针对CPU、Memory、LCD、Compact Flash、CMOS sensor、Codec、USB、UART、EtherNet、etc作电流量测 週边IP FPGA模组更换:(另选) ˙Create Ph-FPGA-XC2S板(另选) ˙其他FPGA或CPCD模组(另选) 作业系统(Operating System): ˙Running uClinux ˙Others | |||||||||||||||||||||
ARM CPU 在初步了解PreSoCes功能后,就来看看嵌入式系统的核心ARM CPU,在这里以ARM Core S3C4510元件为说明。为何要学ARM CPU呢?因嵌入式系统是软、硬体的整合,它有BISO、Device driver,能不了解CPU吗?又加上如未来要走入SoC IP设计,那又更不能不了解它,所以笔者仅取重点说明。■ARM7TDMI核心的主要组成 〈1〉.暂存器组(register bank):ARM7TDMI利用暂存器组来储存微处理器内部各种操作模式的运算域及CPU状态。暂存器组中的所有暂存器至少具有两个读取埠(read port)与一个写入埠(write port)以供存取暂存器之用,较为特殊是R15,有三个读取埠与两个写入埠。 〈2〉.桶型位移暂存器(barrel shifter):ARM7TDMI利用barrel shifter来执行位元位移或旋转,这是一般DSP常用的功能之一。 〈3〉.算术逻辑运算单位(ALU):ARM7TDMI利用ALU来执行算术与逻辑运算。 〈4〉.位址暂存器(address register)与累增器(incrementer):ARM7TDMI利用位址暂存器与累增器来选择并维持记忆体定址功能,以产生连续或非连续的记忆体位址。 〈5〉.资料暂存器(data register):ARM7TDMI使用资料暂存器来保存资料以与记忆体彼此沟通。 〈6〉.指令解码器(instruction decoder):ARM7TDMI利用指令解码器以产生与指令相对应的控制信号。 图1 ARM core ■Pipeline结构 1.完整指令执行的管线作业 2.三层管线作业流程 在这情况下可知一个Cycle执行一个指令。 ■CPU资料执行图 图2 CPU资料执行 CPU资料执行图说明 本文利用一简单的加法运算再搭配二个暂存器(Rm及Rn)来说明: 1.分别将(Rn及Rm)送到A BUS及B BUS。 2.在B BUS的Rm透过Barrel Shifter作位移运算后,结果与在A BUS的Rn在ALU整合作运算动作。 3.最后运算结果会由ALU BUS送回暂存器Rd做储存。 4.程式计数器结果则透过Address incrementer作更新再将值写回程式计数器。 5.此时Address BUS更新资料位址,进行下一步的命令撷取的动作;记忆体即会把指令送到Data BUS做进一步的指令解码及执行的准备。 ■程式模式(Programmer Mode) 暂存器 ARM Mode暂存器共有37个,分别有31个32bit一般暂存器及6个状态暂存器,而于不同操作模式下分有不同的暂存器可供使用。 表1 ARM Mode暂存器 THUMB Mode暂存器是一个ARM状态暂存器的子集合,分别有21个32bit一般暂存器及6个状态暂存器,使用者可直接使用R0-R7和PC,stack pointer register(SP),link register(LR)、CPSR及SPSR。 在二种State的暂存器组中,有共用暂存器,也有各别暂存器,这就方便OS 的task switch 之程式参数转换用。 ■忆体格式 ARM7TDMI对于记忆体内资料的存取以byte为单位,并由0开始线性向上存取的方式进行。也就是byte0~byte3会最先被存取为一个word(在ARM里,一个word等于32位元;也就是4个byte),接下来是byte4~byte7被存取...依此类推下去。而这样储存在记忆体中的一个word之4个byte,哪个会置于最高位置?哪个又会置于最低位置呢?这时,ARM则提供了两种格式供设计者来使用---Big Endian和Little Endian。 在Big Endian格式中,一个word里的最大有效位元组会储存到最低的位元组里,而最小有效位元组会储存到最高的位元组里。 表3 Big Endian格式 在Little Endian格式中,一个word里的最小有效位元组会储存到最低的位元组,而最大有效位元组会储存到最高的位元组里。 表4 Little Endian格式 操作模式 ARM7TDMI共支援7种操作模式。 表5 ARM7TDMI操作模式 模式改变 模式的改变可以由软体控制或是经由外部中断和例外事件的处理所产生。大多数的应用程式会在User模式下执行。非User模式,亦可称为特权模式,其通常用来执行中断服务、例外事件,或者是存取受保护的资源。 ■例外事件 每当例外事件的产生,则程式的一般旗标则会暂时停止,在例外被处理之前,目前的处理程序状态必须被保留,最初的程式才能够被恢復。当中断被处理完时,其他的例外事件就会被接受处理,但它们会依照优先顺序处理。 表6 例外事件 |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |