启动文件Startup_vle.c

步骤1:初始化核心的通用寄存器

步骤2:初始化IVPR(异常向量表基址)和MSR寄存器以启用机器检查和异常(IVORx)

步骤3:初始化堆栈指针(r1)

步骤4:启动代码应确保MCU内部看门狗不会被服务,直到看门狗从MCAL看门狗驱动程序初始化。这可以通过增加看门狗服务时间来实现

Step5:设置AIPS_A/B母线桥及其保护功能:

(1) AIPS_MPRA(主特权寄存器A)

定义每个总线主节点的访问权限级别(8个主节点)

"111"[默认值:参照芯片配置]-

信任为读;

信任为写;

从这个主服务器访问不强制进入用户模式;

(2) AIPS_PACRn(外围访问控制寄存器A-H)

定义每个On-Platform外设支持的访问级别

"000"[默认:参照芯片配置]-

这个外设不需要管理员权限级别的访问;(OS)

这个外设允许写访问;

允许来自不受信任的主机的访问;

(3) AIPS_OPACRn(离台外围访问控制寄存器A-Z, AA-AF)

定义每个非平台外设支持的访问级别

"000"[默认:参照芯片配置]-

这个外设不需要管理员权限级别的访问;(OS)

这个外设允许写访问;

允许来自不受信任的主机的访问;

Step6:使能BTB

Step7:

初始化内部RAM,避免出现ECC错误

Step8:

Erase ".sbss" & ".bss" & ".bss_no_cacheable"

Step9:

将初始化的数据从Flash复制到SRAM

.PPC.EMB。Sdata0 & .sdata & .data & .data_no_cacheable & .ramcode

Step10:定义全局变量指针

Step11:Enable D_CACHE & I_CACHE

Step12:

配置INTC为硬件矢量模式

Step13:

Jump to main()

相关推荐
是main不是漫31 分钟前
【数据结构--双向链表】从前有个节点,它想要两头讨好…
c语言·数据结构·链表
東雪木31 分钟前
Java 基础语法与核心数据类型 专属复习笔记
java·开发语言·笔记·java面试
ch.ju33 分钟前
Java程序设计(第3版)第四章——方法的重载
java·开发语言
ch.ju37 分钟前
Java Programming Chapter 4——Overloading of method
java·开发语言
Teable任意门互动40 分钟前
拆解 Teable 背后研发主体,开源多维表格平台实力与落地案例
开发语言·开源·excel·飞书·开源软件
吃好睡好便好40 分钟前
用直接输入的方式创建矩阵
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
NiKick41 分钟前
理解C++中的构造函数如何影响对象初始化
开发语言·c++
海上彼尚42 分钟前
Nodejs也能写Agent - 9.Mastra篇 - Mastra客户端
开发语言·前端·javascript·人工智能·node.js
2401_8332693043 分钟前
Java异常处理入门
java·开发语言
极客小云44 分钟前
【用 Go 写一个统一的 LLM Token 统计库:tokencalc 的设计与实现】
开发语言·后端·golang