南邮-嵌入式复习附录/习题

这篇具有很好参考价值的文章主要介绍了南邮-嵌入式复习附录/习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

附录1-6

内容可能有误,欢迎大家指正。

附录1:

(1)ARM汇编程序由 机器 指令、 汇编 指令和 伪 指令构成。
(2)ARM伪指令可以分为以下几类:符号定义伪指令、数据定义伪指令、汇编控制伪指令和宏指令等。
(3)假设存储数据0x12345678于ARM微处理器内存0X30000000开始的位置,则0X30000001内存位置的数据为C(A.0X12 B.0X34 C.0X56 D.0X78)(采用小端模式进行存储)
(4)一般情况下,ARM微处理器异常处理模式共有7种,机器启动后第一条指令执行的是A(A.复位异常处理函数指令 B.中断异常处理指令 C.IRQ异常处理指令 D.指令预取终止异常)。
(5)调用函数FUN(X,Y,Z),则实参值分别通过 r0、r1 、 r2寄存器来进行传递,如果参数超过4个,则参数传递规则为通过栈进行传递。
(6)举例列出一款ARM7TDMI微内核的嵌入式微处理器S3C44BOX ,ARM920T微内核的嵌入式微处理器S3C2410,ARM11内核的嵌入式微处理器 S3C6410,并列举2款64位ARM微内核Cortex-A53、Cortex-A57。
(7)利用汇编和C混合编程,设计代码完成求a,b,c中最大值功能,要求写出汇编启动代码和C代码。
1.汇编文件 asses.S
EXPORT Max
IMPORT Main
AREA Init,CODE,READONLY
ENTRY
MOV R13,#0X3008000
B Main
MAX
LDR R2,[R0],#4
loop
SUB R1,R1,#1
LDR R3,[R0],#4
CMP R2,R3
MOVLT R2,R3
CMP R1,#1
BEQ EXIT
B loop
exit
MOV R0,R2
MOV PC,LR
END
2.C 文件
//main.c
int Max(int *pa,int len);
void Main()
{
int a[5]={10,24,8,67,34};
Max(a,5);
}

附录2:

1.嵌入式Linux操作系统包括bootloader、内核、文件系统 三部分组成。
2.在PC机上Linux系统编译使用的编译器名为gcc,ARM处理器嵌入式编译器名为arm-linux-gcc。
3.bootloader的功能:①引导操作系统内核启动②提供辅助命令工具。
4.列出最常用的bootloader:vivi、uboot、redboot、lilo、grub、etherboot。
5.在uboot中,打印开发板上环境变量值的命令为printenv,设置IP地址为192.168.1.1的命令为setenv ipaddr 192.168.1.1,假如嵌入式内核名为vmlinux,通过tftp加载内核的命令为setenv ipaddr 192.168.1.1,启动嵌入式Linux内核的命令为bootm。
6.从C语言角度来理解,嵌入式Linux内核仅是众多函数的集合体,其有一个类似于main的函数,名称为start_kernel。
7.嵌入式Linux内核裁剪命令为make menuconfig;裁剪完成后生成配置选择文件.config;编译内核命令为make zImage。
8.启动linux后常用的命令如ifconfig、cp、ls等通常位于C(A.bootloaderB.内核C.文件系统)中;嵌入式Linux环境下生成文件系统的常用工具为mkyaffs2img;以yaffs方法为例,将嵌入式文件夹压缩成一个yaffs2格式的文件系统命令为mkyaffs2img 文件夹 镜像文件名。
9.构建嵌入式Linux系统时,烧写bootloader的工具为hjtag;烧写Linux内核一般使用A(A.bootloader B.文件系统 C.交叉编译器)来烧写,烧写文件系统一般使用A(A.bootloader B.文件系统 C.交叉编译器)来烧写。
10.简述构建嵌入式Linux系统基本过程
三剑客:
裁剪编译好 uboot 映像文件 uboot.bin
裁剪编译好内核 映像文件 uImage
裁剪编译好文件系统映像文件 rootfs_qtopia_qt4.img

烧写至NAND存储设备

附录3:

  1. Linux中自动生成makefile的工具集名称为autotools;工具集包括aclocal、autoscan、autoconf、autoheader和automake等几部分组成。
    2.一个源码文件hello.c利用自动生成makefile的工具集后得到文件一批文件后,利用命令#./configure生成Makefile,利用命令#make dist生成发行压缩包文件hello.tar.gz。
    3.嵌入式Linux应用程序移植常用configure命令生成Makefile,一般来说,指定安装目录为/opt/soft的命令为. /configure --prefix=/opt/soft;如果待生成的可执行目标板为ARM处理器,则命令为. /configure --prefix=/opt/soft --HOST=arm-linux。
    4.以web服务器boa移植为例,简述其基本过程。
    第一步完成Boa程序的移植。下载Boa源码、生成Makefile文件、修改Makefile文件、编译。
    第二步完成Boa的配置,使其能够支持CGI程序的执行。修改Group、scrīptAlias、ServerName
    第三步就是测试Boa能否正常工作。Boa的执行、CGI脚本测试(编写Helloworld.c程序、浏览)。
    5.嵌入式数据库经常使用sqlite,为可以在开发板上运行的轻型数库。通常情况下sqlite提供命令和函数编程两种使用方式。
    6.在sqlite下创建数据库stu.db命令为sqlite3 stu. db;创建包含学号,姓名和电话号码的数据表StuPhone命令为create table StuPhone( id integer primary key, name text, phoneNo text ) ;;插入10010201,wangming,13900008888记录的命令为insert into StuPhone values(10010201, wangming, 13900008888)。
    7.利用函数调用创建数据库stu.db的形式为ret=sqlite3_open(const char *filename, sqlite3 **ppDb);;创建包含学号,姓名和电话号码的数据表StuPhone函数调用形式为rec = sqlite3_exec(dbPtr, sql, 0, 0, & errMsg); sql = “CREATE TABLE COMPANY(”\……);";;插入10010201,wangming,13900008888记录的函数调用形式为sqlite3_exec()。

附录4:

  1. 嵌入式Linux内核是可裁剪系统,通常情况下使用模块机制进行设计。模块程序和应用程序分别位于Linux系统的内核空间和用户空间。
  2. 嵌入式Linux系统模块程序hello.c被编译成模块hello.ko后,动态插入内核的命令为#insmod hello. ko,查看Linux内核中有哪些模块的命令为#lsmod,删除内核中模块hello.ko的命令为#rmmod hello。
    3.编写一模块,向内核中添加两整数相加功能函数和两整数相减功能函数,并要求在加载模块时打印出“hello,I am in kernel now!”,卸载模块时打印“hello, I will leave from kernel now!”,编写Makefile,并简述加载到内核和卸载出内核的基本命令。
    (1)模块文件
    #include <linux/kernel.h>
    #include <linux / module.h> //1.头文件
    #include <linux/init.h>

int AddFun(int a,int b) //2.加载到内核的功能函数
{
return a+b;
}

static int __init hello_init(void) //3.模块加载和卸载函数
{
printk( “insert hetlo module into kernel!\n”):
return 0;
}
static void led_exit(void)
{
printk(“hello module leave from kernel!\n”);
return ;
}
module_init(hello_init);
module_exit(hello_exit);

MODULE LICENSE(“GPL”); //4.模块许可证说明
(2) Makefile
obj-m: =hello. ko
all:
make – C /opt/linux-2. 6. 38 SUBDIRS=$(shell pwd) modules
clean:
rm -rf *. ko *. o
(3) 编译和加载
#make
#inmsod hello. ko

附录5:

  1. 在嵌入式Linux开发过程中,EmbeddedQT通常情况下用于C(A.内核代码B.驱动代码C.图形应用程序)设计。EmbeddedQT采用工具开发包的形式提供给用户,一般情况下包括图形设计器、QT 的 C++类库和Makefile 制作工具,字体国际化工具等。
  2. QT开发中采用信号和插槽机制来连接两个对象之间的通讯,假设对象a的clicked信号和对象b的handleFunction()相关联,对应语句为:connect(&a, SIGNAL(clicked() ) , &b, SLOT(handleFunction() ) ) ;
    3.假设有嵌入式LED报警灯驱动设备文件/dev/led,点亮led灯调用函数ioctl(fd,LEDON),熄灭led灯调用函数ioctl(fd,LEDOFF),请设计QT应用程序完成如下任务,点击ON按钮点亮LED灯,点击OFF按钮熄灭LED灯。写出这两个按钮的相关联的函数。假设ON按钮名称为m on,OFF按钮名称为m off。

关联函数:
connect(m_Win, SIGNAL(clicked() ) , m_on, SLOT(LedOnFun() ) ) ;
connect(m_Win, SIGNAL(clicked() ) , m_off, SLOT(LedOffFun() ) ) ;
void LedOnFun( )
{
int fd;
fd=open(“/dev/leddev” , O_RDWR) ;
ioctl(fd, LEDON) ;
close(fd) ;
}
void LedOffFun()
{
int fd;
fd=open(“/dev/leddev” , O_RDWR) ;
ioctl(fd, LEDOFF) ;
close(fd) ;
}

附录6:

  1. 嵌入式Linux驱动设备分为字符设备、块设备和网络设备三种类型,其中通常情况下键盘、鼠标、LCD屏等设备驱动属于字符设备,硬盘设备属于块设备。
  2. 以模块的方式向内核添加功能函数int addFun(int a,int b)和int subFun(int a,int b),要求编写模块文件,Makefile文件,假设模块名为hello.ko,写出加载模块到内核的命令。
    模块文件
    #include <linux/kernel.h>
    #include <linux / module.h> //1.头文件
    #include <linux/init.h>

int AddFun(int a,int b) //2.加载到内核的功能函数
{
return a+b;
}
int SubFun(int a,int b)
{
return a-b;
}

MODULE LICENSE(“GPL”); //4.模块许可证说明

Makefile文件和加载函数见附录四第四题。

设备要能被使用,通常需要设备驱动软件,在Linux系统中,设备驱动驱动软件位于A(A.内核空间 B.用户空间),假设有LED报警灯设备驱动软件leddrv.ko,则加载该驱动软件到内核命令为_#insmod leddrv. ko,测试完成后,将该软件从内核中卸载命令为_ #rmmod leddrv_。
3. 除网络设备外,设备驱动通常采用文件方式进行访问,一般包括_打开设备、读写控制设备,最后关闭设备。在Linux中设备文件名本质上是设备号,将两者之间建立关联的命令为mknod,假设LED设备驱动主设备号为253,次设备号为0,设备名为leddev,则建立设备文件的具体命令为#mknod /dev/leddev c 253 0_。
4.简述编写看门狗驱动基本步骤
编写硬件驱动代码, 包括:
编写硬件接口函数
建立文件系统与硬件接口函数的关联
注册字符设备
添加模块代码
编译设备驱动并加载到内核, 包括:
编写Makefile
编译
加载
创建设备节点
编写应用程序访问底层设备驱动

第四部分:考试题型

考试题型分为填空题(选择题)、问答题和设计题三种类型,分别占比为40%、40%和20%文章来源地址https://www.toymoban.com/news/detail-446905.html

  1. 填空题
    共20空,每空2分
    如:
    嵌入式应用程序hello.c,编译成ARM平台可执行程序hello,编译指令为arm-linux-gcc hello.c –o hello,依据所做实验平台,假设要将其从PC端搬运到ARM平台,则使用什么工具完成A(A. ADS B.gcc C.串口超级终端)
    填空题基本为教材和实验指导书上内容。
  2. 问答题
    共3题,40分
    如:
    简述嵌入式Linux系统构建过程中根文件系统有哪几部分组成,并简述每一部分的基本构建过程(要求写出源码名称,解压命令,裁剪命令、编译命令和安装命令等)
    3道编程题有1道为教材上内容,其余两道均为实验和课堂上所讲内容。
    3.设计题
    共1题,共20分
    详见第七讲+第八讲
    主要考察大家对嵌入式系统的基本设计能力,题目结合实验内容进行考察,有较高难度,请大家务必对我们的实验及实验报告认真学习和总结。

到了这里,关于南邮-嵌入式复习附录/习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 西邮嵌入式系统复习

    可以私聊我获取pdf版本! 提示:这里可以添加本文要记录的大概内容: 期末复习知识点总结 第一次整理 提示:以下是本篇文章正文内容,下面案例可供参考 1.1.0 嵌入式系统发展 (选择 4个阶段) 无操作系统的单片机阶段–以微控制器为基础、以简单操 作系统为核心的嵌入

    2024年02月15日
    浏览(40)
  • 【嵌入式系统】 期末复习提纲

    1、嵌入式系统的概念 以应用为中心、以计算机技术为基础、软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 2、了解ARM体系结构的演变进程 1991年开始共推出7个版本,V1~V3未用于商业授权。V4T开始商业授权,T表示16位Thumb指令,

    2024年02月08日
    浏览(45)
  • 嵌入式期末复习(四)简答题

    1.ARM公司全称是什么,商业模式是什么?列举ST公司常用的ARM内核单片机型号? (1)全称: Ad va nced RISC Machines ) (2)商业模式:为产品做设计,知识产权付费 (3)stm32f101c8t6、stm32f103rct6、stm32f104zet6 2.冯诺依曼结构和哈佛结构区别? (1)冯诺依曼结构:指令和数据合并在

    2024年02月02日
    浏览(42)
  • 【嵌入式系统】课程复习资料整理

    【嵌入式系统】课程复习资料整理 一、绪论 1.定义 从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密

    2024年02月03日
    浏览(46)
  • 嵌入式系统期末复习知识点整理(一)

    1-8答案: 1、嵌入性 专用性 计算机系统 2、专用计算机系统 3、系统能够在限定的相应时间内提供所需水平的服务 us~ms ms~s s级以上 4、嵌入式处理器、外围硬件设备、嵌入式操作系统(可选)、用户的应用软件系统 5、非实时系统、硬实时系统、软实时系统 6、将程序和数据存

    2024年02月05日
    浏览(58)
  • 嵌入式学习之C语言指针部分复习

    今天主要把C语言的指针部分再次认真的复习了一下,对于指针的整体框架有了更加深刻的理解,特别要重点区分函数指针,指针函数,数组指针,指针数组部分,对于这部分的应用非常重要,而且C语言指针部分是面试的重中之重,所以要加强练习才行。 今天的学习是充满动

    2024年02月12日
    浏览(38)
  • 嵌入式学习stm32基础知识(期末复习)

    1. 计算机的体系架构 冯诺依曼架构 ​ 在完整的计算机系统中,包含五个部分,储存器,运算器,控制器输入设备和输出设备。 改进的冯诺依曼架构 改进型架构的各模块的高速数据交换中心利用储存器这个大容量,极大的提高了效率。 哈佛架构 ​ 哈佛结构数据空间和地址

    2024年02月07日
    浏览(72)
  • 嵌入式原理与应用期末复习汇总(附某高校期末真题试卷)

    1、为保证在启动服务器时自动启动DHCP进程,应对( B )文件进行编辑。 A、 /etc/rc.d/rc.inet2 B、/etc/rc.d/rc.inet1 C、/etc/dhcpd.conf D、/etc/rc.d/rc.S 2、文件exer1的访问权限为rw-r–r–,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是( A )。 A 、chmod a+x g+w exer1

    2024年02月08日
    浏览(46)
  • 【期末复习】2021-20222南邮网络安全技术复习题

    1. 计算机安全的核心内容:机密性,完整性,可用性(选择判断) 其中 机密性 又包含数据机密性和 隐私性 隐私性 :保证个人可以控制和影响与之相关的信息,这些信息有可能被收集、存储、和泄露 2. 拒绝服务 可以阻止或禁止对通信设备的正常使用或管理。(选择) 3.

    2024年02月09日
    浏览(67)
  • 嵌入式系统设计师考试笔记之操作系统基础复习笔记二

    目录 3、任务管理 (1)嵌入式操作系统的任务管理可以分为 (2)进程 (3)线程 (4)任务 (5)任务的创建与中止 (6)任务的状态任务有三中基本状态: (7)任务控制块 TCB (8)任务的切换 (9)任务的调度 (10)实时系统调度 (11)任务互斥 (12)信号量 (13)任务同

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包