2017-11-13

1.(填空)数据类型

ARM处理器支持下列数据类型:

Byte 字节,8位      Halfword 半字,16位(半字必须与2字节边界对齐);

Word 字,32位(字必须与4字节边界对齐)。

2.处理器模式

ARM体系结构支持的处理器模式

在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。

大多数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源也不能改变模式,除非异常发生。这允许操作系统来控制系统资源的使用。

除用户模式外的其他模式称为特权模式。特权模式是为了服务中断或异常,或访问保护的资源。它们可以自由的访问系统资源和改变模式。其中的5种被称为异常模式,即:FIQ IRQ 管理 中止 未定义。

当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。

剩下的模式是系统模式,不能由于任何异常而进入该模式,它与用户模式有完全相同的寄存器。然而它是特权模式,不受用户模式的限制。

3.异常(问答)

  异常由内部或外部源产生并引起处理器处理一个事件,例如外部中断或试图执行未定义指令都会引起异常。在处理异常之前,处理器状态必须保留,以便在异常处理程序完成后原来的程序能够重新执行。异常出现后,强制从异常类型对应的固定存储器地址开始执行程序。

(1)复位:处理器上一旦有复位输入,ARM处理器立刻停止执行当前指令。复位后,ARM处理器在禁止中断的管理模式下,从地址0x00000000或0xFFFF0000开始执行指令。

(2)未定义指令异常:当ARM处理器执行处理器指令时,它必须等待任一外部处理器应答后,才能真正执行这条指令。若处理器没有响应,就会出现未定义指令异常。

(3)软件中断异常(SWI):该异常由执行SWI指令产生,可使用此机制进行软件仿真。

(4)预取中止(取指令存储器中止):若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。

(5) 数据中止(访问数据存储器中止):若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。

(6) 中断IRQ异常:当处理器的外部中断请求引脚有效,且CPSR中的I=0,产生IRQ异常。

系统的外设可通过该异常请求中断服务。

(7)快速中断FIQ异常:当处理器的外部中断请求引脚有效,且CPSR中的F=0,产生FIQ异常。FIQ支持数据传送和通道处理,并有足够的私有寄存器,从而在应用中可避免对寄存器保存的需求,减少了开销。

(8)异常优先级

4.块复制寻址(语言描述,画图)

(1)R0的内容传送到R9指向的位置,传送之后R9加一,指向下一位。R0占用32位地址,一次加4

(2)R0传送之前加一,再将R0的内容传送到R9指向的位置,每传送一次加4.

多寄存器指令映射:

STMIB/STMFA:向上生长、增加、之前、满    LDMDA/LDMFA:向上生长、减少、之后、满

STMIA/STMEA:向上生长、增加、之后、空    LDMDB/LDMEA:向上生长、减少、之前、空

LDMIA/LDMFD:向下生长、增加、之后、满  STMDB/STMFD:向下生长、减少、之前、满

LDMIB/LDMED:向下生长、增加、之前、空    STMDA/STMED:向下生长、减少、之后、空

例:STMIA R9{R0,R1,R5}  R9向上生长,R9'之后增加

STMFD R13!,{R2-R9};  存储寄存器到堆栈

    LDMFD R13!{R2-R9};  从堆栈恢复

5.(简答)基于ARM的硬件启动程序一般包括:

(1)分配中断向量表;(2)初始化存储器系统;(3)初始化各工作模式下的堆栈;

(4)初始化有特殊要求的硬件模块;(5)初始化用户程序的执行环境;(6)切换处理器的工作模式;(7)调用主应用程序

6. S3C2410A的存储器控制器提供访问外部存储器所需要的存储器控制信号。具有以下特性:

(1)支持小/大端(通过软件选择)  (2)地址空间:每bank有128M字节(总共有8个banks,共1G字节)    (3)除bank0(只能是16/32位宽)之外,其他bank都具有可编程的访问大小(可以是8/16/32位宽)  (4)总共有8个存储器bank(bank0~bank7)

(5)其中6个banks用于ROM,SRAM等  (6)剩下2个banks用于ROM,SRAM,SDRAM等  (7)7个固定的存储器bank(bank0~bank6)起始地址  (8)最后一个bank(bank7)的起始地址是可调整的  (9)最后两个bank(bank6~bank7)的大小是可编程的

(10)所有存储器bank的访问周期都是可编程的  (11)总线访问周期可以通过插入外部等待来延长      (12)支持SDRAM的自刷新和掉电模式

S3C2410A复位后,存储器的映射情况如下,bank6和bank7对应不同大小存储器时的地址范围:

bank6地址                                    bank7地址

2MB:起始(0X30000000)终止(0X301FFFFF)    起始(0X30200000)终止(0X303FFFFF)

4MB:起始(0X30000000)终止(0X303FFFFF)      起始(0X30400000)终止(0X307FFFFF)

8MB:起始(0X30000000)终止(0X307FFFFF)      起始(0X30800000)终止(0X30FFFFFF)

16MB:起始(0X30000000)终止(0X30FFFFFF)    起始(0X31000000)终止(0X31FFFFFF)

32MB:起始(0X30000000)终止(0X31FFFFFF)    起始(0X32000000)终止(0X33FFFFFF)

64MB:起始(0X30000000)终止(0X33FFFFFF)    起始(0X34000000)终止(0X37FFFFFF)

128MB:起始(0X30000000)终止(0X37FFFFFF)    起始(0X38000000)终止(0X3FFFFFFF)

7.电源控制模式包括?              正常、慢速、空闲、掉电

正常:正常运行模式;            慢速:不加PLL的低时钟频率模式;

空闲:只停止CPU的时钟;        掉电:所有外设和内核的电源都切断了

8.NAND Flash控制器的启动特点?

(1)NAND Flash模式:支持读/擦除/编程NAND FLASH存储器(2)自动启动模式:系统复位后,启动代码被传送到Steppingstone中。传送完毕后,启动代码在Steppingstone中执行。(3)具备硬件ECC生成模块(硬件生成校验码,通过软件校验)(4)NAND Flash启动以后,4KB的内部SRAM缓冲器Steppingstone可以作为其他用途使用(5)NAND Flash控制器不能通过DMA访问,可以使用LDM/STM指令来代替DMA操作

9慢速模式?不使用PLL,而使用外部时钟直接作为S3C2410A中的FCLK。在这种模式下,功耗大小仅取决外部时钟的的频率,与PLL无关。

10掉电模式?电源管理模块断开内部电源。因此,除唤醒逻辑外,CPU和内部逻辑都不会产生功耗。激活掉电模式需要两个独立的电源,一个电源为唤醒逻辑供电;另一个为包括CPU在内的其他内部逻辑供电,并且这个电源的开、关可以控制。在掉电模式下,CPU和内部逻辑供电的第二电源将关断。

11(填空)Vi编辑器的使用

Vi有4种基本的工作模式:正常模式,插入模式,命令模式和可视模式。

:q退出    :q!强行退出vi,不改写文件    :w存盘    :wq 存盘退出

12.介绍makefile文件的编写格式

(1)makefile中以“#”开始的行是注释行。

(2)Makefile中最终要的是描述文件依赖关系的说明。一般格式是:target:components——表示依赖关系              TAB  rule——表示规则

(3)clean 当用户键入“make clean”命令时,会执行clean后面的语句。对于上面的makefile,当用户键入“makeclean”命令时,会执行“rm-rf  *0  main”从而删除*0和main文件

(4) makefile有三个非常有用的变量,分别是“$@”“$^”“$<”

   

13.(简答)Bootloader的stage1通常包含以下步骤:

(1)Bootloader 的第一阶段(Stage1)步骤:

①硬件设备初始化      ②为加载Bootloader的stage2准备RAM空间

③复制Bootloader的stage2到RAM空间中    ④设置好堆栈  ⑤跳转到stage2入口点

(2)Bootloader的stage2通常包含以下步骤:

①初始化本阶段要使用的硬件设备    ②检测系统内存映射    ③将kernel映像和根文件系统映像从Flash读到RAM中        ④为内核设置启动参    ⑤调用内核

14. ViVi程序架构            vivi代码包括arch init lib drivers和include几个主要目录。

①arch:该目录主要包括所有vivi所支持的目标板的子目录

②drivers:该目录包括引导内核需要的设备驱动程序

③init:该目录只含有main.c 和version.c两个文件,vivi将从main.c函数开始C语言的执行。

④lib:该目录包含一些平台的接口函数

⑤include:该目录是头文件的公共目录,该目录定义了目标系统相关的资源配置参数。

15. file-operation结构的作用:

一个设备驱动程序包括两个基本任务:执行系统调用和负责中断处理。而file-operation结构的每一个成员的名称都对应一个系统调用。在操作系统内部,外部设备的存取是通过一组固定入口点进行的,这些入口点由每个外设的驱动程序提供,由file-operation结构向系统说明,因此编写驱动程序的主要工作就是编写子函数,并填充file-operation的各个域。

16.驱动程序的开发步骤:

(1)对该驱动程序使用到的硬件寄存器进行初始化,包括中断寄存器。

(2)初始化与设备相关的参数。一般来说,每个设备要定义一个设备变量,用来保存设备的相关参数。

(3)注册设备(函数的作用)。Linux内核通过主设备号将设备驱动程序同设备文件相连。

(4)注册设备使用的中断,注册中断使用的函数。

(5)其他的一些初始化工作,比如给设备分配I/O,申请DMA通道等。

如果设备的驱动程序使用如下的函数方式,那么设备驱动可以被动态地加载和卸载。

module_init(device_init);                module_exit(device_exit);

对于驱动程序的使用,有静态编译和动态编译两种。静态编译将设备的驱动程序添加到内核中,动态编译是指将设备驱动程序编译成驱动模块。

17.若在/dev目录下没有相应的设备文件,就可用“mknod device_name.c主设备号从设备号”命令来创建一个设备文件,从而正确使用驱动模块。卸载驱动模块时,使用“rmmod device_driver”命令。删除设备文件使用“rm device_name”命令。建设被编译成驱动模块。

18.开发linux应用程序的一般分为以下几个步骤:

编写程序;编写makefile文件;编译程序;运行程序;将生成的可执行文件加入文件系统

19.ARM处理中断步骤:

(1)保存现场(2)模式切换(3)获取中断源(4)中断处理(5)中断返回,恢复现场

20.自动启动模式的执行步骤:(1)完成复位 (2)如果自动启动模式使能,NAND Flash存储器的前4KB自动复制到Steppingstone内部缓冲器; (3)Steppingstone映射到nGCS0; (4)CPU在Steppingstone的4KB内部缓冲器中开始执行启动代码。

21.Linux的移植?所谓Linux移植就是针对具体的目标平台对Linux做必要的改写后,安装到该目标平台并使其正确运行的过程。基本内容包括:

(1)获取某一半杯的Linux内核源码;(2)根据具体的目标平台,对源码进行必要的改写,然后添加一些驱动,打造一款适合目标平台的新的操作系统;(3)对该系统进行针对目标平台的交叉编译,生成一个内核映像文件;(4)对该映像文件烧写、安装到目标平台中。

22.Linux内核主要由5个子系统组成:进程调度子系统,内存管理子系统,虚拟文件子系统,网络接口子系统,进程间通信子系统。

Linux内核的主要目录结构:(1)/arch:其中的子目录包含所有与硬件体系结构相关的内核移植代码,每一个目录都代表一种硬件平台,每种平台都应该包括以下几个部分:

boot:包含启动内核所使用的部分或全部平台的相关代码。  kernel:包含支持体系结构特有的特征代码。  lib:包含存放体系结构特有的通用函数的实现代码  mm:包含存放体系结构特有的内存管理程序的实现。    mach-xxx:包含存放该处理器的移植代码。

(2)/documentation:有关内核各部分的通用解释和注释(3)/drivers:设备驱动程序(4)/fs:所支持的各种文件系统的代码(5)/include:建立内核代码时头文件,与系统相关的头文件放置在include/linux子目录下(6)/init:内核初始化代码,内核从此目录下开始工作。(7)/ipc:内核进程间通信的代码(8)/kernel:主内核的代码,包括进程调度、定时器等(9)/lib:通用的库文件代码(10)/mm:内核的内存管理代码(11)/net内核的:网络相关代码(12)/scripts:用于配置内核的脚本文件。

23.S3C2410A的I/O口工作原理:S3C2410共有117个多功能服用输入输出口(I/O口),分为8组PORTA~PORTH。PORT A 除了作为功能口外,它只作为输出口使用;其余的PORT B~PORT H都可以作为输入输出口使用。8组I/O口按照其位数的不同,可分为:

①1个23位的输出口(PORT A)    ②2个11位的I/O口(PORT B和PORT H)

③4个16位的I/O口(PORT C 、PORT D、PORT E、PORT G)  ④1个8位的I/O口(PORT F)

1.嵌入式系统的特点:⑴硬软件一体化,集计算机技术、微电子技术和行业技术为一体⑵需要操作系统支持,代码小执行速度快⑶专用紧凑,用途固定,成本敏感⑷可靠性要求高⑸多样性,应用广泛,种类繁多    2.操作系统功能:处理器管理,存储器管理,设备管理,文件管理,用户接口      3.实时操作系统的特点:支持异步事件的响应;中断和调度任务的优先级机制;支持抢占式调度;确定的任务切换时间和中断延迟时间;支持同步

4.板级支持包BSP完成的功能:①在系统启动时,对硬件进行初始化,比如对设备的中断、CPU的寄存器和内存区域的分配等进行操作;②为驱动程序提供访问硬件的手段,BSP就是为上层的驱动程序提供访问硬件设备寄存器的函数包。

1.下面是实现LED1和LED2轮流闪烁的程序代码。

void Main(void){

    int flag,i;

    Target_Init();//进行硬件初始化操作,包括对I/O口的初始化操作

    for(; ;){

          if(flag==0){

            for(i=0;i<1000000;i++);        //延时

            rGPGCON=rGPGCON&0xfff0ffff|0x00050000; //配置第8、第9位为输出引脚

            rGPGDAT=rGPGDAT&0xeff|0x200; //第8位输出为低电平,第9位输出为高电平                             

            for(i=0;i<10000000;i++);      //延时

            flag=1;

          }

          else{

            for(i=0;i<1000000;i++);        //延时

            rGPGCON=rGPGCON&0xfff0ffff|0x00050000; //配置第8、第9位为输出引脚

            rGPGDAT=rGPGDAT&0xdff|0x100; //第8位输出为高电平,第9位输出为低电平                           

            for(i=0;i<10000000;i++);      //延时

            flag=0;            }  }    } 

   


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容