蝴蝶翅膀的力量,也许能够改变这个世界。
全部博文(81)
发布时间:2014-10-29 16:55:17
某块单板在linux内核启动过程中出现异常,定位下来是访问/dev/console时出现错误,最后出错在fs/squashfs/lzma_wrapper.c->unlzma()函数。该单板的rootfs为squashfs,而flash是NAND芯片。定位思路:将squashfs_fs.h pr_xx改为printk,这样对squashfs的访问都可以打印出来。#define TRACE(s, args...) pr.........【阅读全文】
发布时间:2014-09-24 11:03:01
value = malloc(len);A();free(value);发现value在free的时候,值被修改了。看反汇编,value是寄存器s1。在调用A()时,s1压栈,返回后弹栈。说明在A()出现了堆栈溢出的问题。在A(){unsigned int a[100];变量1;...变量n;unsigned int b[100];memset(a, 0xff,sizeof(a));memset(b, 0xff, sizeof(b));...语句.........【阅读全文】
发布时间:2014-09-24 10:10:03
调试了半天boot,发现一个及其古怪的不可能发生的问题。深入代码调试,发现定义的c语言 struct hsearch_data env_htab = {0}; 内容居然不是0。一想,是不是bss段没清零,查看了启动的汇编,那段代码被注释掉了,果然!为什么被注释掉,鬼才知道,芯片厂商的工程师估计在写代码的时候失恋了。.........【阅读全文】
发布时间:2014-09-24 09:52:18
1. mount的时候,提示错误"mount: Mounting /dev/mtdblock5 on /mnt failed: No such device" 一种可能是可能确实没有/dev/mtdblock5这个设备,还有一种可能是linux内核配置没有添加jffs2的支持。我遇到的是后一种。2. mount的时候,提示错误"mount: Mounting /dev/mtdblock5 on /mnt failed: Input/ou.........【阅读全文】
发布时间:2014-07-11 11:42:34
单板linux内核添加spi flash驱动后,在shell下敲reboot命令挂死。在内核中的reboot的系统调用中添加打印后,发现最后代码走到了对CPU的寄存器写,让CPU复位。好像看不出有任何问题。联想起之前的文章 "32M的spi接口Flash和24bit地址模式 " (http://blog.chinaunix.net/uid-26598889-id-4304874.html)。CPU启动时是按.........【阅读全文】