- 博客(54)
- 收藏
- 关注
原创 keil Keil uVision4编译环境设置问题
遇见的问题:用的Keil uVision4编译器,我自己创建了一个c文件和相应的头文件,现有工程里面调用这个c文件中的函数,该怎么设置头文件路径和c文件路径。
2014-04-16 23:43:31
3375
原创 sqlite应用
1、查询是否存在某值;int doTest(StNvrGroupInfo *pUpdateGroupInfo){ if(! pUpdateGroupInfo) { return FIRMWARE_ERR(_ErrUserInvArgs); } YA_SI32 s32Ret = 0; sqlite3 * conn = NULL;
2013-08-23 16:18:12
263
原创 rsa加解密
rsa的介绍(略过);1、通过函数生成公私钥来完成加解密过程;int DeEncrypto(){ RSA* key; char msg[]="888888"; char msg2[256]; char msg3[256]; int r; puts("genrsa...(maybe a few seconds)"); key = RS
2013-08-19 09:54:18
305
转载 Linux下发生段错误时如何产生core文件
来着:http://os.51cto.com/art/201001/179621.htmLinux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。Linux下的C
2013-07-02 17:34:27
311
原创 sqlite一些注意事项
1、打开数据库API:sqlite3_open():如果数据存在就打开,如果不存在就创建,所以不建议使用!sqlite3_open_v2():数据库不存在时,将返回一个错误;注意:即使返回错误,也得调用sqlite3_close()来销毁数据库句柄,不然内存泄露。2、不能对视图数据进行修改;3、更新表中一行数据:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 =
2013-06-27 19:12:21
288
原创 eclipse用超级用户执行程序
用eclipse执行程序时,只有一般用户的权限,例如在读写/root文件夹下的文件时,就会报错;解决方法:在终端输入sudo -i获得root权限,然后在终端运行eclipse就可以使eclipse获得超级用户权限。
2013-06-27 10:20:09
255
转载 sql的select语句
来自:http://res.hersp.com/content/1154学习内容: 课程导入:在前面的Access学习中我们知道使用Access数据库的图形化界面对数据库进行各种查询等操作,那么如果我们自己做数据库应用系统怎么实现对数据库的各种操作呢? 一、认识SQL: SQL(Structured Query Language,结构化查询语言)诞生
2013-06-26 16:14:09
258
原创 用户权限管理设---基于数据库
嵌入式下数据库sqlite,以前没有用过数据,是新手。这篇帖子没有自己想法,主要是做整理;方案来自:http://blog.youkuaiyun.com/Jye13/article/details/9010059其他资料来源:http://bbs.youkuaiyun.com/topics/390417543、http://bbs.youkuaiyun.com/topics/390287683、http://www.cnbl
2013-06-25 17:34:11
204
转载 sem_open No such file or directory
来自:http://idsips.blog.163.com/blog/static/48001272201272984546782/1.http://blog.youkuaiyun.com/chenziwen/article/details/5800445(可用)这是由于在内核中,创建信号量的默认路径是/dev/shm。当你要创建一个信号量/tmp/mysem时,实际上是创建了一个/dev
2013-06-14 17:29:53
566
原创 用eclipse来运行命令行程序带参数的程序
右键点主类名 --》运行--》打开运行对话框--》Main(主类)--》右边Arguments(参数) 点他以后然后在下面Program arguments(程序参数里面):里面输入你要加的参数就可以 参数之间用空格隔开 输完以后点确定
2013-06-14 17:08:34
264
转载 eclipse快捷键
转自:http://hi.baidu.com/viste_happy/item/e4f6c11295ee0cfc64eabf4e1.选中你要加注释的区域,用ctrl+shift+C 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/* */注释3.要修改在eclispe中的命令的快捷键方式我们只需进入windows -> preference ->
2013-06-07 10:41:09
159
转载 嵌入式linux软件如何进行数据参数保存
转自:http://www.eccn.com/design_2012102510554011.htm大多数软件开发都会涉及到数据参数的保存与读取,小至运行的单片机的软件,大至操作系统级别的软件(如linux,windows,mac),均会有专门的子程序或者模块进行参数的保存和读取。不同的平台下开发,参数的保存与读取会存在一定的差异化,例如,单片机下,保存参数是写入eeprom或者 rom,
2013-06-05 14:02:33
423
翻译 jump to label crosses initialization of...
转自:http://blog.sina.com.cn/s/blog_57dab0f60100oiru.htmlC++ 里面使用goto进行跳转的时候,如果使用不当,会出现“jump to label crosses initialization of...”这样的错误,出错的原因在于,某些类在未初始化的时候就程序就使用了goto,(换句话说,有些类是在goto语句出现之后才进行的初始化(执
2013-06-04 16:11:48
260
原创 优先级倒置问题
为了避免优先级倒置问题,必须让低优先级线程尽快释放临界资源。目前解决优先级倒置通常有两种方法,一种是优先级继承(priority inheritance),另一种是优先级顶置;在优先级继承方案中,当高优先级线程在等待低优先级的线程占有的临界资源时,让低优先级线程继承高优先级线程的优先级,即把低优先级线程的优先级提高到高于优先级的线程的优先级。当低优先级释放高高优先级线程等待的临界资源时,立即把
2013-05-22 20:41:46
780
转载 mdev实现U盘或SD卡的自动挂载
转自:http://www.embedu.org/Column/Column167.htmsdcard出厂的时候,会有两个分区。设备节点就是mmcblk0, mmcblk0p1.mmcblk0,这里的0就是sdcard号,假如有两个sdcard插入,就是mmcblk0, mmcblk1。mmcblk0p1,这里的p1就是分区了,假如有三个分区,则是mmcblk0, mm
2013-05-22 13:36:28
288
原创 mount: mounting /dev/block/mmcblk0p12 on /sdcard failed: Invalid argument
重新格式一下就ok啦。
2013-05-22 11:54:46
450
转载 mount/umount 16问
转自:http://www.linuxdiyf.com/bbs/thread-19086-1-4.html###1. 用mount/umount能做什么?不同的操作系统使用不同的文件系统格式。MS-DOS支持FAT16文件系统,Windows98支持FAT16、FAT32文件系统,WindowsNT支持FAT16、NTFS文件系统,Windows2000则支持FAT16、FAT32、N
2013-05-22 09:53:42
237
转载 inux 下 /bin /sbin 的区别
转自:http://blog.sina.com.cn/s/blog_8184e03301012z2x.html/bin,/sbin,/usr/bin,/usr/sbin区别/ : this is root directory root 用户根目录/bin : commands in this dir are all system inst
2013-05-22 09:22:37
265
转载 mount nfs时出现错误:reason given by server: Permission denied
如果你以前没有装过nfs服务的话那么首先要下载几个包:#apt-get install nfs-kernel-server#apt-get install nfs-common //可选安装nfs-kernel-server的时候系统会自动下载另外一个包portmap;安装结束后,配置文件是/etc/exports,主要是设置服务器的共享目录以及权限的,在后面加上你的共享目录即可。我的
2013-05-21 20:27:11
291
原创 线程默认属性
线程初始化属性:int pthread_attr_init(pthread_attr_t *tattr);tattr缺省属性值:属性 值结果scope PTHREAD_SCOPE_PROCESS线程与进程中的其他线程发生竞争。detachstate PTHREAD_CREATE_JOINABLE线程退出后,保留完成状态和线程ID。stackaddr NULL
2013-05-18 15:18:21
200
原创 内联函数--inline function
定义:C99标准这样叙述:把函数变为内联函数将建议编译器尽可能快速地调用该函数。上述建议的效果由实现来定义。因此,是函数变为内联函数可能会简化函数的调用机制,但也可能不起作用。特点:因为内联函数没有预留给它的单独代码块,所以无法获得内敛函数的地址。内敛函数不会在调试器显示。(我不知道这个调试器是什么,GDB(⊙_⊙)?,但是我编了一个Demo,用GDB调试可以进入到内敛函数中)
2013-05-18 11:29:24
251
原创 栈溢出
摘录:C/C++程序的栈是一个内存片段,用于存放每个活动的函数调用的栈帧(stcak frame)。栈帧由返回地址、函数的参数和局部变量组成。栈跟踪(stcak trace)是一个实际的栈帧链,这个链从调试器当前停止或暂停的最顶部函数开始,向下一直到main()函数。当嵌套函数调用的链过长,造成栈没有足够内存来存储当前栈帧时,就发生了栈溢出。
2013-05-17 01:07:38
218
原创 valgrind still reachable 的解释
最近用valgrind的来检测程序是否存在内存问题,测试结果如下:==4445== HEAP SUMMARY:==4445== in use at exit: 554 bytes in 20 blocks==4445== total heap usage: 59 allocs, 39 frees, 14,056 bytes allocated==4445== ==4445=
2013-05-06 13:48:45
535
转载 valgrind 内存泄露检测
转自:http://www.verydemo.com/demo_c167_i12888.html1、Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。2、Valgrind包括如下一些工具:Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经
2013-05-06 11:20:28
209
转载 字节对齐问题,老生常谈,O(∩_∩)O~
转自:http://www.cnblogs.com/motadou/archive/2009/01/17/1558438.html1 -- 结构体数据成员对齐的意义许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的起始地址的值是某个数k的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。这种
2013-05-02 17:22:15
169
原创 打印线程pid,便于通过终端查看相关参数
背景:Distributor ID: UbuntuDescription: Ubuntu 11.10Release: 11.10Codename: oneiric#include /*此头必须带上*/void printThreadId(){ syscall(SYS_gettid); printf("Thread ID%d\n", syscall(SYS_ge
2013-04-28 11:22:24
228
原创 libxml2解析xml字符串例子
#include #include #include #include typedef struct _tagStCmdData{ unsigned s32CmdSerial; int s32CmdCnt; //同个命令的个数; int s32CmdSize; /* sizeof(struct) */ void *PData;}StCmdData;
2013-04-27 19:17:51
523
转载 Linux .o a .so .la .lo的区别
转自:http://www.eetop.cn/blog/html/40/202640-8862.htmlo: 编译的目标文件a: 静态库,其实就是把若干o文件打了个包so: 动态链接库(共享库)lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息
2013-04-27 11:03:16
252
原创 libxml2-2.9.1的交叉编译
下载源码-》解压-》交叉编译;CC= arm-linux ./configure --prefix=/home/libxml2-2.9.1/libxml2-pc --host=arm-linux --with-minimum=yes --with-reader=yes --with-output=no --with-threads=yes --with-tree=yes --with-wr
2013-04-24 13:48:27
553
原创 开源代码在嵌入式下应用总结
1、根据需求选择开源代码;2、对比开源代码,货比三家,统计并作出总结,例如:是否满足要求、扩展功能、代码语言:C/C++、是否可用于嵌入式、生成库的大小;3、先在PC端编译通过并安装,编写代码做测试,因为PC端调试方便,不像嵌入式端资源受限制;4、测试通过,然后在交叉编译源代码;详细阅读configure的帮助文件,添加/删除相关功能;
2013-04-24 09:20:24
228
转载 常见C/C++ XML解析器比较
来自:http://www.metsky.com/archives/578.html常见C/C++ XML解析器有tinyxml、XERCES、squashxml、xmlite、pugxml、libxml等等,这些解析器有些是支持多语言的,有些只是单纯C/C++的。如果你是第一次接触到XML解析,那么关于XML解析器的选择问题的确令人头疼,我们先看一下这些解析器有哪些特点。一、
2013-04-23 16:21:57
175
原创 交叉编译sqlite3
从http://www.sqlite.org网站下载源码;解压:tar -xzf sqlite-autoconf-3071500.tar.gz打开sqlite-autoconf-3071500/sqlite3.c修改下(具体是22719行把"!"去掉就可以了) 22719 #if defined(HAVE_POSIX_FALLOCATE) \ 22720
2013-04-23 16:18:23
274
原创 lib2xml查找、添加操作
用lib2xml解析器来先组装一个xml字符串: 1 192.168.249.70 80 在节点处,添加一个节点:代码:xmlNodePtr xmlRoot; xmlDocPtr doc = (xmlDocPtr)s32doc; char s8buf[10] = "\0"; //g
2013-04-22 16:55:39
293
原创 libxml的DOM模式
代码:#include #include #include int main(int argc, char **argv){ int rc; xmlTextWriterPtr writer; xmlDocPtr doc; xmlNodePtr node; xmlChar *tmp; xmlCh
2013-04-20 14:51:32
255
转载 关系型数据库系统简介
来自:http://book.jz123.cn/Oracle/7047.htm1.1.1 什么是关系型数据关系型数据是以关系数学模型来表示的数据。关系数学模型中以二维表的形式来描述数据,如表1.1和表1.2所示。1.1.2 什么是关系型数据库1. 什么是主码(主键)能够唯一表示数据表中的每个记录的【字段】或者【字段】的组合就称为主码。2. 什么是外码(外键)表1.2
2013-04-16 20:30:50
242
原创 ubuntu 下sqlite3 version mismatch
背景:1、[root@sqlite-autoconf-3071502]uname -a Linux ubuntu 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 17:34:21 UTC 2012 i686 i686 i386 GNU/Linux2、自己下载的sqlite3的源码,通过configure,make install;当运行时
2013-04-12 09:44:01
283
原创 svn定时重启
首先是:SVN的控制,用SVN自带的shell命令:ubersvncontrolubersvncontrol -hUsage: /opt/ubersvn/bin/ubersvncontrol {run|start|stop|restart}来实现运行|开始|停止|重新启动;然后使用linux的定时执行工具;cron(详细应用可看:http://blog.youkuaiyun.com/wa
2013-04-11 16:38:18
232
转载 linux中的cron和linux at命令用法详解
转自:http://os.51cto.com/art/200908/141167.htmlinux中的Cron命令是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond
2013-04-11 16:33:04
351
转载 eclipse一些设置
来自:http://hi.baidu.com/mahaibao/item/cf4b050c6af4817fbfe97e93通过这个设置路径:window->preference->c/c++->code styple->code template来修改,具体修改根据自己习惯; 调试设置断点:在你想调试的程序前的地方双击左键,就出现了断点;添加SVN文
2013-04-07 08:53:53
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人