x-loader采用广州英码DM3730开发板 \x-loader\board\omap3stalker.c

先把这几个宏定义弄明白,在以后的代码中多次用到

#define __raw_readl(a) (*(volatile unsigned int *)(a))          /*读出寄存器里值*/

#define __raw_writel(v, a) (*(volatile unsigned int *)(a) = (v))  /*把a写入v这个地址*/

#define __raw_readw(a) (*(volatile unsigned short *)(a))

#define __raw_writew(v, a) (*(volatile unsigned short *)(a) = (v))

以上面这个为例展开宏

mode = __raw_readl(CONTROL_STATUS) & (DEVICE_MASK);

= __raw_readl(OMAP34XX_CTRL_BASE + 0x2F0) & (DEVICE_MASK);

=__raw_readl(OMAP34XX_L4_IO_BASE+0x2000 + 0x2F0) & (DEVICE_MASK);

=__raw_readl(0x48000000+0x2000 + 0x2F0) & (DEVICE_MASK);

=__raw_readl(0x480022F0) & (BIT8|BIT9|BIT10);

=__raw_readl(0x480022F0) & (1<<8|1<<9|1<<10);

=(*(volatile unsigned int *)(0x480022F0)) & (000001110000000);/*取出0x480022F0地址中的值,&0b000001110000000,相当于到第8,9,10位的值不变,其它清0*/

return mode >>= 8 /*把上面得到的mode右移8位,得到低3位的值*/

0x480022F0 地址对应ds中  CONTROL_STATUS 寄存器 在2587页,可以看到8 9 10位是设备类型

这个函数也是类似上面的宏展开后

mode=(*(volatile unsigned int *)(0x480022F0)) & (000000000001111);/*取出0x480022F0地址中的值,&0b000000000001111,相当于到第低4位的值不变,其它清0,第0-4位正好对应SYSBOOT*/

下面代码(129-170)判断mode值,确定系统启动顺序。

以下代码(171-344)基本都是用同样方法,取出相应寄存器里的值判断cpu 类型,cpu ID,cpu系列型号,cpu版本信息,打印出cpu相关信息

对应英码开发板启动信息,可以看到OMAP36XX/37XX-GP ES2.1

DM3730 x-loader 分析 一相关推荐

  1. Mirai 源码分析

    Mirai 源码分析 目录 Mirai 源码分析 1. 背景概述 2. 源码分析 2.1 payload分析 2.2 loader分析 2.3 cnc与tools简单分析 3. 后记 4. 参考链接 ...

  2. [FreeBSD]x86地址映射实例

    http://www.chinaunix.net 作者:qiuhanty x86地址映射实例 qiuhan 2007.8.15 今天我们通过qemu来探讨freeBSD下x86地址映射. 用户地址空间 ...

  3. 图像识别DM8127开发攻略 ——RDK软件架构浅析及编译

    上上一篇文章<图像识别DM8127开发攻略--开发环境搭建>介绍了DM8127的开发环境搭建,那么本篇开始描述整个IPNC RDK的架构,如果这个IPNC RDK都不熟悉,后面的移植工作基 ...

  4. webpack源码分析之三:loader

    前言 在webpack特性里面,它可以支持将非javaScript文件打包,但前面写到webpack的模块化打包只能应用于含有特定规范的JavaScript文件.本次介绍的loader则是用来解决这类 ...

  5. thinkphp源码分析(三)—自动加载篇(Loader的分析)

    源码分析 自动加载 系统会调用 Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载. 系统的自动加载由下面 ...

  6. angr源码分析——cle.Loader类

    上篇文章分析angr.Project类时说到,angr工具第一步就是将二进制文件加载到cle.loader类里.(CLE means Loading Everything).loader类加载所有的对 ...

  7. DAVINCI DM3730开发攻略——应用程序例程分析

    过完2015年春节回来了,利用上班前的几天时间,先把这篇文章写完,本来是先写<DAVINCI DM3730开发攻略--linux-2.6.32移植>,但是那篇文章涉及内核的东西太多,不太好 ...

  8. DM3730 x-loader 分析 五

    我们来做一个实验,实验目的是在x-loader中点亮LED灯,因此先分析x-loader\include\asm\arch-omap3\gpio.h,在实验中会用到这里面的函数. 下面是gpio.h源 ...

  9. 【SA8295P 源码分析】08 - XBL Loader 加载 SMSS、XBL Config、SHRM、CDT 、DDR、APDP、RamDump、OEM_MISC、AOP、QSEE过程分析

    [SA8295P 源码分析]08 - XBL Loader 加载 SMSS.XBL Config.SHRM.CDT .DDR.APDP.RamDump.OEM_MISC.AOP.QSEE Dev Co ...

  10. webpack 源码分析系列 ——loader

    想要更好的格式阅读体验,请查看原文:webpack 源码分析系列 --loader 为什么需要 loader webpack是一个用于现代 JavaScript 应用程序的静态模块打包工具.内部通过构 ...

最新文章

  1. 程序员面试100题之十四:强大的和谐
  2. 面试题,如何让你从0-1的做一款产品出来,你会怎么做?
  3. R语言-单一变量分析
  4. 小程序 getphonenumber_小程序入门,看这一篇就够了!
  5. 如何数分钟创建并成功运行数千台云主机?
  6. android预览界面显示不全,Android SurfaceView Camera 预览显示不全(画面拉伸)
  7. [译] 第二天:AngularJS - 认识AngularJS
  8. 百面机器学习—10.循环神经网络面试问题总结
  9. hadoop和spark相关参数的配置
  10. 深入浅出设计模式 ------ Prototype(原型模式)之深度克隆
  11. Flutter基础七:Sliver,设置一些样式
  12. AMD重新进入核心竞争领域
  13. 社工2014年春晚名人小彩旗(魏彩绮)
  14. 大数除法(超长整数运算除法器)详解
  15. VS 断点不会命中的情况
  16. 电脑笔记本计算机在哪里打开,剪贴板在哪里,教您如何打开电脑剪贴板
  17. excel制作动态数据分析报表
  18. 骨传导式蓝牙耳机推荐,2022年值得买的骨传导耳机
  19. 菜鸟对APP界面设计的一些心得小结
  20. mat a和matamp; a的区别

热门文章

  1. 树洞程序php,树洞表白墙程序
  2. 时序约束优先级_VIVADO之时序约束
  3. 三方直播SDK对比(腾讯云,阿里云,网易云信,七牛云,金山云,声网,即构科技)
  4. 局域网内即时通信软件 ZSCQ -概要设计说明书
  5. <POSTGRESQL修炼之道:从小工到专家>之PostgreSQL中执行计划(1-3结)
  6. 如何在大型商业银行研发中心发挥PMO作用--《PMO论文集2019》(电子版)
  7. 基于SIMULINK的SPWM控制器仿真
  8. 高等数学 - 泰勒级数
  9. python读取文件中的内容并输出_Python从文件中读取字符串并进行解析
  10. 【量化交易笔记】1.数据来源