随笔分类 -  linux

一个动态内存管理模块的实现
摘要:北京恒基伟业电子产品有限公司 徐 文 来自:单片机与嵌入式系统应用 摘要:介绍一个动态内存管理模块,可以有效地检测C程序中内存泄漏和写内存越界等错误,适用于具有标准C语言开发环境的各种平台。关键词:C语言 动态内存 内存泄漏 写越界引言当 前,绝大多数嵌入式平台上的软件都采用C语言编写。除了代码简洁、运行高效之外,灵活操作内存的能力更是C语言的重要特色。然而,不恰当的内存操作通常也 是错误的根源之一。如“内存泄漏” ——不能正确地释放已分配的动态内存,就是一种非常难于检测的存错误。持续的内存泄漏会使程序性能下降到最终完全不能运行,进而影响到所有其它有动态内存 需求的程序,在某些相对简单的嵌入式 阅读全文
posted @ 2013-06-02 11:20 飞奔的猪 阅读(257) 评论(0) 推荐(0)
Linker Script 链接器脚本
摘要:每个链接都由链接脚本控制着,脚本由链接器命令语言组成。脚本的主要目的是描述如何把输入文件中的节(sections)映射到输出文件中,并控制输出文件的存储布局。大多数的链接脚本就是做这些事情的,但在有必要时,脚本也可以指导链接器执行一些其他的操作。链接器总是使用链接器脚本,如果你没有提供一个你自己的脚本文件的话,编译器会使用一个缺省的脚本,而它被编译进链接器(?)。你可以使用"-verbose"命令行参数来显示缺省的链接脚本。而某些命令行选项,像"-r","-N"会影响缺省的链接脚本。在命令行选项中,通过参数"-T" 阅读全文
posted @ 2013-06-02 11:19 飞奔的猪 阅读(752) 评论(0) 推荐(0)
我也来学做嵌入式Linux系统V0.1
摘要:第一章 前言目的本文的目的,是讲述嵌入式Linux系统的建立、开发的一般过程。制作一个小型的Linux的系统,可以移植至其它硬盘、软盘、优盘、flash rom……关于作者 九贱,E名kendo,喜欢网络入侵技术、防火墙、入侵检测技术及网络技术,对Linux也颇感兴趣,想认识有共同爱好的朋友。最近闲暇,把一些学过的东西写下来,总结总结,以作备忘这需。已完成的有《网络入侵检测设计与Snort2.2源码分析》和这篇《我也来学做嵌入式Linux》。正在进行中的有《Windows防火墙技术实现大全》和《Linux防火墙实现及源码分析》。大家可以在CU上,或者是到我的小站www.skynet... 阅读全文
posted @ 2013-06-02 11:03 飞奔的猪 阅读(501) 评论(0) 推荐(0)
winCE DEBUGZONE
摘要:对于实时系统,如何调试是一个很难解决的问题,包括对系统内核的调试,对驱动程序的调试,对应用程序的调试等。对于应用程序,通常各集成开发环境都提供了 常规的单步跟踪等调试手段。而对于另两个的调试,Platform Builder除了为我们提供了常规的断点跟踪等手段以外,还和系统的源程序配合使用了一种新的调试手段——Debug Zones调试区。 通常,我们都是利用OutpubDebugString函数来实现调试信息的输出的,但是由于系统底层的调试信息非常繁多,如果这样大量的调试信息用于实时输出的话一定会影响到系统的性能和实时性,也就影响到了系统的运行。如果有一种方式能允许开发人员自己选择输出... 阅读全文
posted @ 2013-06-02 11:02 飞奔的猪 阅读(243) 评论(0) 推荐(0)
Linux/Unix环境下的make和makefile详解
摘要:无论是在Linux还是在Unix环境中,make都是一个非常重要的编译 命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和 makefile工具可 阅读全文
posted @ 2013-06-02 10:59 飞奔的猪 阅读(415) 评论(0) 推荐(0)
想成为嵌入式程序员应知道的0x10个基本问题
摘要:C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去 阅读全文
posted @ 2013-06-02 10:57 飞奔的猪 阅读(175) 评论(0) 推荐(0)
如何编写Linux设备驱动程序
摘要:Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动 程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作 要自己来编写,而且调试也不方便。以下的一些文字主要来源于khg,johnsonm的Write linux device driver,Brennan's Guide to Inline Assembly,The Linux A-Z,还有清华BBS上的有关device driver的一些资料。一、Li 阅读全文
posted @ 2013-05-30 17:07 飞奔的猪 阅读(337) 评论(0) 推荐(0)
编译Linux驱动程序 遇到的问题
摘要:基于Ubuntu 12.10,编译Linux驱动程序1. 准备linux内核源码此时,我要编译的驱动是基于Ubuntu 12.10内核的,所以我下载的是其对应的内核源码包:linux_3.5.0-17.28.diff.gzlinux_3.5.0-17.28.dsclinux_3.5.0.orig.tar.gz使用命令dpkg-source -x linux_3.5.0-17.28.dsc解压内核源码包,并将diff包中的patch打上。2. 设置内核源码正确的路径# cd /root/linux-3.5.0# ln -s /root/linux-3.5.0 /lib/modules/3.5.0 阅读全文
posted @ 2013-05-30 15:40 飞奔的猪 阅读(5432) 评论(0) 推荐(0)
Linux kernel进行编译时提示No rule to make target `menconfig'
摘要:进入linux-2.6.37目录下。运行make menconfig,提示:make[1]: *** No rule to make target `menconfig'. Stop.截图如下:对于这个错误有的说需要在usr/src目录下进行。但是cp文件到usr/src目录下,仍旧无法运行makemenconfig。怀疑内核文件损坏,重新下了最新的一份。但是报错情况依旧:(好在makeconfig。为了体验一下,直接全部回车默认。。。。。生成config了。但是make的时候有提示:make: *** No rule to make target`include/config/aut 阅读全文
posted @ 2013-05-30 15:32 飞奔的猪 阅读(7141) 评论(0) 推荐(0)
make: *** 没有规则可以创建目标"menuconfig". 停止
摘要:1.百度搜一下,看到说只要安装libncurses5-dev就够了。然后apt-get install libncurses5-dev若显示:正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 E: 未发现软件包 libncurses5-devltf@ltf-Inspiron-3420:~$ sudo apt-get install libncurses5-dev正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 E: 未发现软件包 libncurses5-dev说明未找到包,还需下一步。2。运行sudo apt-get 阅读全文
posted @ 2013-05-30 15:31 飞奔的猪 阅读(6330) 评论(0) 推荐(1)