12 2018 档案
摘要:为什么C语言需要栈 1.概念解析 1.1 栈 (1)栈后进先出 栈顶 SP 栈底 1.2 空/满栈 SP指向的地址已经被占了,是满栈 SP指向的位置是空的,叫空栈 ARM使用的是满栈 1.3 升/降栈 移动的方向来确定是升栈还是降栈 从 低向高 叫升栈 从高到低 叫降栈 ARM 采用降栈 1.4 栈
阅读全文
摘要:1.设置lock time 2.设置分频系数 3.设置CPU到异步工作模式 4.设置 FCLK 了解 芯片的时钟原理图,以及寄存器的作用 了解芯片的晶振频率,锁相环,分频系数,以及有哪些时钟
阅读全文
摘要:1. cp15 寄存器 disable Icache 和 Dcache . disable_MMU: MCR p15,0,r0,c7,c7,0 MRC p15,0,r0,c1,c0,0 bic r0,r0,#0x00000007 mcr p15,0,r0,c1,c0,0
阅读全文
摘要:#define pWTCON 0x53000000disable_watchdog: ldr r0, =pWTCON mov r1, #0x0 str r1, [r0]
阅读全文
摘要:bootloader 和操作系统都是工作在svc模式下 /* * set the cpu to SVC32 mode */ mrs r0,cpsr bic r0,r0,#0x1f orr r0,r0,#0xd3 msr cpsr,r0
阅读全文
摘要:1. reset 中断向量表 2. 进入reset (1) 设置svc32 模式 (2) flash I/D caches (3)disable MMU 和 cache (4)2440 没有onenand (5)bl lowlevel_init 接 (5) 1.初始化时钟 2. 初始化UART,串口
阅读全文
摘要:1. CP15 协处理器 16组寄存器 mcr 写 mrc (rgeister CP15) 读 CP15 到 Register mrc p15,0,c0,c0,0
阅读全文
摘要:伪指令 本身并没有所对应的机器码 它只是在编译的时候起作用,或者转换为其他的实际指令来运行 global ascii byte word data equ align @ 下面的例子是在数据段存放数据 .section .data hello: .ascii "helloworld" bh: .by
阅读全文
摘要:.text .global _start _start: mov r0,#0xff str r0,[r1] ldr r2,[r1]
阅读全文
摘要:.text .global _start _start: mrs r0,cpsr orr r0,#0b100 msr cpsr,r0
阅读全文
摘要:lsl 左移 .text .global _start _start: mov r1,#0b1 mov r1,r1,lsl#2 ROR循环右移 .text .global _start _start: mov r1,#0b11 mov r1,r1,ror#1
阅读全文
摘要:.text .global _start _start: mov r1,#2 cmp r1,#1 bl func1 @bl能保存下一条指令的位置到lr寄存器里面,b不能 mov r1, #2 cmp r1, #3 func1: mov r1,#2 mov r2,#3 mov pc,lr @PC指针的
阅读全文
摘要:.text .global _start _start: mov r1,#1 mov r2,#2 cmp r1, r2 bgt branch1 add r3,r1,r2 b end branch1: sub r3,r1,r2 end: nop C 语言: if(a>b) a = a- b else
阅读全文
摘要:汇编的作用:1.对芯片进行初始化 2. 和C混合编程提升C的运行效率 .section .data < 初始化的数据> .section .bss <未初始化的数据> .section .text .globl _start _start: <汇编代码> 建立汇编代码: 例子: .text .glo
阅读全文
摘要:1. 安装centos7,启动图像化界面。 参考:https://blog.csdn.net/qq_23014435/article/details/74347925 # systemctl get-default //获取当前系统启动模式 更改模式命令:systemctl set-default
阅读全文