摘要:
当在编译VS项目时,出现如下错误: 这个错误,表明在连接阶段出错。COFF为Common Object File Format,通用对象文件格式,它的出现为混合语言编程带来方便。 链接器执行错误,经过本地搜索链接器,cvtres.exe 本地有四个,从所在路径的名称可以知道,第一个是amd平台上面的,第二个是x86平台上面的,第三第四个是... 阅读全文
摘要:
1. C语言中无符号数与有符号数 unsigned int a = 6;
int b = -20;
printf("a+b = %d\n",a+b); #输出-14
printf("a+b %s \n",(a+b)>0 ? "> 0":" 0 有符号数和无符号数在进行比较运算时(==,>=,,0 记住一点:-1为有符号整型数据,常量数值在整形范围内,均为int... 阅读全文
摘要:
Doxygen是一种开源跨平台的,类似JavaDoc风格描述的文档系统,支持C、C++、Java、Objective-C等语言。可以从一套归档源文件开始,生成HTML,XML,pdf等不同风格的格式。 按照约定的格式注释源代码,用工具处理注释过的源代码产生文档,通过这种方式产生文档,有以下几个好处。 1. 便于代码和文档保持同步 2. 可以对文档做版本管理 使用方法 要使用D... 阅读全文
摘要:
在调试上层程序时,经常会遇到的错误是段错误,当出现段错误时,系统往往只会给出一个 segmention error,而在没有更多的信息(默认不产生core dump),在这种情况下,可以通过修改内核启动参数来使能调试模式,让用户态出现段错误时,打印出更多的提示信息,有助于定位错误。 分析流程: 先从在内核态的段错误出发,当产生内核态的段错误时,通常会打印出如下字段:... 阅读全文
摘要:
本文将介绍如何移植linux-3.4.2内核到JZ2440开发板上的全过程,使用的交叉编译工具版本为 arm-linux-gcc-4.3.2.tar.bz2 下面来一步一步介绍如何移植。 由于kernel的启动参数是由Uboot传递的,关键的参数有 R0=0 R1=Mach-Type R2=Tag参数地址 其中,Mach-Type为内核支持板子的硬件型号,ta... 阅读全文
摘要:
下载最新版U-boot,建立Source Insight工程,在建立工程的时候注意,去掉一些很明显不属于硬件的分支代码。 例如,arch目录下面的除开arm子目录之外的其他目录,都可以不添加。 arm目录下,cpu子目录只需要添加和板子对于的体系结构代码即可。 例如,板子S3C2410是arm920t的... 阅读全文
摘要:
在嵌入式开发中,有时候需要进行源码级别的调试,可以设置断点,单步执行,相比于每步打印printf或者printk来说,更加友好。下面就来介绍这种调试方法。 gdb交叉调试类似于网络浏览器,本地PC为客户端,远程开发板为服务器端,双方都要统一编译工具链,版本最好保持一致。 --target 指定了目标机交叉编译器前缀,比如--target=arm-linux ,缺省值为... 阅读全文
摘要:
1 . 调试输入子系统 在调试输入子系统时,input_system,可以通过hexdump 来打开并且实时读取对于输入设备的值,数值关系如下图所示: 每一次按键事件上报后,都会有type为0的EV_SYN同步事件触发。value中的1表示按下,0表示松开,2代表重复类事件,设置按键中断为边沿触发,一次按键会触发两次中断。 如果开启了图形界面,可以打开图形界面... 阅读全文
摘要:
在进行嵌入式开发时,通常使用nfs,在开发板上面远程挂载主机上的目录,这样,省去了拷贝复制文件的过程,加快开发速度。在这里,给出自己在nfs相关的设置上出现的问题。 本机IP为:192.168.0.104 开发板IP为:192.168.0.200, 必须保证他们在同一网段内。 启动系统后的挂载命令: 我之前使用的是如下: ... 阅读全文
摘要:
第九章 人力资源管理,首先要明确需要的人,其次,找到合适的人,再次,用好身边的人,最后,留住优秀的人。 企业看战略,项目看活动,个人看需求。对于一件事情来说,一个人负责,它的责任是100%,两个人都负责时,他的责任是0. 责任分配矩阵(RAM)用来显示分配给每个工作包的项目资源的表格,它显示工作包与项目团队成员之间的关系,可确保任何一项任务都只... 阅读全文