zoukankan      html  css  js  c++  java
  • autosar mcal之启动代码

    我们都知道芯片在运行应用程序指令之前,首先会对芯片做一些

    硬件和系统的初始化,如堆栈指针、RAM空间、变量初始化等,这部分代码被称为启动代码。启动代码通常在芯片上电后立即执行,对 MCAL架构来讲就是要在MCU驱动模块初始化之前完成,启动代 码要求完成芯片特殊的初始化功能,这些工作不属于任何MCAL驱动 模块,下面列出了MCAL规范对启动代码完成功能的建议。

    1)启动代码应完成中断向量表的初始化。

    2)启动代码应完成堆栈的初始化。

    3)如芯片支持Context Save操作,启动代码应完成用于Context Save操作的存储器空间。

    4)启动代码应确保MCU内部看门狗处于关闭状态,内部看门 狗的初始化应由MCAL Watchdog驱动部件完成。

    5)如MCU支持数据/代码缓存,必须在启动代码中完成初始 化。

    6)启动代码应完成MCU内部存储器相关的初始化功能,如内 存保护等。

    7)如使用外部存储器,存储器应在启动代码中初始化。

    8)启动代码应完成MCU默认时钟配置的初始化。

    9)如芯片支持,启动代码应使能特殊功能寄存器的保护机 制。

    (10)启动代码应初始化必要的一次只写寄存器(Write Once Register)。

    11)启动代码应初始化RAM空间,以保证正确执行MCU驱 动。以上就是MCAL规范对于启动代码的功能建议,需要注意的是启 动代码依赖于ECU的功能及MCU的性能。接下来,具体看一下本章 使用的S32K144样例工程中启动代码都做了哪些事情。

    1.初始化内核通用寄存器

    mov    r0,#0
    mov    r1,#0
    mov    r2,#0
    mov    r3,#0
    mov    r4,#0
    mov    r5,#0
    mov    r6,#0
    mov    r7,#0

    2.初始化中断向量表的基地址

    /* relocate vector table to RAM */
    ldr   r0,=VTOR_REG
    ldr   r1,=VTABLE
    str   r1,[r0]

    3.初始化用户堆栈

    4.关闭Watchdog

    5.系统初始化

    6.RAM初始化

    7.跳转至Main函数

  • 相关阅读:
    决策树算法小结
    低配置电脑播放 flash 视频时 占 cpu 资源过高的解决方法
    ts tp 高清播放软件 Elecard MPEG Player 6.0.130827
    KBS2 SBS MBC 高清播放地址 + mplayer 播放 录制
    MPlayer-ww 增加边看边剪切功能
    MPlayer 增加边看边剪切功能
    -fomit-frame-pointer 编译选项在gcc 4.8.2版本中的汇编代码研究
    ffplay mini 媒体播放器
    libavcodec/dxva2.h:40:5: error: unknown type name 'IDirectXVideoDecoder'
    ARGB32 to YUV12 利用 SDL1.2 SDL_ttf 在视频表面输出文本
  • 原文地址:https://www.cnblogs.com/still-smile/p/12218250.html
Copyright © 2011-2022 走看看