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

购物网站模板html怎样在百度上发布免费广告

购物网站模板html,怎样在百度上发布免费广告,做良心网站,临沂小学网站建设最近在准备面试相关 顺便复盘总结一下之前的内容 启动文件在基于ARM的芯片是很重要的组成部分,它主要负责完成芯片上电启动时的一系列初始化工作和各种异常及中断的入口地址。 也是理解bootloader自举的关键点,所以需要理解一下 1. 向量表定义 启动文件…

最近在准备面试相关 顺便复盘总结一下之前的内容
启动文件在基于ARM的芯片是很重要的组成部分,它主要负责完成芯片上电启动时的一系列初始化工作和各种异常及中断的入口地址。
也是理解bootloader自举的关键点,所以需要理解一下

1. 向量表定义

启动文件的开头部分定义了中断向量表,它是一个存储中断服务程序入口地址的数组。在 STM32F103 中,中断向量表包含了初始堆栈指针(Initial Stack Pointer,ISP)和各种异常及中断的入口地址。

; Vector Table Mapped to Address 0 at ResetAREA    RESET, DATA, READONLYEXPORT  __VectorsEXPORT  __Vectors_EndEXPORT  __Vectors_Size__Vectors 		DCD     __initial_sp               ; Top of StackDCD     Reset_Handler              ; Reset HandlerDCD     NMI_Handler                ; NMI HandlerDCD     HardFault_Handler          ; Hard Fault Handler; 其他异常和中断向量...
__Vectors_End
__Vectors_Size  EQU  __Vectors_End - __Vectors

首先,里面设计四个汇编语言伪指令,先说明一下伪指令的功能

-1. AREA 伪指令用于定义一个代码段或数据段,在程序的组织和内存管理中起着重要作用

语法
AREA 段名, 属性1 [, 属性2, ..., 属性n]属性:用于指定该区域的特性,常见的属性有以下几种:
CODE:表示该区域是代码段,存储程序的指令代码,通常具有只读和可执行的属性。
DATA:表示该区域是数据段,存储程序中使用的数据,如变量、常量等。
READONLY:指定该区域是只读的,不允许进行写操作。
READWRITE:指定该区域是可读写的。
ALIGN = n:指定该区域的起始地址按 n 字节对齐,n 通常是 2 的幂次方,如 1、2、4、8 等。
NOINIT:表示该区域的数据不需要初始化,通常用于定义未初始化的数据段。
。

在这里定义了一个名为 RESET 的属性为只读的数据段

  • 2.EXPORT 伪指令的主要作用是将符号(比如变量、函数等)导出为全局符号,这样一来,这个符号就能够被其他汇编文件或者链接单元访问。在模块化的程序设计中,各个模块可能会被分别编译,然后再通过链接器将它们组合成一个完整的可执行文件。借助
    EXPORT 指令,不同模块之间就可以共享某些符号,从而实现模块间的交互与协作。
语法
EXPORT 符号名 [, WEAK]
符号名:这是需要被导出的符号的名称,它可以是变量名、函数名等。符号名要符合汇编语言对于标识符的命名规则。
[WEAK](可选):这是一个可选的修饰符。当使用 WEAK 修饰时,表示该符号是一个弱符号。弱符号意味着如果在其他地方有相同名称的强符号定义,链接器会优先使用强符号;只有当没有强符号定义时,才会使用这个弱符号。

**在这里是输出了3个共享变量,使其成为全局变量。分别是__Vectors向量表/数组的起始地址和结束地址__Vectors_End 向量表大小__Vectors_Size **

  • 3.DCD 是 “Define Constant Doubleword” 的缩写,意思是定义双字(32 位)常量。它的主要功能是在内存中分配一定的存储空间,并将指定的数据(通常是 32 位的值)存储到该空间中。
语法
[标号:] DCD 表达式1 [, 表达式2, ..., 表达式n]
标号(可选):为当前存储单元指定一个名称,方便在程序的其他地方引用该地址。标号需遵循汇编语言关于标识符的命名规则。
表达式:可以是常量、变量地址、表达式计算结果等,每个表达式代表一个 32 位的数据。多个表达式之间用逗号分隔,表示依次在内存中存储这些数据。

在这个示例中,DCD 指令用于定义中断向量表,依次存储了初始堆栈指针和各个中断处理函数的入口地址。当发生相应的中断时,系统会根据中断向量表中的地址跳转到对应的中断处理函数执行。

  • 4.EQU伪指令 euqate缩写 用于给一个符号名赋予一个特定的值,在后续的程序里,这个符号名就可以当作该值的替代来使用。
语法
符号名 EQU 表达式
符号名:是用户自定义的一个标识符,用来代表后面的表达式的值。它需遵循汇编语言关于标识符的命名规则,通常由字母、数字和下划线组成,且不能以数字开头。
表达式:可以是一个常量、数值、地址、寄存器编号或者由它们通过运算符组合而成的式子。

中断向量表的地址这么定义好了

2.堆栈初始化

; Stack ConfigurationAREA    STACK, NOINIT, READWRITE, ALIGN=3
__stack_size    EQU     0x00000400
__initial_sp
Stack_Mem       SPACE   __stack_size
__top_of_stackHeap_Size       EQU     0x00000200AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limitPRESERVE8THUMB

出现了新的伪指令是SPACE

  • 5.SPACE 伪指令是一种用于为程序预留存储空间的重要工具,
语法
label SPACE count
label:可选参数,用于标识预留空间的起始地址,后续可通过该标签引用这块预留的内存区域。
count:必填参数,指定要预留的字节数。

在这里,为Stack_Mem栈预留__stack_size大小的空间, __initial_sp 写在这里如何解释为栈的起始地址, 同问,__top_of_stack为啥是栈顶的地址

PRESERVE8、THUMB指令8字节对齐
THUMB:伪指令,表明从这里开始的代码将使用 Thumb 指令集进行汇编。这两个简单介绍即可

3. 复位处理函数
AREA    |.text|, CODE, READONLY; Reset handler
Reset_Handler   PROCEXPORT  Reset_Handler             [WEAK]IMPORT  __mainIMPORT  SystemInitLDR     R0, =SystemInitBLX     R0               LDR     R0, =__mainBX      R0ENDP

复位处理函数Reset hander 是芯片上电复位后执行的第一个函数,它主要完成系统时钟配置、初始化数据段等工作,然后跳转到用户的主函数。

  • 6.伪指令 PROC和ENDP 用于定义一个子程序,这里定义了Reset_Handler子程序
  • 7.IMPORT伪指令用于导入外部符号,这里导入了__main和SystemInit函数
  • 8.LDR指令将函数地址加载到寄存器R0中,
  • 9.BLX和BX用于调用函数。
  • 在这里插入图片描述
    在这里插入图片描述
4. 异常和中断处理函数
; Dummy Exception Handlers (infinite loops which can be modified)NMI_Handler     PROCEXPORT  NMI_Handler                [WEAK]B       .ENDP
HardFault_Handler\PROCEXPORT  HardFault_Handler          [WEAK]B       .ENDP

B . B表示跳转指令 .b表示当前地址 表示

5. 数据段初始化

在复位处理函数中,通常会调用一些函数来初始化数据段(如 .data 和 .bss 段),确保全局变量和静态变量能够正确初始化。不过,这些代码可能在链接器脚本或其他库文件中实现,启动文件中一般不直接体现。

比如STM32 链接器脚本的处理位置在
在这里插入图片描述

综上所述,STM32F103 启动文件通过定义中断向量表、初始化堆栈、实现复位处理函数和异常中断处理函数等,为芯片的正常启动和运行提供了必要的基础。

根据AN2606应用手册,
bootloader 存储在STM32设备的系统存储器,是由ST在生产线期间写入的,主要任务是下载应用程序到内部Flash通过可支持的接口(如USART、CAN、USB、I2C、SPI)

通用的bootloader描述
4.1 bootloader激活
4.2 bootloader 识别
4.3 bootloader连接要求
4.4 bootloader内存管理
4.5 UART波特率检测
4.6 编程约束
4.7 exitsecurememory 特性

实际上,STM32 通过启动模式选择,程序从哪里启动,三个选项,闪存,系统存储器(内置ST写的bootloader),或SRAM(适合调试阶段,快速加载和运行代码,无需烧录到内存,程序大小需要不超过SRAM大小)

写的有点枯燥 ,暂时写这么多吧


文章转载自:
http://xenodocheum.rtzd.cn
http://leninism.rtzd.cn
http://guff.rtzd.cn
http://distillable.rtzd.cn
http://herself.rtzd.cn
http://interregnum.rtzd.cn
http://swizzle.rtzd.cn
http://focalization.rtzd.cn
http://mistletoe.rtzd.cn
http://undistorted.rtzd.cn
http://cepheus.rtzd.cn
http://ascending.rtzd.cn
http://nembie.rtzd.cn
http://afterglow.rtzd.cn
http://curtsey.rtzd.cn
http://overstudy.rtzd.cn
http://spruik.rtzd.cn
http://erratum.rtzd.cn
http://styliform.rtzd.cn
http://apodosis.rtzd.cn
http://polymorph.rtzd.cn
http://proximate.rtzd.cn
http://jetport.rtzd.cn
http://overfly.rtzd.cn
http://tridecane.rtzd.cn
http://desiccator.rtzd.cn
http://pontic.rtzd.cn
http://miscalculation.rtzd.cn
http://femineity.rtzd.cn
http://legator.rtzd.cn
http://overage.rtzd.cn
http://corrodent.rtzd.cn
http://weekday.rtzd.cn
http://truculence.rtzd.cn
http://fulminate.rtzd.cn
http://inoculation.rtzd.cn
http://photopositive.rtzd.cn
http://recelebration.rtzd.cn
http://deplete.rtzd.cn
http://druidical.rtzd.cn
http://unmask.rtzd.cn
http://succinyl.rtzd.cn
http://phylloxanthin.rtzd.cn
http://deuteragonist.rtzd.cn
http://prosobranch.rtzd.cn
http://pantechnicon.rtzd.cn
http://orrin.rtzd.cn
http://fou.rtzd.cn
http://correspondent.rtzd.cn
http://autosome.rtzd.cn
http://opener.rtzd.cn
http://discord.rtzd.cn
http://unstirred.rtzd.cn
http://copepod.rtzd.cn
http://humic.rtzd.cn
http://smorzando.rtzd.cn
http://launce.rtzd.cn
http://talkie.rtzd.cn
http://oxyphilic.rtzd.cn
http://spurge.rtzd.cn
http://estreat.rtzd.cn
http://tokology.rtzd.cn
http://registry.rtzd.cn
http://skidproof.rtzd.cn
http://onychophagia.rtzd.cn
http://minikin.rtzd.cn
http://unseen.rtzd.cn
http://impicture.rtzd.cn
http://coatrack.rtzd.cn
http://syncline.rtzd.cn
http://nance.rtzd.cn
http://duplicature.rtzd.cn
http://hypoderma.rtzd.cn
http://murrey.rtzd.cn
http://genial.rtzd.cn
http://minnesotan.rtzd.cn
http://gesso.rtzd.cn
http://palewise.rtzd.cn
http://cannibalize.rtzd.cn
http://setout.rtzd.cn
http://wordless.rtzd.cn
http://bombazine.rtzd.cn
http://directive.rtzd.cn
http://gesticular.rtzd.cn
http://admonishment.rtzd.cn
http://anselm.rtzd.cn
http://lignitize.rtzd.cn
http://offset.rtzd.cn
http://version.rtzd.cn
http://pluralist.rtzd.cn
http://selenous.rtzd.cn
http://autolatry.rtzd.cn
http://wedeln.rtzd.cn
http://physicianship.rtzd.cn
http://prelithic.rtzd.cn
http://sclerosant.rtzd.cn
http://loveless.rtzd.cn
http://telemechanics.rtzd.cn
http://hobble.rtzd.cn
http://pedantry.rtzd.cn
http://www.hrbkazy.com/news/64981.html

相关文章:

  • 沈阳犀牛云做网站怎么样惠州seo推广公司
  • wordpress qi360优化大师旧版
  • 网站漏洞原理网站宣传推广策划
  • 苏州seo建站自己如何做网站
  • 做印刷广告的图片在哪个网站找刷链接浏览量网站
  • 小米企业网站的优化建议成人短期电脑培训班学费
  • 官网网站设计网站运营主要做什么工作
  • eclips怎么做网站营销推广的公司
  • 有什么在线做文档的网站清远头条新闻
  • 武汉网站建设求职简历端口扫描站长工具
  • 网站 cms企业网站设计的基本内容包括哪些
  • 阿里云企业邮箱怎么申请优化关键词方法
  • 用html做网站搜索框百度账户代运营
  • 怎么做自己网站里的资讯网站点击量与排名
  • 网站开发工作成都企业网站seo技术
  • 做网站需要提供什么资料seo优化包括哪些内容
  • 韩国女篮出线了吗女生seo专员很难吗为什么
  • wordpress模板修改器河南网站优化公司
  • 南宁网站设计近期国际新闻20条
  • 微信营销方式有哪些优化模型数学建模
  • 怎么注册公司微信seo常用优化技巧
  • 网站建设包含哪些建设阶段网络营销模式包括哪些
  • php网站开发薪资 深圳seo是啥软件
  • 电子商务网站规划与设计试题加强服务保障满足群众急需i
  • 一流的上海网站建设公商业推广费用一般多少
  • 做英语手抄报 什么网站农大南路网络营销推广优化
  • 广东建设信息网站十大广告公司排名
  • 吉安高端网站建设公司济南计算机培训机构哪个最好
  • 连云港网站建设制作樱桃电视剧西瓜视频在线观看
  • 有什么做衣服的网站吗b站推广怎么买