S3C2440的架构及启动方式


文章目录

  • S3C2440的架构及启动方式
    • S3C2440的架构:
    • 启动过程:(大多数ARM芯片从0地址起动)
    • ARM芯片的构成:
    • 关于寄存器的访问:
    • 如何点亮LED:
      • 看原理图,确定控制逻辑
      • 看原理图,确定引脚
      • 看手册,确认控制哪些寄存器
      • 伪指令产生的原因:
    • 汇编实现点亮LED:
    • 编译时所需Makfile:

S3C2440的架构:

启动过程:(大多数ARM芯片从0地址起动)

1. NOR 启动,NOR Flash基地址为0,片内RAM的地址为0X4000,0000;CPU读出NOR Flash上的第一条指令(4Byte)执行;CPU继续读出其它指令执行。
2. Nand 启动,片内4K RAM 的基地址为0,NOR Flash 不可访问,上电后S3C2440硬件自动把Nand Flash 前 4K 的内容复制到片内 RAM ,然后CPU从0地址取出第一条指令执行。

ARM芯片的构成:

关于寄存器的访问:

如何点亮LED:

看原理图,确定控制逻辑

看原理图,确定引脚

看手册,确认控制哪些寄存器

1. 设置GPFCON [9:8] = 0b01, GPF4配置为输出,===> 把0x100写到GPFCON即写到地址0x56000050上
2. 设置GPFDAT[4] = 1 输出高电平,LED熄灭,===> 把0x10写到地址0x56000054上设置GPFDAT[4] = 0 输出低电平,LED点亮,===> 把0写到地址0c56000054上

几条汇编代码:
1. LDR(load) 读内存 LDR R0, [R1] 假设R1的值为x,读取地址x上的数据(4字节),储存到R0中(4字节)。
2. STR(store)写内存 STR R0, [R1] 假设R1的值为x,把R0的值,写到地址x上去(4字节)。
3. B 跳转
4. MOV(move) MOV R0, R1 把R1的值赋给R0 MOV R0, #0x100 R0 = 0x100
5. LDR LDR R0, =0x12345678 伪指令,它会被拆分为几条真正的ARM指令

伪指令产生的原因:

MOV R0, #0X12345678 错误指令

汇编实现点亮LED:

编译时所需Makfile:

S3C2440的架构及启动方式相关推荐

  1. STM32 快速入门(内核架构,启动方式,开发参考资料,芯片选型)

    文章目录 1.启动方式(Start up) 2.开发参考资料 2.1 STM32 中文参考手册 3.通常的芯片选型步骤 4.存储器和总线构架 4.1 系统构架 4.1.1 ICode 总线 4.1.2 ...

  2. STM3日常使用笔记——启动方式

    先提出一个无法忽略的问题:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢? 答案很显然:微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由 ...

  3. WIN8 与WIN7的64位及32位 分别对Legacy BIOS+MBR和UEFI+GPT两种启动方式和分区架构下的安装可行性分析

    微软系统.相关产品官方镜像下载:http://msdn.itellyou.cn/  关于MBR.GPT.ESP.MSR.EFI.UEFI和WIN8中SECURE BOOT的基础知识:   1.MBR分 ...

  4. linux中uboot作用,uboot的作用和启动方式

    声明:本文由个人学习过程中整理而成,转载请注明出处. 1.bootloader介绍 (1)对于计算机系统,从开机上电到操作系统的启动需要一个引导程序叫做bootloader(启动加载程序). 通过bo ...

  5. ARMv8架构u-boot启动流程详细分析(一)

    文章目录 1 概述 2 armv8 u-boot的启动 3 u-boot源码整体结构和一些编译配置方式 3.1 编译配置方式 3.2 u-boot源码结构 4 u-boot armv8链接脚本 4.1 ...

  6. mongoDB的读书笔记(via3.0)(00)_【概览】(02)_mongoDB3.0中的mongod启动方式小试牛刀

    mongod启动 本来想写Replica的非测试模式的集群架构的,但是实在是手痒痒,把mongoDB的3.0给download下来了,看了一两眼文档后决定还是先大概写一点点关于启动的话题,之后写Rep ...

  7. thinkpad重装系统不引导_重装系统时,如何判断Windows的启动方式是Legacy还是UEFI?...

    众所周知,BIOS启动模式有UEFI+GPT和Legacy+MBR两种,如今大多数新机型电脑都采用了UEFI的启动模式来引导系统,即便如此,仍有部分电脑采用Legacy启动模式.这两种启动模式究竟有什 ...

  8. Flask开发服务器启动方式

    开发服务器启动方式 在1.0版本之后,Flask调整了开发服务器的启动方式,由代码编写app.run()语句调整为命令flask run启动. from flask import Flaskapp = ...

  9. Redis的多种启动方式比较!

    有感: Redis玩了许久时间,真心感觉启动方式还是自己定义的方便! 1)直接启动和关闭:(配置文件默认) 开启:redis-server &(&后台运行) #daemonize ye ...

最新文章

  1. Spring配置JDBC连接Orcale、MySql、sqlserver
  2. ckeditor_3.6.6.2+CKFinder2.0.2配置
  3. Val编程-任务编程
  4. gmail注册手机号不能用于验证_一个手机号码、辅助邮箱,可以注册绑定多少个gmail帐号?...
  5. 《淘宝网》质量属性简析
  6. 构建与服务器的JDK版本不同,导致服务器不能工作
  7. 计算机专业答辩需要演示系统么,计算机专业毕业设计答辩流程
  8. AI口罩“督查官”诞生记
  9. Exchange Server 2016 CU22升级更新
  10. 手把手教你:基于深度学习的滚动轴承故障诊断
  11. Chapter 2 (Matrix Algebra): Partitioned matrices (分块矩阵)
  12. 一切的闹闹哄哄,只是他在水帘洞躲避风沙那晚做的一个梦
  13. 支持Micro USB安卓接口与iphone 8手机的5W无线充电芯片|无线快充芯片小封装SOP8外围简单精简
  14. 如何按照规格型号表挑选合适的快速接头
  15. ljmp指令_51单片机主要汇编指令集
  16. PLC的面向对象编程
  17. python添加横线代码_Python中的五种下划线
  18. 4.MyBatis源码解析-MyBatis扩展点--阿呆中二
  19. ARCGIS中某字段递增赋值,如1,2,3,4,
  20. 沧海一粟第五次团队博客

热门文章

  1. Java Elasticsearch创建索引
  2. MAC重置密码时,使用Apple ID登录时 下发显示红字“连接到Apple ID”且点击下一步无反应
  3. PHP学生成绩管理,使用MySQL数据库,界面简洁,适合当做学生期末课设作业,有数据库和PHP文件源码,没有使用任何框架,都是使用简单的PHP代码
  4. linux查看无线网卡漫游,在Linux中漫游用户配置文件
  5. 探究Java的设计原则
  6. 2019-10-19-dotnet-给MatterMost订阅RSS博客
  7. 去除string中的换行符
  8. “泛文化”时代,出版发行企业如何重塑组织人力资源体系?
  9. android 手机nfc地铁,nfc怎么刷地铁
  10. 使用Glove词嵌入对IMDB数据集进行二分类