Image
Image

舒伯特玫瑰

+ 关注

粉丝 2     |     主题 53     |     回帖 266

小华半导体芯片启动文件详细讲解
2023-6-26 13:24
  • 小华半导体
  • 41
  • 2227
  ......  
  值得注意的是上面有一段操作R0和R1寄存器的代码,这段代码是什么意思呢?查询手册,找到这个0x40050804的地 ...  
  ......  
  __main:一个标准的C库函数,主要作用是初始化用户堆栈,并在函数的最后调用main函数进入C语言世界。这就是 ...  
  System Init():一个标准的库函数,在system_hc32f460.c这个库文件中定义。其主要作用是配置系统时钟,这里 ...  
  WEAK:表示弱定义,如果外部文件优先定义了该标号,则首先引用该标号,如果外部文件没有声明,也不会出错。 ...  
  复位子程序是系统上电后第一个执行的程序,调用System Init函数初始化系统时钟,然后调用C库函数_mian,最 ...  
  ......  
  定义一个名称为.text的代码段,只读。  
  4. 复位程序 AREA |.text|, CODE, READONLY  
  __Vectors为向量表起始地址,__Vectors_End为向量表结束地址,两个相减即可算出向量表大小。向量表从Flash ...  
  向量表的代码比较长,占据了启动代码的大部分篇幅。  
  ......  
  EXPORT:声明一个标号可被外部的文件使用,使标号具有全局属性。如果是IAR编译器,则使用GLOBAL这个指令。 ...  
  定义一个数据段,名字为RESET,可读,并声明__Vectors、__Vectors_End和__Vectors_Size这3个标号具有全局属 ...  
  3. 向量表  
  PRESERVE8:指定当前文件的堆栈按照8字节对齐。 THUMB:表示后面指令兼容THUMB指令。 THUBM是ARM以前的指 ...  
  开辟堆的大小为0x00000200(512字节),名字为HEAP,NOINIT即不初始化,可读可写,8(2^3)字节对齐。__he ...  
  2. 堆区域  
  AREA:告诉汇编器汇编一个新的代码段或者数据段。 STACK表示段名,这个可以任意命名;NOINIT表示不初始化 ...  
2
3
近期访客