69.sizeof的使用场合: (1)主要用途是与存储分配和I/O系统那样的例程进行通信 (2)可以看某种类型的对象在内存中所占的单元字节 (3)在动态分配一对象时,可以让系统指导要分配多少内存 (4)便于一些类型的扩充 (5)如果操作数是函数中的数组形参或函数类型形参,sizeof给出其指针大小 70. 指令 用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息 71.简述嵌入式处理器的特点 (1)实时性强,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。 (2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。 (3)扩展性好,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。 (4)功耗低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至μW级。
72.简述嵌入式系统的概念、组成及特点 概念:以应用为中心、软硬件裁剪好的计算机系统。 组成分为硬件组成和软件组成。 硬件组成:处理器、内存、总线、I/O端口、外设。 软件组成:Bootloader、OS、APP。 特点: 1.面向特定应用 1.嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 1.2.技术含量高。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 1.3.软硬件裁剪。嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。 1.4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 1.5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 1.6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
73.BootLoader在嵌入式系统中主要起什么作用?完成哪些主要的工作?(8分) Boot Loader是在嵌入式系统启动时,操作系统内核运行前,执行的一段程序。Bootloader主要的作用只有一个:就是把操作系统映像文件拷贝到RAM中去,然后跳转到它的入口处去执行,我们称之为启动加载模式,该过程没有用户的介入,是它正常工作的模式。它的步骤如下: Stage1: 1. 硬件设备初始化。为stage2的执行及随后内核的执行准备好基本的硬件环境 2. 为加载stage2 准备ram空间。为了获得更好的执行速度,通常吧stage2加载到ram中执行 3. 复制stage2的代码到ram中 4. 设置好堆栈 5. 跳转到stage2的c程序入口 Stage2: 1. 初始化本阶段要使用的硬件设备 2. 检测系统内存映射 3. 将内核映像和根文件系统映像从flash读到ram中 4. 为内核设置启动参数 5. 调用内核
74.搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在Windows主机上使用什么软件建立连接?在Linux主机上使用什么软件建立连接?(7分) 一般使用eth、串口、USB。在Windows主机上使用DNW、CRT。在Linux主机上使用minicom。
75.linux内核里面,内存申请有哪几个函数,各自的区别?(8分) 答: kmalloc 和 get_free_page 、 get_free_pages 。 malloc 函数申请的内存可以任意大小,但是 kmalloc 最大只能开辟 128k-16 , 16 个字节是被页描述符结构占用了。 而 get_free_page 或 get_free_pages 是申请的内存以页的大小为基准,大小为页的整数倍。 get_dma_pages, 这个函数除了以上功能外还能支持 DMA 传输。
76.ARM-linux启动分几部分,简述流程(9分) ARM-Linux启动分为2部分。 (1)板子上电,核心版上的BL0自动执行,初始化硬件后,从存储器中拷贝BL1到内存并运行,BL1同样初始化硬件,设置堆栈,拷贝BL2到内存并执行。 (2)BL2再次初始化硬件,检测内存映射,拷贝内核文件镜像、内核镜像到内存,设置内核启动的参数,且跳转到内核的第一条指令。
77.PING命令的功能是什么,通过的是哪个层的什么协议; 主要的功能是用来检测网络的连通情况和分析网络速度 属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
|