-
在SRAM调试代码
在SRAM调试代码 优点下载的速度比较快, 频繁改动的程序可以节省很多时间stm32的擦写次数为1万次不改写内部FLASH的原有程序内部FLASH被锁定的芯片可以下载到RAM上, 进行解锁对Flash解锁 使用外部SRAM空间会增大,但是读取的速度会比内部Flash速度慢, 运行总时间增加, 并且无法从外部Flash启动, 并且复制的过程比较复杂STM32的启动方式首先从0地址去除栈指针的初始值, 就是栈顶指针的地址, 之后从0x00000004获取PC指针的初始值, 指向复位之后的第...…
-
读写内部Flash
读写内部Flash内部Flash的结构实际上就是一个内部存储器, 用于储存代码, 掉电不会丢失下载过程: 读写内部flash的程序放在内存, 之后把程序写入flashCortex-M3使用ICode与Flash连接, 有三十二跟数据线与地址线, 所以读取比外部SPI-FLASH速度快同时可以进行上锁, 防止程序被抄袭 系统存储区, 用户不可以访问, ISP支持, 以及芯片保护 选项字节, 存储的是芯片保护以及电压操作, 待机/停机复位, 软件/硬件看门狗功能, 共16字节, 可以修改 ...…
-
MDK编译过程
MDK编译过程理解芯片的原理, 制作IAP等编译: 得到.o文件, 只要内容是源文件编译得到的机器码, 数据以及调试信息链接: 把.o文件链接成为.axf或.elf文件格式转换: 一般来说Windows以及Linux使用链接器直接生成可执行映像文件elf之后内核根据该文件信息进行加载就可以了, 在单片机需要转化为.bin或者.hex文件, 交给下载器下载到flash或者ROM中 调用的编译器以及所在的文件夹 armar: .o文件打包成lib文件 armasm: 编译汇编文件 ar...…
-
电源管理
电源管理电源监控器stm32主要是从VDD获取电压, 电压监控器会对他进行监控, 电压低的时候会进行处理, 保证系统正常的运行 上电复位以及掉电复位检测到电压低于阈值VPOR以及VPDR的时候, stm32会自动复位, 防止由于电压不足导致严重的后果, 在电压开始低于VPOR的时候(1.92V)stm32会进入上电复位, 当VDD电压持续上升至大于VPOR的时候, 芯片开始运行, 当电压低于VPDR的时候(1.88V)进入掉电 可编程电压监测器PVD也是一直在检测VDD, 可以自己设置...…
-
day6分割编译与中断处理
day6分割编译与中断处理..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 make.bat, 使用make命令的时候实际上实行的命令/* bootpackのメイン */#include <stdio.h>void io_hlt(void);void io_cli(void);void io_out8(int port, int data);int io_load_eflags(void);void io_store_eflags(...…
-
day6分割编译与中断处理
day6分割编译与中断处理..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 make.bat, 使用make命令的时候实际上实行的命令/* bootpackのメイン */#include <stdio.h>void io_hlt(void);void io_cli(void);void io_out8(int port, int data);int io_load_eflags(void);void io_store_eflags(...…
-
day5结构体文字显示与GDT/IDT初始化
day5结构体文字显示与GDT/IDT初始化 从之前保存在内存中的位置获取信息 binfo_scrnx = (short *) 0x0ff4; binfo_scrny = (short *) 0x0ff6; binfo_vram = (int *) 0x0ff8; xsize = *binfo_scrnx; ysize = *binfo_scrny; vram = (char *) *binfo_vram;SCRNX EQU 0x0ff4 ; 分辨率xSCRNY EQU 0x0f...…
-
day5结构体文字显示与GDT/IDT初始化
day5结构体文字显示与GDT/IDT初始化 从之前保存在内存中的位置获取信息 binfo_scrnx = (short *) 0x0ff4; binfo_scrny = (short *) 0x0ff6; binfo_vram = (int *) 0x0ff8; xsize = *binfo_scrnx; ysize = *binfo_scrny; vram = (char *) *binfo_vram;SCRNX EQU 0x0ff4 ; 分辨率xSCRNY EQU 0x0f...…