ARM-寄存器位操作,电路图分析,keil5.0配置

寄存器的位操作

一般内核中存储器指的是寄存器。
汇编指令集直接操作的是寄存器。
CPU处理的位数,就是一个寄存器的空间大小,即一个寄存器可以存储的数据宽度。

位操作

(1)位运算符:作用对象是对单个位bit操作
与:&
或: |
非(取反): ~
异或: ^
位左移: <<
位右移: >>

(2)位置1 、位清零操作
eg:
4字节32位:
0b0000 0000 0000 0000 0000 0000 0000 0000
第31位------------------------… -------------------------第0位

  • 位置1
  1. unsigned int a; 将第3位置1,保证其他位不变
    0x8 = 0000 1000
    a = a | 0x8; 或 a |= 0x8;
    a |= (0x1 << 3);

  2. unsigned int a; 将第27位置1,保证其他位不变
    a = a | (0x1 << 27); 或 a |= (0x1 << 27);

  • 位清零
  1. unsigned int a; 将第3位清零,保证其他位不变
    a &= (~0x8);
    a = a & (~(0x1 << 3));
    a &= (~(0x1 << 3));

  2. unsigned int a; 将第27位清零,保证其他位不变
    a = a & (~(0x1 << 27));
    a &= (~(0x1 << 27));

  • 异或 ^:不同为1,相同为0
    0 ^ 1 = 1
    1 ^ 1 = 0

    0 ^ 0 = 0
    1 ^ 0 = 1

位域操作

位域:几个连续的位,称为位域


0011 1000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0111
(1)unsigned int a; 将第[29:27]位置1,保证其他位不变
a = a | (0x7 << 27);
a |= (0x7 << 27);


0000 0000 0000 0000 0000 0000 0000 0111
0011 1000 0000 0000 0000 0000 0000 0000
1100 0111 1111 1111 1111 1111 1111 1111

(2)unsigned int a; 将第[29:27]位清零,保证其他位不变
a = a & (~(0x7 << 27));
a &= (~(0x7 << 27));


(3)unsigned int a; 将第[29:27]位修改101,保证其他位不变
0010 1000 0000 0000 0000 0000 0000 0000
ox7 = 0b0000 0111
0x5 = 0b0000 0101

  1. 把[29:27]位域先清零
    a = a & (~(0x7 << 27));
  2. 把0x5左移27位
    a = a | (0x5 << 27);

书写误区:注意运算符的优先级:& > |
a = a & (~(0x7 << 27)) | (0x5 << 27);正确
a &= (~(0x7 << 27)) | (0x5 << 27); 错误

电路图分析

电路图分析的顺序:从下到上.
外设 -》 丝印 -》 网络标号 -》 核心板(SOC) -》 数据手册datasheet -》 寄存器

  • 丝印:电路板上器件的标识,通过标识可以在原理图上找到器件对应的局部电路原理图。
    R-电阻:R1,R3
    C-电容:C1,C2
    L-电感:L1,L4
    U-芯片:U0,U1
    X-晶振:X1,X2
    J-接插件 :J0,J2

  • 网络标号:网络标号相同,表示两个引脚通过导线相连,具有相同的电气连接属性。
    在这里插入图片描述

Keil

Keil简介

(1)Keil是美国Keil Software公司出品的基于C语言软件开发的集成开发环境IDE(与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势)。Keil公司2005年由ARM公司收购,而后ARM Keil推出基于μVision界面,用于调试ARM7,ARM9,Cortex-M内核的MDK-ARM开发工具,用于为控制领域的开发。
(2)Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
注:集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。

Keil 5.0工程创建

按照一下步骤执行:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
或者使用一下方式添加 程序.c
或者ctrl+n创建新的文件,ctrl + s保存时自动添加

Keil 5.0链接脚本配置

在这里插入图片描述
在这里插入图片描述

Keil 5.0交叉编译工具配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

工程创建 start.s 调试

在这里插入图片描述
在这里插入图片描述

.text
.globl _start

_start:
	
	mov r0,#0x1
	
loop:
	b loop
	
.end

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值