ARM汇编
ARM汇编基本概念汇编语言,又叫助记符语言。由编译器产生最佳代码,尤其是Thumb
ARM汇编指令ARM汇编指令的特点
大多数指令都是单周期
大多数指令都可以条件执行(if else / switch case)
条件码 查看
操作码条件助记符标 志含 义0000EQZ=1相等0001NEZ=0不相等0010CS/HSC=1无符号数大于或等于0011CC/LOC=0无符号数小于0100MIN=1负数0101PLN=0正数或零0110VSV=1溢出0111VCV=0没有溢出1000HIC=1,Z=0无符号数大于1001LSC=0,Z=1无符号数小于或等于1010GEN=V有符号数大于或等于1011LTN!=V有符号数小于1100GTZ=0,N=V有符号数大于1101LEZ=1,N!=V有符号数小于或等于1110AL任何无条件执行 (指令默认条件)1111NV任何从不执行(不要使用)
分支跳转指令ARM跳转方式
发生异常
使用分支指令
直接向PC赋值
支持的3条分支指令
...
ARM体系结构与汇编
ARM体系结构与汇编ARM(Adavanced RISC Machine)
RISC 精简指令集多数指令单周期完成,大多数ARM核都实现两种指令集,32-bit ARM 指令集和 16-bit Thumb 指令集
ARM的三级流水线PC寄存器:保存的是当前正在执行的指令的地址
ARM三级流水线包括:
取指(fetch)
解码(decode)
执行(execute)
在ARM指令集下执行三步操作,要从当前正在执行指令的地址进行偏移,每次偏移4个字节,而Thumb指令集每次偏移2个字节。
偏移量要对齐,防止出现对内存的非对齐访问!!!
详情参考https://blog.csdn.net/FJDJFKDJFKDJFKD/article/details/108730380
指令周期数(CPI)= 单位周期内执行的指令条数
6个指令周期,4条指令 CPI = 6/4 = 1.5
并不是流水线越长,cpu的执行效率就越高,要根据指令的平均执行周期数决定。
ARM9及以后的版本使用的都是哈佛体系结构,ARM9中的流水线为5级。
ARM编程模型ARM的工作模式ARM有七种工作模式,可 ...
北京蓝拓扑科技笔试题
北京蓝拓扑科技笔试题下面哪点不是嵌入式操作系统的特点A. 内核精简 B. 专用性强 C.功能强大 D. 高实时性
答案
C
以下叙述中正确的是: A. 宿主机与目标主机之间只需要建立逻辑连接即可
B. 在嵌入式系统中,调试器与被调试器程序一般位于同一台机器上
C. 在嵌入式系统开发中,通常采用的是交叉编译器
D. 宿主机与目标机之间的通讯烦恼歌是只有串口和并口两种
答案
C. 在嵌入式系统开发中,通常采用的是交叉编译器
Linux中的文件/目录权限设置命令是什么?A. chown B. mkdir C. chmod D. pwd
答案
C. chmod
0x17&a ...
安为科技笔试题
安为科技笔试题用C语言编程语言写一段程序程序的功能是找出两个集合的不同元素。例如,两个集合A和B,程序可以找出在集合A中,但不在集合B中的元素。
答案
1234567891011121314151617181920212223242526272829303132333435363738394041#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100int main() { int A[MAXSIZE], B[MAXSIZE]; int m, n; int i, j; printf("请输入集合A的元素个数m:"); scanf("%d", &m); printf("请输入集合A的元素:\n"); for (i = 0; i < m; i++) { scanf("%d", &A[i]); } printf(&quo ...
嵌入式进阶-A53
嵌入式进阶-A53S5P6818简介arm core -> 三星公司 -> 九鼎科技
开发结构
核心板包括 cpu 、ddr3(内存) 、emmc(硬盘) 、pmu(power managment unit);
底板包括外设、usb、sd、beep、led、key、lcd、headphone、pice、ethernet… …
板卡SOC(system on chip) 片上系统CPU(A53) + DDR(内存1G) + EMMC(外接硬盘8G) + PMU + LCD + TS(触摸板) + SOUND(声卡) + net(网卡) + … …
Linux5大管理系统mm、文件系统,网络管理子系统、进程管理子系统、进程调度子系统
软件的启动流程Linux启动流程:先启动(Uboot)—-> uImage/zImage(vmlinux/vmlinuz)—-> 再启动根文件系统(rootfs)
三大系统软件:Uboot
kernel
根文件系统
先搞定ARM体系结构与汇编(编程)
搭建各种环境安装串口工具在windows安装
大椽科技笔试题
大椽科技笔试题写一个“标准"宏 MIN , 这个宏输入两个参数并返回较小的一个
答案
#define MIN((a),(b)) (((a)<(b))? (a):(b))具体参考下面的文章:https://blog.csdn.net/qq_31073871/article/details/90677378
进程和线程的差别
答案
概念上的区别:进程是操作系统分配资源的基本单位,它是程序执行的一个实例,具有独立的运行空间,是一次程序运行的基本单位,而线程是进程的一个实体,它是进程中的一个单一顺序控制流,也是一个独立的有资源分配的基本单位。功能上的区别:进程有自己的地址空间,而线程可以共享进程的地址空间;进程之间的切换比较耗时,而线程之间的切换则比较快;进程有自己的堆栈空间,而线程共享一个堆栈空间;进程之间的通信比较复杂,而线程之间的通信则比较简单。开销上的区别:进程的开销比较大,而线程的开销比较小。
...
北京中科睿信笔试题
北京中科睿信笔试题列出若干C语言关键字
答案
break、case、char、const、continue、default、do、double、else、enum、extern 、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while
列出C语言常见数据类型、所占长度及表示范围
答案
数据类型所占长度表示范围char1-128~127或0~255int4-2147483648~2147483647float41.2E-38~3.4E+38double82.3E-308~1.7E+308
链表和数组有什么区别
答案
...
航天二院笔试题
航天二院笔试题C语言基础选择题下列程序执行后的输出结果是1234567891011main(){ int m[][3] = {1,4,7,2,5,8,3,6,9}; int i, k = 2; for(i = 0; i < 3; i++) { printf("%d", m[k][i]); }}A 456 B 258 C 369 D 789
答案
C
设己定义 j 为 int 类型变量,则以下 for 循环语句1234for(i = 0; j = -1, j = 1; i++, k++) printf("****\n"):A 456 B 258 C 369 D 789
答案
A
C语言函数返回值的类型是由()决定的A) re ...
北京君正笔试题
北京君正笔试题常规题用预处理指令#define写一个两个变量相乘的宏函数
答案
#define MULT(A, B) (A) * (B)
用预处理指令#define声明一个常数,用以表明 8GByte 的常数
答案
#define 8GNUM 8*1024*1024
关键字volatile有什么含意?
答案
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。volatile 提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如 果没有 volatile 关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。所 ...