Table of Contents 1. Overview1.1 Structure of this Manual1.2 The GNU Assembler1.3 Object File Formats1.4 Command Line1.5 Input Files1.6 Output (Object) File1.7 Error and Warning Messages2. Command-Line Options2.1 Enable Listings:`-a[cdhlns]'2.2`-D'2.3 Work Faster:`-f'2.4 .include search Read More
posted @ 2013-04-23 14:34 moon_cat Views(386) Comments(0) Diggs(0) Edit
对IA32(X86)而言,当发现异常时,CPU硬件做了很多事情,比如切换 SP,CR3,CS等等(读取TSS),而对于ARM来说,处理的流程如下CPU 硬件: : 将发生异常的下一条指令保存至 LR_xxx :备份当前 CPSR 到该模式的 SPSR_xxx :重置修改 CPSR,强制进入 相应的模式,强制进入ARM模式,关闭 FIQ/IRQ 响应 : 修改PC = (reset = 0/0xFFFF0000,undef = 4/0xFFFF0004...... )OS(软件) :切换 sp :保存上下文 {r0-r12,sp} : 执行处理函数 : 执行函数返回 : 恢复上下文{r0-r12 Read More
posted @ 2013-04-23 14:32 moon_cat Views(252) Comments(0) Diggs(0) Edit
# sudo apt-get install libusb libreadline下载 jlink_linux.tar.gz$ tar -vxzf jlink_linux.tar.gz -C jlink$ su -i# cd jlink# cp libjlinkarm.so.4* /usr/lib# cd /usr/lib# rm libjlinkarm.so.4# ln -s libjlinkarm.so.4.30.0 libjlinkarm.so.4# ldconfig# cd# cd jlink# cp 45-jlink.rules /etc/udev/rules.d/# groupad Read More
posted @ 2013-04-22 22:28 moon_cat Views(366) Comments(0) Diggs(0) Edit
ARM920T 内核,提供了16个 DOMAIN 来说明 不同规格的权限访问模式,很多人会问,为什么弄16个之多,才几个嘛,一个1M,一个1K,一个 4K页,一个64K页,开始我也是这么问的,但是后来看到了手册,再联想一下芯片设计的向后扩展,我能理解,有两个原因,1.这是因为为了做扩展,很有可能后面做出2K的页,或者8K的页,这不是不可能的,到时候保证兼容前面的系列那就是大问题了2.一个规格可能有几种访问方式,可以修改相应的寄存器,就能switchA collection of sections, large pages and small pages of memory, which can Read More
posted @ 2013-04-22 16:38 moon_cat Views(248) Comments(0) Diggs(0) Edit
最近买了一 个二手的谷歌G1手机,08年的,实在是太老了,号称是第一款安卓机器,买来的时候已经刷好安卓2.3,但是速度实在不敢恭维,剩余的内存小的实在可 怜,SO 我去安卓网G1/G2专区寻找好用的固件,其中机峰2.3.4 和麦兜 magic beta1 和 hero beta 2,还有诺言的2.3.7 速度超级棒,用的都是极度精简,速度可想而知,但是弊端也凸显无疑:稳定性大大下降,软件功能严重不足,只好放弃,我从下午2点开始到晚上3点,刷机了不 下15个固件,从1.6到。2.3.7刷了个遍,其中1.6的速度和极度精简相近,但是支持对软件太少,终于在安卓2.2 专区找到了一个能跑在G1近乎完. Read More
posted @ 2013-04-21 12:19 moon_cat Views(315) Comments(0) Diggs(0) Edit
#vim ~/.vimrclet &termencoding=&encoding set fileencodings=utf-8,gbk:wqalOK! Read More
posted @ 2013-04-19 08:59 moon_cat Views(4861) Comments(0) Diggs(0) Edit
使用uboot 写nand flash 是不需要FS支持的,但是我查看 uboot 源代码的时候,发现这行 "nand write.jffs2 xxxxx.." jffs 是一个文件系统,这是为什么呢?nand write:向Nand Flash写入数据,如果NandFlash相应的区域有坏块,则直接报错。nand write.jffs2:向Nand Flash写入数据,如果NandFlash相应的区域有坏块,可以跳过坏块。nand read:读取Nand Flash相应区域的数据,如果NandFlash相应的区域有坏块,则直接报错。nand read.jffs2s:读取N Read More
posted @ 2013-04-17 21:36 moon_cat Views(1270) Comments(0) Diggs(0) Edit
moon_cat 转 如何编写linux下nand flash驱动-1 【编写驱动之前要了解的知识】1. 硬件特性:【Flash的硬件实现机制】Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论... Read More
posted @ 2013-04-17 15:56 moon_cat Views(232) Comments(0) Diggs(0) Edit
arm-linux-gcc 编裸机程序时,ld 时突蹦出这么一条 error ,指向的正是除法指令,arm920t,是armv4,其并不支持除法指令,但是却支持软浮点,嘿嘿,说白了就是一个模拟除法的静态库,那这个函数在哪儿? 谷歌发现,是 libgcc.a 库$ su -i# find / -name 'libgcc.a' -exec dirname {} \; > ~/libpath...# vim Makefile 修改添加LIBPATH最后的命令行大致是如此arm-linux-ld -Ttext 0xxxxxx -g start.o xxx.o xxxx.o -o Read More
posted @ 2013-04-08 20:35 moon_cat Views(3774) Comments(0) Diggs(1) Edit
grub > _出现这个情况是 menu.ls 信息不对,很多的情况是因为你的分区表坏了很简单插入 live cd,试用模式,进入终端,可以选择修复 grub,也可以按照以下做法$ sudo -i # grub> find /grub/stage1 > root (hd0,8) /* 假设找到 hd0,8 */> setup (hd0)> quit# reboot Read More
posted @ 2013-04-07 22:03 moon_cat Views(209) Comments(0) Diggs(0) Edit