学习ok6410有一段时间了,总是对其中各中地址的来源比较模糊一会0x500080000  一会0x71000000的,最近自己又看了看手册,找了找资料,并和2440对比学习了下,总结如下。PS:资料有6410,2440中英文手册,ok6410原理图,mini2440原理图,韦东山第一期视频中的存储控制器,mmu,nandflash,和看原理图视频。

mini2440地址映射问题:

mini2440地址中norflash,DM9000,SRAM是跟寄存器一样的统一编址(主要与nandflash不同,nandflash是按照时序把地址发送出去的,不是地址线发送的,不是被存储器控制器操作的,是被nandflash控制器控制的,所以与他们不同)。

如上图:如果是nor启动,norflash的起始地址是0x00000000,中间打叉的块是没有连接的,也就是无效的地址,DM9000的起始地址是从块4开始的0x20000000,SDRAM的起始地址是从块6开始的0x30000000.他们是通过nGCS0,nGCS1......起到片选的作用的(如下图)。nand启动只是把0x00000000变成了片内SRAM,把nandflash前4k拷贝过去而已。紧接着就是0x50000000开始的寄存器地址,后面还有一段映射的虚拟地址(主要跟uboot中的mmu内存管理单元初始化,和内核移植有关)。

ok6410地址映射问题(资料太少大部分是我的理解,如有错误希望大神指导下):

6410的内存映射分5个部分:

1.引导镜像区(0x0000_0000~0x07FF_FFFF)

2.内存存储区(0x0800_0000~0x0FFF_FFFF)如果是内部ROM启动0x0800_0000~0x0BFF_FFFF映射到引导镜像区,如果是nandflash启动 则将内部SRAM的地址0x0C00_0000~0x0FFF_FFFF映射到引导镜像区。

3.静态存储区(0x1000_0000~0x3FFF_FFFF)bank0什么都没接,bank1接了DM9000,bank2,3的片选接在nandflash(但只是接在nandflashcon上的片选,没有统一编址),bank4,5应控制cf控制器但ok6410没接。

4.动态存储器(0x4000_0000~0x6FFF_FFFF)DDR接口,ok6410用的是SRAM端口2地址为0x50000000,详讲下面ok6410原理图。

5.外设(即寄存器地址0x7000_0000~0x7FFF_FFFF)记得韦东山在讲6410裸机的时候说裸机启动代码最先做的事情应该是把外设的基地址赋值给协处理器cp15此时赋的值就是0x70000000       PS:启动内核后ok6410的0x50000000映射到虚拟地址0c0000000。

还剩下几个地址没有理解,待日后理解了再补充上来,有dnw里面设置的地址,有ads里面的两个地址,有uboot和内核里面分区地址。

ok6410学习笔记(1.arm常见的各种地址总结)相关推荐

  1. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  2. python sklearn学习笔记大全(常见代码速查)

    skleran是python中常见的机器学习包,整理下笔记.方便查询. 官方文档链接:sklearn官方英文文档 常见模型 from sklearn.linear_model import Linea ...

  3. 【ARM学习笔记】ARM汇编指令:B、BL、BX、BLX的区别

    文章目录 1 ARM的跳转指令介绍 2 ARM的4个跳转指令 2.1 B 指令 2.2 BL 指令 2.3 BLX 指令 2.4 BX 指令 3 更多分享 1 ARM的跳转指令介绍 跳转指令用于实现程 ...

  4. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

  5. 【ARM学习笔记】ARM Cortex -A7 EPIT定时器

    简述 ARM Cortex-A7的一个定时器,用来完成周期性中断定时 特点: 时钟源可选的32位向下计数器 12位的分频值 当计数值和比较值相等的时候产生中断 可以即使编程的计数器值 在低功耗和调试模 ...

  6. 【学习笔记】ARM Cortex-A(armv7)编程手册

    第一章介绍了 ARM Cortex-A 系列处理器的基本功能,介绍 ARM 体系结构的基础知识,涵盖各种寄存器: 第二章和第三章提供了有关各个处理器的模式和一些背景知识: 第四章和第五章简要介绍了 A ...

  7. 【前端学习笔记DOM—DOM常见操作】

    目录 前言 一.什么是DOM 二.常见的DOM操作 1.增 (1)新建 (2)插入 2.删 (1)删除子节点 (2)删除属性节点 3. 改 (1)替换节点 (2)修改属性值 4. 查 (1)通过id属 ...

  8. 一千行MySQL学习笔记(MySQL常见SQL语句全详解)

    /* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */ mysqld ...

  9. 学习笔记——os模块常见列表

    为什么需要引用os模块? 在用python处理数据的过程中,经常需要查找操作文件和路径,这就依赖于os模块. 函数 描述 os.name 显示当前使用的平台 os.getcwd() 显示当前pytho ...

  10. 前端攻城狮学习笔记七:常见前端面试题之HTML/CSS部分(二)

    前端页面有哪三层构成,分别是什么?作用是什么? 1.结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达.解决了页面"内容是什么"的问题. 2.表示层:由 ...

最新文章

  1. SendInput模拟Win(VK_LWIN)键的问题
  2. CISCO上ADSL配置的方法
  3. 原来评分卡模型的概率是这么校准的!
  4. keepalived重新加载配置——不用重启不发生切换
  5. 大众mpv_一汽-大众全新MPV车型国内伪装路试曝光,没有侧滑门设计
  6. 5 多数据save_《Netlogo多主体建模入门》笔记 7
  7. 数据库MySQL--基础查询
  8. Visual Studio Online 东半球首秀,亮相 .NET Conf 2019 中国峰会
  9. ES6 iterator 迭代器
  10. 创业,“玩”的就是心态
  11. 20135234mqy-——信息安全系统设计基础第七周学习总结
  12. python 自动打开登陆应用编码_Python+tkinter模拟“记住我”自动登录实例代码
  13. 打出租辆来回机场好贵
  14. 希捷7200.12 固件问题重新上演
  15. 公司对公回单如何补打
  16. python几个循环_python 几个循环的效率测试
  17. socket.io实现简易版群聊
  18. 资产监测设备中,使用浏览器解码Sigfox上行负载
  19. 如何用scanf语句为字符指针数组赋值
  20. MATLAB | 如何在MATLAB中使用python全部colormap配色

热门文章

  1. Eclipse插件汇总
  2. 定了!极客公园创新大会一月见
  3. python 逆向生成正则表达式_python--re模块(正则表达式)
  4. hdu多校第十场 1009 (hdu6699) Block Breaker bfs/模拟
  5. noj算法 踩气球 回溯法
  6. 对位相乘相加法计算卷积
  7. 创建一个名为User的类
  8. 参考例程 飞思卡尔mkl16_mkl_i2c.c
  9. 没有ps技术该怎么去除视频水印?
  10. Android 爬坑之旅:软键盘挡住输入框问题的终极解决方案