AM335x Linux调试1--MLO中打印寄存器值
来源:互联网 发布:刚哥哥淘宝店招制作 编辑:程序博客网 时间:2024/05/01 06:11
今天碰到了个问题,需要在MLO中确认boot模式,但是客户没有JTAG,没仿真器,所以只好在MLO中添加上一些打印显示,这就涉及到一个问题:如何在MLO中查看或者写入寄存器的值,其实很简单,实现案例如下:
Step 1: 找到需要加入打印的文件位置:EZSDK6.0/board-support/u-boot/common/spl/spl.c
Step 2: 在文件的include文件中,需要加入:
#include <asm/io.h>
Step 3: 在board_init_r函数的前端,加入以下语句:
u32 bootmode_steven;
bootmode_steven = readl(0x44e10040); //reading sysconfig
printf("steven: %d\n", bootmode_steven);
PS:参考一下如果是想写入值:
writel(bootmode_steven, 0x44e10040);
经过以上三步,就可以打印出你想要的数据了,下面是log信息:
CCCCCCCC
U-Boot SPL 2013.01.01 (Apr 16 2014 - 12:26:02)
steven: 4195201//此处是十进制,转换一下bootmode_steven=0x400381
timed out in wait_for_bb: I2C_STAT=1000
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
最后,再附上io.h中的源定义:
arch/arm/include/asm/io.h
#define writeb(v,c) ({ u8 __v = v; __iowmb(); __arch_putb(__v,c); __v; })
#define writew(v,c) ({ u16 __v = v; __iowmb(); __arch_putw(__v,c); __v; })
#define writel(v,c) ({ u32 __v = v; __iowmb(); __arch_putl(__v,c); __v; })
#define readb(c) ({ u8 __v = __arch_getb(c); __iormb(); __v; })
#define readw(c) ({ u16 __v = __arch_getw(c); __iormb(); __v; })
#define readl(c) ({ u32 __v = __arch_getl(c); __iormb(); __v; })
- AM335x Linux调试1--MLO中打印寄存器值
- AM335x Linux调试2--Kernel中休眠唤醒的调试
- AM335x启动流程(BootRom->MLO->Uboot)
- AM335x启动流程(BootRom->MLO->Uboot)
- AM335x启动流程(BootRom->MLO->Uboot)
- AM335x启动流程(BootRom->MLO->Uboot)
- AM335x启动流程(BootRom->MLO->Uboot)
- AM335x启动流程(BootRom->MLO->Uboot)
- gdb调试时打印寄存器的不同类型值
- 基于linux 的 AM335X GPIO 调试日志
- AM335x启动流程(BootRom-> MLO->的Uboot)
- MLO
- 三星平台中打印寄存器
- 三星平台中打印寄存器
- linux中使用backtrace打印调试信息
- linux 内核中 查看寄存器的值
- linux的汇编学习(1)---实现打印寄存器的数值,或者打印字符串
- am335x 更改调试串口
- Win7下用IIS发布网站
- Android翻译之---- Drag and Drop
- 设计模式学习--工厂模式(C++)
- 你是我最美的相遇
- 为CentOS 6.x添加EPEL源
- AM335x Linux调试1--MLO中打印寄存器值
- POJ 1182 食物链(带权并查集)
- 微软面试100题之14题:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
- iOS推送证书导出pem文件
- Java抽象类和接口的区别
- AIDL(安卓接口定义语言)
- java web安全总结
- 获取状态栏高度(运用反射)
- centos CentOS-6.2-i386-minimal 安装gnome桌面环境