- 博客(45)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 第三章——Exynos 4412的启动过程分析
iROM把启动设备上特定位置处的程序读入片内存 (iRAM) ,并执行它。这个程序被称为 ,并执行它。这个程序被称为 BL1(Bootloader 1) ,BL1 是三星公司提供的,无源码。BL1又把启动设备上另一个特定位置处的程序读入片内内存,并执行它。这个被称为 BL2(Bootloader 2) ,是我们编写的源码。
2014-11-25 12:26:12
731
原创 第六章——uboot for tiny4412中MMU虚拟地址设置
enable_mmu: /* enable domain access */ ldr r5, =0x0000ffff mcr p15, 0, r5, c3, c0, 0 @load domain access register /* Set the TTB register */ ldr r0, =mmu_table ldr r1, =CONFIG_PHY_UBOOT_BASE
2014-11-24 14:50:28
814
原创 自己写bootloader(4)——实现字符界面
for (;;) { len = readline (CFG_PROMPT); flag = 0; /* assume no special flags for now */ if (len > 0) strcpy (lastcommand, console_buffer); else if (len == 0) flag |=
2014-11-19 17:43:53
729
原创 自己写bootloader(3)——实现printf
void printf (const char *fmt, ...){ va_list args; uint i; char printbuffer[CFG_PBSIZE]; va_start (args, fmt); /* For this to work, printbuffer must be larger than * anything we ever want to
2014-11-19 16:11:20
528
转载 usb_control_msg
int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request, __u8 requesttype, __u16 value, __u16 index, void *data, __u16 size, int timeout)usb_control_msg(dev->udev, pi
2014-10-24 17:44:00
738
转载 字符显示——显示ASCII
我们来在lcd上显示一个ASCII码int main(void){ int fb_fd; int screen_size; fb_fd = open("/dev/fb0",O_RDONLY); ioctl(fb_fd,fb_var_screeninfo,&var); screen_size = var.xres * var.yres * var.bits_per_p
2014-10-24 17:38:58
2561
转载 list_entry()
Linux内核中,获取节点地址的函数list_entry()非常常用,由于其定义有点晦涩,先解析如下:list_entry的宏定义:#define list_entry(ptr, type, member) / ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 这个倒是不难理解:从一个
2014-10-17 13:48:51
371
转载 linux内核中链表操作
List_head下面的一些内容是我在学习linux内核中list.h文件中list_head时为了更好的理解而找的一些资料,我把它们整理一下发上来以供今后参考一下。其中也有部分是我自己在学习中的体会。下面的代码是我从list.h中复制过来的,是源码来的,没有改变,主要是为了大家能清楚的知道list.h的源码。List_head这个结构体在list.h中的主要作用不是保存数据而是作为一个链
2014-10-16 12:05:00
358
原创 制作最小根文件系统
最小根文件系统1./dev/console /dev/null2.init进程(一般来源于busybox)3./etc/inittab4.配置文件指定的程序5.C库创建过程:1.解压busyboxtar xjf busybox-1.20.0.tar.bz2 2.配置make menuconfig设置交叉编译选
2014-09-20 11:20:06
330
转载 BusyBox 编译出现问题---scripts/kconfig/lxdialog/dialog.h:128: error
radio@radio-desktop:/tmp/busybox-1.14.2$ make menuconfigHOSTCC scripts/basic/fixdepHOSTCC scripts/basic/split-includescripts/basic/split-include.c: In function ‘main’:scripts/basic/split-inclu
2014-09-19 20:53:33
625
转载 Error处理:新SDK加载老android项目不能运行
Error处理:Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException.导入Eclipse Android2.X项目后运行,提示报错:Console中提示:通过clean up,fix project之后问题均不
2014-09-16 10:17:04
2668
原创 4412学习日记——u-boot向linux内核传递参数
u-boot中启动内核会调用命令行参数bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
2014-09-09 11:56:53
498
转载 linux设备驱动——NandFlash驱动程序
首先要来弄明白Nand的硬件操作原理,1. 读ID 选中 NFCONT的bit1设为0 发出命令0x90 NFCMMD=0x90 发出地址0x00
2014-09-06 13:21:32
421
转载 数据位数
int的长度由处理器(16位,32位,64位)和比哪一期决定。首先从处理器来讲 :16位处理器中的int 占有16位 即2个字节 32位处理器中int占有32位 即4个字节 64位处理器中int占有64位 即8个字节附录:数据类型特别
2014-08-26 09:25:42
723
转载 linux设备驱动--ioremap和mmap
对于一个系统来讲,会有很多的外设,那么这些外设的管理都是通过CPU完成。那么CPU在这个过程中是如何找到外设的呢?尽管在一个系统中会有诸多的外设,在每个外设的接口电路中会有多个端口。但是如果系统能够每个端口都被赋予一个具体的地址值,那么在系统中就能轻易的找到任何一个外设。系统在管理的时候,不管是内存还是外设都需要分配一个内存地址。对于一个32bit的系统来讲,可寻址的范围为2^32=4G的
2014-08-24 20:57:07
990
转载 win7实用技巧
Win+E: 打开“资源管理器”。Win+R: 打开“运行”对话框。Win+D: 显示桌面Alt+D: 定位到地址栏。Alt+菜单栏首字母: 打开相应菜单。Alt+Tab: 切换程序。Ctrl+F: 定位到搜索框。Ctrl+W: 关闭当前窗口。Ctrl+ZCtrl+XCtrl+SCtrl+A
2014-08-22 09:14:02
578
转载 指针函数与函数指针的区别
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一
2014-08-22 08:19:36
197
转载 source insight快捷键
source insightCtrl+K : 复制一行F5 : 指定行号Ctrl+H : 替换查找参数:project wide : 项目内查找include subdirectories : 包含子目录查找case sensitive : 区
2014-08-22 08:16:57
569
转载 linux设备驱动——中断、定时器的用法
申请中断用int request_irq(unsigned int irq, irq_handler_t handler,unsigned long irqflags, const char *devname, void *dev_id)
2014-08-16 14:05:01
974
原创 第五章——u-boot源码启动流程
u-boot版本2010-12.globl _start_start: b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq
2014-08-09 08:32:47
524
转载 tar 解压缩命令
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出
2014-08-08 13:30:33
319
TA创建的收藏夹 TA关注的收藏夹
TA关注的人