芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片复制ARM启动过程

1.芯片复制基本概念(CMSIS): Cortex Micro-controller Software InterfaceStandard,微控制器软件接口标准。
2.CMSIS标准的文件结构:
a) core_cm.c (stdint.h)
b) system_.c (core_cm, system_)
c) startup_.s

其中core_cm.c以及core_cm中为内核设访问层,其中定义了定义了内核中得外设几丁质以及一些内核的访问及控制函数。

startup_.s文件是系统的启动文件,其包括堆和栈的初始化配置、中断向量表的配置以及将程序引导到main()函数等功能。

system_和system_.c文件则是由ARM公司提供模版,各芯片制造商根据自己芯片的特点来编写的。

3芯片复制.注解startup_.s文件
此文件主要完成三项工作:堆栈以及堆的初始化、定位中断向量表、调用Reset Handler
a) 堆栈以及堆的初始化
; Stack Configuration
;   Stack Size(in Bytes) <0x0-0xFFFFFFFF:8>
;

Stack_Size        EQU    0x00000200


                   AREA    STACK, NOINIT, READWRITE,ALIGN=3  
//指明8字节对齐(ALIGN=3)

Stack_Mem SPACE   Stack_Size
__initial_sp      //此标号有一层隐含的意思那就是在M3中堆栈是满递减堆                               //栈,因为它指定了堆栈指针位于堆栈的高地址(在//Stack_Mem之后)


; Heap Configuration
;   Heap Size (in Bytes)<0x0-0xFFFFFFFF:8>
;

Heap_Size       EQU    0x00000000


              AREA    HEAP, NOINIT, READWRITE,ALIGN=3
__heap_base
Heap_Mem       SPACEHeap_Size
__heap_limit


以上堆和栈的具体地址可以在工程编译后产生的*.map文件中看到。

b) 定位中断向量表
PRESERVE8  
//PRESERVE8指定了以下的代码位8字节对齐

THUMB

//THUMB指定了接下来的代码为THUMB指令集


; Vector Table Mapped to Address 0 atReset


              AREA   RESET, DATA,READONLY
//此语句声明RESET数据段


              EXPORT __Vectors
//导出向量表标号,EXPORT作用类似于C语言中的extern


联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信