DM3730 x-loader 分析 一
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 分析 一相关推荐
- Mirai 源码分析
Mirai 源码分析 目录 Mirai 源码分析 1. 背景概述 2. 源码分析 2.1 payload分析 2.2 loader分析 2.3 cnc与tools简单分析 3. 后记 4. 参考链接 ...
- [FreeBSD]x86地址映射实例
http://www.chinaunix.net 作者:qiuhanty x86地址映射实例 qiuhan 2007.8.15 今天我们通过qemu来探讨freeBSD下x86地址映射. 用户地址空间 ...
- 图像识别DM8127开发攻略 ——RDK软件架构浅析及编译
上上一篇文章<图像识别DM8127开发攻略--开发环境搭建>介绍了DM8127的开发环境搭建,那么本篇开始描述整个IPNC RDK的架构,如果这个IPNC RDK都不熟悉,后面的移植工作基 ...
- webpack源码分析之三:loader
前言 在webpack特性里面,它可以支持将非javaScript文件打包,但前面写到webpack的模块化打包只能应用于含有特定规范的JavaScript文件.本次介绍的loader则是用来解决这类 ...
- thinkphp源码分析(三)—自动加载篇(Loader的分析)
源码分析 自动加载 系统会调用 Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载. 系统的自动加载由下面 ...
- angr源码分析——cle.Loader类
上篇文章分析angr.Project类时说到,angr工具第一步就是将二进制文件加载到cle.loader类里.(CLE means Loading Everything).loader类加载所有的对 ...
- DAVINCI DM3730开发攻略——应用程序例程分析
过完2015年春节回来了,利用上班前的几天时间,先把这篇文章写完,本来是先写<DAVINCI DM3730开发攻略--linux-2.6.32移植>,但是那篇文章涉及内核的东西太多,不太好 ...
- DM3730 x-loader 分析 五
我们来做一个实验,实验目的是在x-loader中点亮LED灯,因此先分析x-loader\include\asm\arch-omap3\gpio.h,在实验中会用到这里面的函数. 下面是gpio.h源 ...
- 【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 ...
- webpack 源码分析系列 ——loader
想要更好的格式阅读体验,请查看原文:webpack 源码分析系列 --loader 为什么需要 loader webpack是一个用于现代 JavaScript 应用程序的静态模块打包工具.内部通过构 ...
最新文章
- 程序员面试100题之十四:强大的和谐
- 面试题,如何让你从0-1的做一款产品出来,你会怎么做?
- R语言-单一变量分析
- 小程序 getphonenumber_小程序入门,看这一篇就够了!
- 如何数分钟创建并成功运行数千台云主机?
- android预览界面显示不全,Android SurfaceView Camera 预览显示不全(画面拉伸)
- [译] 第二天:AngularJS - 认识AngularJS
- 百面机器学习—10.循环神经网络面试问题总结
- hadoop和spark相关参数的配置
- 深入浅出设计模式 ------ Prototype(原型模式)之深度克隆
- Flutter基础七:Sliver,设置一些样式
- AMD重新进入核心竞争领域
- 社工2014年春晚名人小彩旗(魏彩绮)
- 大数除法(超长整数运算除法器)详解
- VS 断点不会命中的情况
- 电脑笔记本计算机在哪里打开,剪贴板在哪里,教您如何打开电脑剪贴板
- excel制作动态数据分析报表
- 骨传导式蓝牙耳机推荐,2022年值得买的骨传导耳机
- 菜鸟对APP界面设计的一些心得小结
- mat a和matamp; a的区别
热门文章
- 树洞程序php,树洞表白墙程序
- 时序约束优先级_VIVADO之时序约束
- 三方直播SDK对比(腾讯云,阿里云,网易云信,七牛云,金山云,声网,即构科技)
- 局域网内即时通信软件 ZSCQ -概要设计说明书
- <POSTGRESQL修炼之道:从小工到专家>之PostgreSQL中执行计划(1-3结)
- 如何在大型商业银行研发中心发挥PMO作用--《PMO论文集2019》(电子版)
- 基于SIMULINK的SPWM控制器仿真
- 高等数学 - 泰勒级数
- python读取文件中的内容并输出_Python从文件中读取字符串并进行解析
- 【量化交易笔记】1.数据来源