
STM32
文章平均质量分 69
热情的坚果+
做过芯片验证,现在国内知名指纹公司做嵌入式开发。
展开
-
ARM芯片内部堆栈的理解及MAP文件的查看
STM32再启动的时候RAM首先分配给使用到的全局变量,及调用库占用的一些数据(不太清楚是什么数据),然后再将剩余的空间分配给Heap和stack。 ****以下是网上关于Heap和Stack的说:****(1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。 Malloc函数分配的地址在堆区。(3)全局区原创 2021-03-12 20:30:26 · 2186 阅读 · 0 评论 -
在ARM芯片中使用打印函数总结
**在ARM芯片中使用打印函数总结:**在使用的stdio.h库可以找到对应的函数原型1、printf函数原型:#pragma __printf_argsextern _ARMABI int printf(const char * __restrict /format/, …) attribute((nonnull(1)));*即:printf(const char format,…);发送format输出到标准输出例子:printf(“Copying Marker %04X and Da原创 2021-03-12 20:14:33 · 2059 阅读 · 0 评论 -
STM32芯片IAP升级机制详解
一、先了解ICP和ISP、IAP之间的区别:1、 ISP(In System Programing 在系统编程)的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。例如,我们开始接触到的STC51单片机的程序下载方式(点击上位机下载----->复位(断电)----->原创 2020-05-26 10:08:08 · 2761 阅读 · 5 评论 -
STM32的Flash地址是0x08000000,从0x00000000不可以?
这里写自定义目录标题为什么STM32从Flash地址0x08000000的启动而不是0x00000000?这是STM32F103ZE芯片存储空间的地址映射关系图。在MDK编译程序设置ROM和RAM地址时候发现:IROM1为片上程序存储器,即片上集成的Flash存储器,对该处理器Flash大小为512KB,即0x80000 地址区间为0x8000000~0x0807FFFFIRAM1为片上数据存储器,即片上集成的SRAM存储器,对该处理器RAM大小为64KB,即0x10000 地址区间为0x原创 2020-05-17 23:10:20 · 13359 阅读 · 7 评论