随笔分类 - Embedded System
摘要:2010-7-25今天移植BOA!发现问题,上 网搜索了 一 戳,搞点 资料 上来 在src目录下运行./configure 生成Makefile文件,修改 CC = arm-linux-gccCPP = arm-linux-gcc–E4)make 错误 A)make:yacc:命令未找到 apt-get install bisonmake: lex:命令未找到make: *** [lex.yy.c] 错误 127apt-get install flex下 面 是 网友提供 boa是一种非常小巧的web服务器,其可执行代码只有大约60kb左右。作为一种单任务web服务器,boa只能依次 完成用
阅读全文
摘要:2010-7-22 根文件系统的构成/dev--设备文件节点用目录。如果使用设备文件系统,则把它挂载到这里/proc—挂载 proc 文件系统/bin—存储系统基本命令的目录/etc—系统启动配置等脚本,如 rcS、inittab、fstab 等/lib—系统默认的动态链接库目录/usr—用户目录,包括/usr/bin、/usr/sbin 等目录/sbin--存储系统基本命令的目录/tmp—临时目录,此目录不是必需的 通常这些数据所在的目录大小是要经/var—包含系统一般运行时要改变的数据, 常变化 在linux中ssize_t是signed size_t,size_t是标准C库中定义的...
阅读全文
摘要:2010-7-20what is MTD?Description:MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱 动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。CFI接口的MTD设备分为四层(从 设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。 MTD原始设备描述 所有组成MTD原始设备的Flash芯片必须是同类型(无论是inter..
阅读全文
摘要:2011-4-25 这几天,XXX的项目让我做了一个运动轨迹检测的程序,主要用来检测汽车和给定路线的偏移问题,和定位汽车主要在什么路段上。 如下图下面是一些算法和资料:首先,要确定移动的点,也就是汽车和线段之间的距离,不能直接理解成点到直线的距离,因为当出现下面的情况的时候,点P到BC和到A的距离都是一样的,这样就区分不点到底靠近哪条线上了。很显然,点固然靠近的应该是线段AB,所以我对这种情况进行了一些改进,如果遇到这种情况,那么直接计算P点到B之间的距离。其实这个程序的关键都是算点到线段的距离,而不是点到线段的高,这些要分清楚。点到线段距离的计算:点到直线的距离可以直接做垂线求取,但线段是有
阅读全文
摘要:在一个二维平面上给定两个圆的圆心横纵坐标、半径共6个参数, 求交点. 这个问题无非是解二元二次方程组. 普通二元二次方程联立消元求解的困难在于, 中间过程里的系数会变得非常复杂, 从而导致容易出错---因为公式毕竟还是要人来推导, 人的出错率比计算机要高得多得多---改用圆的参数方程求解, 可以在显著地减轻这个负担. 现在谈谈这问题的求解过程. 选择圆的参数方程的好处是方程是一次的, 化简方便, 虽然是三角函数方程并且既有正弦也有余弦, 不过到最后可以很方便地求出来. (下面分析中x^y表示x的y次方) 大家还记得圆的参数方程吧, 圆心 (x0, y0), 半径为 ...
阅读全文
摘要:排列组合问题的通用算法尽管排列组合是生活中经常遇到的问题,可在程序设计时,不深入思考或者经验不足都让人无从下手。由于排列组合问题总是先取组合再排列,并且单纯的排列问题相对简单,所以本文仅对组合问题的实现进行详细讨论。以在n个数中选取m(0=m; i--) //注意这里的循环范围{ b[m-1] = i -1; if (m> 1)combine(a,i-1,m-1,b,M);else// m == 1, 输出一个组合{for(int j=M-1; j>=0; j--)cout n ? n : m;int* order = newint[m+1];for(int i=0;i<=m
阅读全文
摘要:今天想用C语言实现下数学上的组合和排列,一直很郁闷。 上网搜索到一个例子:#include #include //从n个元素的数组a中,取m个元素的组合bool zuhe(char a[],int n,int m){//p[x]=y 取到的第x个元素,是a中的第y个元素 int index,i,*p; p=(int*)malloc(sizeof(int)*m); if(p==NULL) { return false; } index=0; p[index]=0;//取第一个元素 while(true) { if(p[index]>=n) {//取到底了,回退 if(index==0) {
阅读全文
摘要:昨日曹兄问我一个问题,想出了一个动态分配二维数组的ANSI C程序。 其实思想很简单,我一开始就想到了,肯定是先建立指针数组,然后每个指针数组再分配连续的空间。 画了个草图,可能看起来不怎么好看。。。 先定义一个指向指针的指针P,char**p,然后动态分配指针数组*p[row],就是二维数组的行,最后给每个指针数组又动态分配空间p[i][col],其实就是二维数组的列。这样就完成了动态数组的分配。伪代码:ParrayRow =动态分配行数组指针,即动态分配指针数组。for(i = 0; i #include #include #include #include char **array_..
阅读全文
摘要:C Standard LibraryContents : Diagnostics : Character Class Tests : Error Codes Reported by (Some) Library Functions : Implementation-defined Floating-Point Limits : Implementation-defined Limits : Locale-specific Information : Mathematical Functions : Non-local Jumps : Signals : V...
阅读全文
摘要:用sprintf函数出现了点问题,上网学习了一下 下面是笔记 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ...);除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。prin...
阅读全文
摘要:今天遇到一个问题,下面这个程序:#include void main(void){int a;char c ='a';scanf("%c",&a);printf("asdfasdf %c\n",a);scanf("%c",&c);printf("asdfasdf %c\n",c);} 看起来好像很简单,但是我在VC和在GCC编译以后,都遇到一个问题。就是在执行到红色的语句的时候,直接跳转到后边的printf。意思就是直接跳过了scanf。为什么会这样呢? 经过上网搜索和询问super
阅读全文

浙公网安备 33010602011771号