今天有幸参加学习,感谢何宾教授,感谢主办方STC。这么好的学习资源,而且免费,好安逸。笔者入门级学习,听课后,有做以下笔记,以加深记忆。
堆栈(stack) SP总是指向栈顶 堆栈存储:SP先加1,再存储数据 堆栈出:先出数据,SP再减1 堆栈有先进后出的特点 针对16位,32位数据,有大端小端存储的方式 大端:字节从高字节开始存 小端:字节从低字节开始存 程序flash存储器 PC指向下一条要执行的指令 复位后,PC内容为0x0000 最大容量不会超过0xffff,即不会超过64K 用来服务中断的服务程序入口地址放在存储单元低地址的地方,发生中断时,PC指向跳转的地址 程序存储器的特点:低压保护;对外不提供读,防止程序破解,程序要先擦才能写 数据flash与程序flash分开,下次下载程序,数据不会被覆盖 数据flash与Ram中数据不一样,数据flash掉电不会消失 Flash相对cpu,flash很慢,所以设置WT2~ET0,设置flash的擦除与编程时间,让两者匹配 接下来是RAM存储器 以stc15为例 基本RAM 256 Byte 扩展的+上面的256Byte = 4k RAM分为三个部分 直接寻址可以访问SFR 间接寻址可以访问RAM高128字节 为什么分4组,不用R0~R31,因为1~32要用5位。从R0~R8只用3位就可以了 通过RS0 RS1 赋4种值,在不同的时间,就可以分别访问这32个RAM 姚总: EEPROM触发寄存器 必须先发向寄存器IAP_TRIG 5A A5两个触发命令来触发擦除 关于flash电压,flash电压与mcu电压匹配 内部flash当EEPROM,每个扇区包含512字节 flash字节是FF,可以写。如是FF,必须擦除,才能写 软件把XFR打开后,一般不用再关 32位单片机内部结构 24位地址总线 32位数据总线 兼容8位16 32位 片内核心4K EDATA,扩展XDATA 8k,总共12k 24位的地址,它们的区分,不光能用指令来区分,还能根据其地址总线定义区分:其访问的是哪一个区域。 高8位表示访问的段空间,低16位表示访问段空间具体的存储单元位置 DMA的机制,可以不通过cpu,让内存与外设通信 32位寄存器文件,充分兼顾了32位 16位 8位 提供40个寄存器(以8位宽度计算) 其访问可以: 8位:按字节访问 16位:按字访问 32位:按双字访问
|