STM32的备份寄存器和控制状态寄存器 1 备份寄存器用于RTC时钟 RTC时钟可以在掉电以后继续计数,保证时间的延续,但是重新上电以后需要配置,保证之前的计数不会被清除,可以借助备份寄存器实现,备份寄存器掉电以后也可以保持. if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)   //检测备份区域寄存器的值 { RTC_Configuration();    //配置RTC Time_Adjust();             //调整时间,将UNIX…
首先转载:   STM32定时器的预装载寄存器与影子寄存器之间的关系 本文的说明依据STM32参考手册(RM0008)第10版:英文:http://www.st.com/stonline/products/literature/rm/13902.pdf中译文:http://www.stmicroelectronics.com.cn/stonline/mcu/images/STM32_RM_CH_V10_1.pdf 在STM32参考手册的第13.14章中,都有一张定时器的框图,下面是第14章中定时…
IA32寄存器 一个IA32CPU包含一组8个存储32位值的通用寄存器,这些寄存器用来存储整数数据和指针: 31-0 15-0 15-8 7-0 使用惯例 %eax %ax %ah %al 调用者保存 %ecx %cx %ch %cl 调用者保存 %edx %dx %dh %dl 调用者保存 %ebx %bx %bh %bl 被调用者保存 %esi %si 无 无 被调用者保存 %edi %di 无 无 被调用者保存 %ebp %bp 无 无 不得占用 %esp %sp 无 无 不得占用 第一行…
这篇文章不是从0开始的,前面还有一些汇编基础指令以及进制,我都没写,时间问题,还是今天空闲,我才想补一下博文,后面我陆续会把前面知识点渐渐补上.我不会重0基础讲起,中间会以.汇编.C.C++交叉的形式讲解,实战或者学习中才能更好的提升自己! EFLAGS寄存器 这些标记出来的标志位十分重要,如果对于逆向开发,这些是需要课在脑子里的,可以不强背,实战中运用熟悉就自然记来了,为了方便描述,仅以8位来描述 演示之前,请读者参照下方红色字体,进行简单设置一下,后面都参考该格式. OD中展示一遍效果,AL…
[R0~R15寄存器组] Cortex-M3处理器拥有R0~R15的寄存器组,如: [R0~R12通用寄存器]R0~R12都是32位通用寄存器,用于数据操作.其中: R0~R7为低组寄存器,所有的指令都可以访问. R8~R12为高组寄存器,只有32位Thumb2指令和很少的16位Thumb指令能访问. [R13堆栈指针SP]Cortex-M3拥有两个堆栈指针,然而它们是banked,任一时刻只能使用其中的一个. 主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理(包括中…
1. 研究STM3的备份寄存器,注意,如果要测试这个例程的话,VBAT不能和VDD接一起,必须分开. 2. 理解,备份寄存器可以有VBAT独立供电,也就是外接电池,备份寄存器在VBAT供电情况下,如果发生系统复位(按键复位)和上电复位,备份寄存器的值可以保持. 3. 代码如下: int main(void) { #ifdef DEBUG debug(); #endif /* System Clocks Configuration */ RCC_Configuration(); /* NVIC c…
例子为单片机的"Hello World"级的流水灯实验--虽然只有一个,其中并不是将完整的代码给出,只是给出关键部分来说明"如何调用ST公司的的库来完成对硬件的控制,以及对库文件代码进行跟踪和分析至)    {        GPIO_SetBits(GPIOB,GPIO_Pin_5);     );              );              ,    GPIO_Speed_2MHz,    GPIO_Speed_50MHz} GPIOSpeed_TypeDe…
1.MSR和MRS指令介绍 MRS 指令:  对状态寄存器CPSR和SPSR进行读操作.通过读CPSR可以获得当前处理器的工作状态.读SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有SPSR寄存器). MSR指令:    对状态寄存器CPSR和SPSR进行写操作.与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式.或者允许/禁止IRQ/FIQ中断等. 2.CPSR 程序状态寄存器(current program status regist…
下面将要介绍的是一组非常非常重要的寄存器,即 CS:IP . CS:IP 两个寄存器指示了 CPU 当前将要读取的指令的地址,其中  CS 为代码段寄存器,而   IP 为指令指针寄存器 . 什么叫做指示了 CPU 当前将要读取的指令呢?在 8086  CPU 中,为什么  CPU  会自动的执行指令呢? 这些指令肯定是存放在内存中的,但是  CPU  怎么知道这些指令存放在内存的那个位置呢? 比如,我有下面的两条指令要执行: MOV AX,1234H MOV BX,AX 而假设这两条指令在内存…
void call_func( void (*func)(void)){ (*func)(); } void setup() { // put your setup code here, to run once: volatile uint8_t *PA=(volatile uint8_t *)0x103; Serial.begin(); Serial.println((int)PA);//0x103 Serial.println(*PA); //内容是PINJ Serial.println(P…