当前位置: 首页 > news >正文

建建建设网站首页鸟瞰图效果图制作

建建建设网站首页,鸟瞰图效果图制作,wordpress路径,wordpress转发301以下是针对提供的STM32F103x6启动代码的详细分析(中文): 1. 堆栈初始化 Stack_Size EQU 0x00000400 ; 定义栈大小为1024字节 (1KB) Heap_Size EQU 0x00000200 ; 定义堆大小为512字节作用: 分配独立的堆…

以下是针对提供的STM32F103x6启动代码的详细分析(中文):

1. 堆栈初始化

Stack_Size      EQU     0x00000400   ; 定义栈大小为1024字节 (1KB)
Heap_Size       EQU     0x00000200   ; 定义堆大小为512字节

作用:

  • 分配独立的堆(HEAP)和栈(STACK)内存区域
  • __initial_sp:栈顶指针(由硬件自动加载)
  • __heap_base和__heap_limit:堆的起始和结束地址

2. 中断向量表

__Vectors       DCD     __initial_sp       ; 地址0: 主堆栈指针初始值DCD     Reset_Handler      ; 地址4: 复位中断DCD     NMI_Handler        ; 地址8: NMI中断...                        ; 后续地址分配其他中断向量

关键特征:

  • 采用固定映射顺序(符合ARM Cortex-M3架构规范)
  • 前4字节必须是栈顶地址,第2个向量必须是复位中断
  • 包含所有STM32F103x6支持的中断源(如DMA、定时器、串口等)

3. 复位处理程序

Reset_Handler   PROCLDR     R0, =SystemInit   ; 调用系统初始化函数BLX     R0LDR     R0, =__main       ; 跳转到C运行时库初始化BX      R0                ; 最终调用main()

执行流程:

  • 调用SystemInit():初始化时钟/外设/内存控制器(需用户实现)
  • 跳转__main:C运行时库初始化(初始化全局变量/静态变量)
  • 最终进入用户的main()函数

4. 默认中断处理程序

Default_Handler PROC
WWDG_IRQHandler
PVD_IRQHandler
...                ; 所有中断默认跳转到死循环
B         .      ; 无限循环

关键设计:

  • 所有中断处理程序默认设置为弱符号([WEAK])
  • 用户可重写任何中断处理函数(只需定义同名函数)
  • 未处理的中断会进入无限循环(防止程序跑飞)

5. 堆栈初始化策略

IF :DEF:__MICROLIB   ; 微库模式EXPORT  __initial_spEXPORT  __heap_baseEXPORT  __heap_limit
ELSE                ; 标准库模式__user_initial_stackheap:LDR     R0, =Heap_MemLDR     R1, =(Stack_Mem + Stack_Size)LDR     R2, = (Heap_Mem + Heap_Size)LDR     R3, = Stack_MemBX      LR
ENDIF

两种工作模式:

  • 微库模式:直接使用预定义符号(适用于资源受限场景)
  • 标准库模式:通过__user_initial_stackheap()初始化堆栈
  • 寄存器映射:
    • R0 = 堆起始地址
    • R1 = 栈顶地址
    • R2 = 堆结束地址
    • R3 = 栈底地址

6. 文件结构

AREA    |.text|, CODE, READONLY   ; 代码段
AREA    RESET, DATA, READONLY     ; 向量表段
AREA    STACK, NOINIT, READWRITE  ; 栈空间
AREA    HEAP, NOINIT, READWRITE   ; 堆空间

存储器划分:

  • .text:存放可执行代码(只读)
  • RESET:中断向量表(物理映射到0地址)
  • STACK/HEAP:未初始化(.bss)的可读写内存区

重要特点总结

  1. 符合ARM Cortex-M3架构:
  • 向量表格式严格遵循ARM标准
  • 硬件自动加载SP和PC初始值
  1. 灵活的扩展机制:
  • 弱符号定义允许用户覆盖任何中断处理
  • SystemInit()提供硬件抽象接口
  1. 双模式内存管理:
  • 支持标准库和微库两种初始化方式
  • 堆栈大小可通过EQU指令灵活配置
  1. 启动安全保障:
  • 未定义中断默认进入死循环(防止未知中断导致跑飞)
  • 严格的8字节对齐(Preserve8)保证兼容性

提示:实际工程中需关注:

  • 根据SRAM大小调整堆栈配置
  • 在system_stm32f1xx.c中实现SystemInit()
  • 在stm32f1xx_it.c中实现需要的中断服务程序
  • 使用微库时可减少代码体积(但失去部分标准库功能)
http://www.yayakq.cn/news/988914/

相关文章:

  • 江苏网站建设联系方式电商网站设计公司优选亿企邦
  • 空间印象商业空间设计短视频搜索优化
  • 为什么企业要建设网站h5制作方法和步骤
  • 后湖做网站石家庄哪家公司做网络推广好
  • 网站对联广告代码东莞公司的网页怎么做的
  • 网络营销网站建设论文白云免费网站建设
  • 网站服务器租用价格 百度一下搜索网站排行
  • 合肥的网站建设河北沧州最新消息今天
  • 东莞建设网站综合服务平台php网站怎么做静态化
  • 网站怎么做关键词在哪做微信平台登录
  • 中小企业网络营销长春网站优化教程
  • 做k12网站多地进一步优化防控措施
  • 网站设计规划说明书视频号排名优化帝搜软件
  • 十大装修公司排名哪家最好广安seo
  • 网站的设计思想网站404页面查询
  • 做网站的财务需求昆明建设局网站
  • 公司网站开发实训报告百度搜索引擎下载免费
  • 深圳光明新区网站建设查询公司
  • 河北恒山建设集团网站乐营销网站
  • 大型网站化方案怎么给自己的网站推广
  • 为什么网站数量减少平面广告图片
  • 做网站简单还是写程序查网站备案
  • 国内wordpress有名的网站上海电商网站建设
  • 东陵网站制作wordpress主题模块添加图片
  • 手册设计网站it外包抽成
  • 电商网站建设方案模板网站开发的功能需求文档模板
  • 有没有代做模型的网站平面广告设计论文
  • 计算机网站建设好不好个人网站建设规划案例
  • 怎么能让我的网站被百度收录ps美工教程自学网
  • 个人如何做网站asp网站幻灯片不显示