Stp1: 定义栈大小

Stp2: 复位CPU

Stp3: 禁能FIQ和IRQ

Stp4: 清除Bss

Stp4:调用main()函数

具体过程如下:

1.声明全局函数,以便在其他文件中调用:

.global    Reset            @Reset the CPU.global _stack              @Define Stack .global _bss_start          @Define the start of the BSS(Block Started by Symbol).global _bss_end            @Define the end of the BSS.global start_boot          @main()

2.定义栈大小(.set相当于C中#define )具体见笔记

.set    UND_STACK_SIZE,    0x8        @未定义.set    ABT_STACK_SIZE,    0x8        @数据访问中止.set    FIQ_STACK_SIZE,    0x8        @快速中断.set    IRQ_STACK_SIZE,    0X800      @外部中断.set    SVC_STACK_SIZE,   0x8        @管理

3.复位CPU,操作方式为为每个模式设置栈

Entry:LDR   r0, =_stack                             @ Read the stack addressMSR   cpsr_c, #MODE_UND|I_F_BIT           @ switch to undef  modeMOV   sp,r0                                        @ write the stack pointerSUB   r0, r0, #UND_STACK_SIZE                 @ give stack space
@@ Set up the Stack for abort mode
@        MSR   cpsr_c, #MODE_ABT|I_F_BIT           @ Change to abort modeMOV   sp, r0                                      @ write the stack pointerSUB   r0,r0, #ABT_STACK_SIZE                  @ give stack space后面的模式都一样,不再一一列举

4.清除BSS,利用循环,每次清除一个字

Clear_Bss_Section:LDR   r0, =_bss_start                 @ Start address of BSSLDR   r1, =(_bss_end - 0x04)          @ End address of BSSMOV   r2, #0  Loop: STR   r2, [r0], #4                    @ Clear one word in BSSCMP   r0, r1BLE   Loop                            @ Clear till BSS end

5.至此,终于可以跳转到C代码了:

@Enter_main:LDR   r10,=start_bootMOV   lr,pc                               @ Dummy return from start_bootBX    r10                                 @ Branch to start_bootSUB   pc, pc, #0x08                @ looping

经过一天的实验,终于引导成功,实现了IO操作

待续……

转载于:https://www.cnblogs.com/liutingbl/p/4151028.html

AM3352启动分析:相关推荐

  1. 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用启用普通安卓应用 | 应用进程分析 )

    文章目录 一. Launcher 应用 startActivitySafely 方法分析 二. Launcher 中的 startActivity(View v, Intent intent, Obj ...

  2. springboot 启动分析【难点】——如何自动扫描 @SpringBootApplication||如何加载自动配置类 @EnableAutoConfiguration||如何加载前端控制器

    springboot 启动分析[难点] 自动扫描的特点 默认扫描与 启动类 同级的所有包及其子包都可以自动扫描 如果不可要使用@ComponentScan(basePackage={"&qu ...

  3. 全志h3linux移植教程,全志H3启动分析,移植主线UBOOT

    全志H3启动分析,移植主线UBOOT 参考资源 启动流程 因为使用的是外扩SD卡,因此主要参考了这部分内容:Bootable SD card SD卡Layout如下: start sector siz ...

  4. STM8启动分析及IAP

    STM8启动分析及IAP 转载于:https://www.cnblogs.com/LittleTiger/p/5535041.html

  5. ADS中startup.s文件启动分析

    映像文件分析,ADS 中startup.s 文件启动分析,学嵌入式开发ADS 必看 2010-04-17 10:21 声明: 我也是转来的,不是原创,由于别人是网易的日志,不能直接转,所以-- 感谢原 ...

  6. 2022版u-boot启动分析笔记之一(start.S与lowlevel_init.S)

    u-boot-2022.01-rc4启动分析笔记之一(start.S与lowlevel_init.S U-Boot启动过程概述 从链接脚本u-boot.lds说起 start.S start.S从re ...

  7. Uboot启动分析--start.S启动分析(1)

    总目录 NXP i.MX8M secure boot流程 Uboot链接脚本分析述 Uboot启动分析–start.S启动分析(1) Uboot启动分析–start.S启动分析(2) Uboot启动分 ...

  8. BSP板机支持包、linux启动分析、ARM裸机编程

    文章目录 一.BSP 二.驱动 驱动的基本要素 三.启动分析 1.uboot 2.uboot的作用 3.uboot相关命令 关键的内容: 1)bootargs,启动参数 2)启动命令 3)修改启动延时 ...

  9. RecentsActivity启动分析二

    接着上一篇RecentsActivity启动分析一继续分析RecentsActivity.先给大家看布局的结构图 简单的画了RecentsView部分,如下图所示 那接着就从RecentsActivi ...

  10. k8s replicaset controller源码分析(1)- 初始化与启动分析

    replicaset controller分析 replicaset controller简介 replicaset controller是kube-controller-manager组件中众多控制 ...

最新文章

  1. python 数据分析学什么-python数据分析师要学什么
  2. CentOS安装mariadb
  3. c语言课设报告河海大学,2020河海大学计算机学硕838经验贴
  4. HashSet集合和TreeSet集合
  5. 使用java+TestNG进行接口回归测试 1
  6. mmall工程生成dao层的插件出错了出错了 自动生成mapper 的插件出错了
  7. jar 、war、ear_在命令行上操作JAR,WAR和EAR
  8. 3千字带你搞懂XXL-JOB任务调度平台
  9. printf格式化字符串_Java printf()–将格式化的字符串打印到控制台
  10. Atitit attilax在自然语言处理领域的成果
  11. 解决 iOS 13 定位权限弹框自动消失
  12. 石家庄地铁选站系统进度报告
  13. VINS-Mono 代码解析六、边缘化(3)
  14. 傻瓜式自制鼠标光标,超简单
  15. 2021年上半年软考真题及答案解析汇总
  16. C语言,移动鼠标获得当鼠标当前位置坐标
  17. 使用post上传文件报500错误
  18. 微信小程序的详细登录(上)
  19. 怎样把CAD图纸的背景颜色修改成白色?
  20. python获取cookie文件_Python Cookie 读取和保存方法

热门文章

  1. MSRA,我的实习初体验(上)
  2. 如何在脱敏数据中使用BERT等预训练模型
  3. 【Linux】肝!Shell 脚本编程最佳实践
  4. 【比赛】CCF BDCI新闻情感分类初赛A榜4/2735,复赛1%题解报告
  5. 【NLP】目前有比Topic Model更先进的聚类方式么?比如针对短文本的、加入情感分析的?...
  6. 马云:旧制造业要凉,贸易战至少得打20年(附演讲全文)
  7. 【开学福利】13本python+AI书籍,快拿去
  8. 统计学习方法读书笔记10-决策树
  9. 深度学习2.0-18.随机梯度下降之手写数字问题实战(层)
  10. 《Effective Java 3rd》读书笔记——对于所有对象都通用的方法