摘要: 内存调试:检查段错误memwatch工具来检测段错误将需要测试文件与memwatch.c共同编译 内核调试错误:Oops机制(内核提供)Unable to handle kernel NULL pointer dereference at virtual address 00000000pgd = 阅读全文
posted @ 2016-08-11 18:38 自由石匠 阅读(457) 评论(0) 推荐(0) 编辑
摘要: make jCPU_NUM 以CPU_NUM数量同时进行编译CPU_NUM = 当前PC的处理器数量*处理器的核心数 从上电开始1、系统上电,执行固化在IROM中的代码,目的初始化基本的系统功能,已经加载BL1代码2、BL1代码继续进行初始化,初始化DRAM控制器(400000000-8000000 阅读全文
posted @ 2016-08-10 20:41 自由石匠 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 源码阅读方法1、源码目录结构2、配置(支持当前使用的硬件)3、编译(Makefile)4、启动流程 工具使用1、在同一文件查找 shitf+8 N n进行上下查找 2、在工程目录中 ctags uboot版本选择:2013 uboot 2010版本前 只能识别zImage 文件 uboot 2013 阅读全文
posted @ 2016-08-10 13:30 自由石匠 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 驱动使用方式1、编译到内核中 * make uImage进入到系统后mknod /dev/led c 500 0 创建设备节点 2、编译为模块 M make module进入到系统后 mknod /dev/led c 500 0 创建设备节点insmod fs4412_led_drv.ko(驱动可执 阅读全文
posted @ 2016-08-10 12:50 自由石匠 阅读(351) 评论(0) 推荐(0) 编辑
摘要: make menuconfig 错误,显示有curse 字样的文件没有装。用apt-get install 找不到,网上其他的办法说是源的问题,所以又更新了一下源,但是还是不好用,网速慢,更新太慢。 就直接下载文件安装了。很好使。下面是下载链接。其中有一个.deb文件需要两外两个安装后才能安装。 h 阅读全文
posted @ 2016-08-09 16:17 自由石匠 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: Windows操作系统BIOS(设置) Windows系统 文件系统 驱动程序 应用程序 linux操作系统bootloader(引导系统) kernel(内核) 文件系统 驱动程序 应用程序 交叉编译:程序编译与执行不在同一台机器 交叉编译工具链:交叉编译需要使用的工具 gcc编译流程1、预处理 阅读全文
posted @ 2016-08-06 09:30 自由石匠 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 逻辑运算: 与运算&:与0清零 清零用与运算 或运算 |:或1置一 置一用或运算 异或 ^:不同为1 /*****单个寄存器清零置一******************************************************** int a =0x00000000; int b = 阅读全文
posted @ 2016-08-03 19:35 自由石匠 阅读(1452) 评论(0) 推荐(0) 编辑
摘要: 【1】网络套接字的属性 getsockopt()/setsockopt() 获取/设置一个套接口选项 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); 功能:获取网络套接字的属性 阅读全文
posted @ 2016-06-30 09:09 自由石匠 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1 /*server.c*/ 2 #include 3 #include 4 #include /* See NOTES */ 5 #include 6 #include 7 #include 8 #include 9 #define err_log(errlog) do{ perror(errlog); exit(1);}while(0) 1... 阅读全文
posted @ 2016-06-27 20:05 自由石匠 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 6 void *pthread_fun(void *arg) 7 { 8 int b; 9 b = *(int *)arg; 10 printf("b = %d \n",b); 11 int i = 5 ; 12 while(i > 0) 13 { 1... 阅读全文
posted @ 2016-06-24 11:53 自由石匠 阅读(802) 评论(0) 推荐(0) 编辑