MSR/MRS指令
2017-10-21
这两条指令读写程序状态寄存器。可用于开关中断、切换模式等。下述内容参考自ARMARM 2005,适用于ARMv6及以下构架。1 PSR位类型Reserved bits 保留位保留给将来扩展。User-writable bits 用户模式可写位任何模式都可以写,包括N,Z,C,V,Q,GE[3:0],
arm ABI
2018-1-1
严格的讲,旧的和新的ARM ABIs都是ARM EABI specification的子集。但是常常使用EABI表示新的,OABI或者old-ABI表示旧的。但是仍然有一些程序有时将old ABI二进制称为EABI。GCC视角新ABI不仅是新的ABI规范,也是新的GCC目标。新的(EABI)实际就是
AAPCS
2018-1-1
5.1 Machine Registersr0-r3用于参数传递,r0用于返回值。r12用于Intra-procedure-call scratch register。这几个寄存器是caller-saved register。被调用者可以随意修改它们,在返回前不需要恢复其调用前的原值。r4-r11,
中断
2017-10-29
CPU核只有一个中断引脚和一个快速中断引脚。还需要一个中断控制器,中断控制器是外围设备,用于实现多中断引脚、优先级控制等。1 Interrupt Controller中断控制器属于外围设备,外接各中断引脚,内接CPU核,控制中断的产生和优先级等。中断处理框图如下:s3c2440通过下列寄存器来控制中
Nested interrupt
2017-11-2
本文针对s3c2440 CPU,ARM920T core, ARMv4t architecture. 现代的处理器和中断控制器有很大不同,对嵌套中断和其它特性支持的更好,有机会后面再学习。中断模式下被打断的话,则会将PC拷贝到LR,原来的LR被覆盖了。为了解决这个问题,ARMv4t增加了System
时钟与电源管理
2017-11-4
本内容来自S3C2440手册第7章Clock & Power management.1 Overview时钟和电源模块包括3个部分:时钟控制、USB控制和电源控制。时钟控制逻辑能够产生:CPU用的FCLK、AHB总线用的HCLK、APB总线用的PCLK。包括两个锁相环(PLLs),一个用于FCLK、
PWM Timer
2017-11-5
本文来自s3c2440手册第10章,PWM Timer.1 Overview有5个16位定时器,Timer 0,1,2,3有PWM输出功能。Timer 4是内部定时器,没有输出引脚。Timer 0有一个dead-zone generator。Timer 0,1共享一个8位预分频器,Timer 2,3
RTC
2017-11-6
本文来自S3C2440手册第17章:Real Time Clock1 OverviewRTC可以在系统断电时由电池供电。RTC可以以Binary Coded Decimal (BCD)格式传输8位数据到CPU,使用STRB/LDRB指令。数据包括秒/分/时/日/星期/月和年。RTC使用外部32.76
Watchdog timer
2017-11-6
1 介绍看门狗定时器用来当系统由于噪声或者系统错误而malfunction时将系统恢复过来。它可以用作一个普通的16位内部定时器,来产生中断请求。看门狗定时器产生128个PCLK周期的复位信号。看门狗定时器使用PCLK作为时钟源,首先经过一个8位预分频器,然后再分频一次,再分频系数可为16, 32,
arm除法指令
2017-11-7
ARM直到ARMv7才支持除法指令,支持情况如下:Support for the SDIV/UDIV instructions is mandatory in ARMv7-M and for the Thumb instruction set in ARMv7-R. It is optional f
Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.