自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(67)
  • 资源 (1)
  • 收藏
  • 关注

转载 uclinux 与 linux的区别

这两天看公司的一个产品 用的是arm7 系统用的uclinux 发现程序的内存管理方面有些看不懂,还有程序几乎用的全是线程。查过资料后才恍然明白,原来没有mmu 所以uclinux对多进程的支持非常有限。不过这是比较老的版本。新版本已经支持了!?-----------------------------------------------------------------------

2013-10-25 09:13:15 351

转载 Kconfig

Kconfig note:在hardware/intel/linux-2.6/arch/x86/configs/*****defconfig 里面出现的配置,如:CONFIG_X86_32=y ,X86_32, 必须在某个Kconfig 里面与预先定义。也就是说:Kconfig 是定义的地方,可以有个default值***defconfig文件时重新为具体某个项目 配置这些值的地方

2013-09-18 14:22:55 510

转载 Bootm的流程分析

Bootm的流程分析一、在开始之前先说明一下bootm相关的东西。 1、首先说明一下,S3C2410架构下的bootm只对sdram中的内核镜像文件进行操作(好像AT91架构提供了一段从flash复制内核镜像的代码,不过针对s3c2410架构就没有这段代码,虽然可以在u-boot下添加这段代码,不过好像这个用处不大),所以请确保你的内核镜像下载到sdram中,或者在bootcmd下把f

2013-09-07 10:35:36 364

原创 Uboot work sequence< colibri_pxa270 >

Uboot work sequence1.     Start.s _start: b reset  àreset: àbl _main à2.     Crt0.sENTRY(_main)  àbl  board_init_f àboard_init_f()à run all the function ininit_sequence_fldr

2013-09-04 17:23:53 312

转载 Comments on the MISRA C coding guidelines

Comments on the MISRA C coding guidelinesIntroductionMany organisation create coding standards for software development. The document produced byMISRA 'Guidelines for the use of the C Language i

2012-08-14 15:00:32 647

转载 MISRA C Rules __官方

MISRA C RulesThe following is a summary of the MISRA C rules. This document is not a definitive list these rules,which are only and completely defined in "MISRA Guidelines for the use of the C lan

2012-08-14 14:58:24 571

转载 学习MISRA C之一:“安全第一”的C语言编程规范——(转)

编者按: C语言是开发嵌入式应用的主要工具,然而C语言并非是专门为嵌入式系统设计,相当多的嵌入式系统较一般计算机系统对软件安全性有更苛刻的要求。1998 年,MISRA指出,一些在C看来可以接受,却存在安全隐患的地方有127处之多。2004年,MISRA对C的限制增加到141条。  嵌入式系统应用工程师借用计算机专家创建的C语言,使嵌入式系统应用得以飞速发展,而MISRAC是嵌入式系统应用工程

2012-08-14 14:56:29 1542

转载 MISRA--作为工业标准的C编程规范——(转)

MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会) 是位于英国的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和协助,帮助厂方开发安全的、高可靠性的嵌入式软件。这个组织最出名的成果是所谓的MISRA C Coding Standard,这一标准中包括了127条C语言编

2012-08-14 14:55:14 933

转载 学习MISRAC之六:构建安全的编译环境——(转)

预处理是编译环境处理C 程序的第一个环节,但往往最先被程序员忽略。这份看似只是由编译环境做的简单工作,其实也是机关重重。通过介绍MISRA C 与预处理相关的规则,希望读者能够更准确地认识编译器的预处理过程,避免出错。无论是自定义函数还是由编译环境提供的标准库函数,如果使用不当,都会存在安全隐患。能不能保证函数被正确的定义、声明和调用,关乎到整个程序的成败。这里介绍MISAR C 中涉

2012-08-14 14:53:48 455

转载 学习MISRAC之五:准确的程序流控制——(转)

程序的执行流程是由条件判断、跳转和循环构成的,没有任何一个程序会缺少程序流的控制。那么像if 、for 、while 、switch 等这些程序员无比熟悉的语句也存在隐患吗? 事实上,C 语言是很灵活的,这种灵活性给程序员编写代码带来了很多便利,但同时也带来了很多容易导致混淆的表达。这些表达完全符合C 语言标准,但有时程序员也难以发现自己犯了错误,最终的结果是使程序进入错误的执行流程。即使程序

2012-08-14 14:52:48 385

转载 学习MISRA C之四:防范表达式的失控

在C 语言中,表达式是最重要的组成部分之一,几乎所有的代码都由表达式构成。表达式的使用如此广泛,读者也许会产生这样的疑问,像+ 、- 、3 、/ 、& & 这样简单的运算也会出现问题吗? 程序员在编写表达式时,往往带有一些不良的习惯。即使是编写很简单的表达式,这些不良习惯也可能造成隐患,这个小小的隐患甚至可能引起整个系统的崩溃。实际上,在程序调试过程中,表达式中存在的大部分隐患皆来源于程序员的

2012-08-14 14:51:32 524

转载 学习MISRA C之三:指针结构体联合体的安全规范

指针赋予了C编程最大的灵活性;结构体使得C程序整齐而紧凑;联合体在某些要求注重效率的场合有精彩的表现.这三个要素是C语言的精华.然而精华并不意味着完美。C语言在赋予程序员足够的灵活性的同时,也给了程序员许多犯错的机会。所以,有必要关注指针,结构体和联合体的实现细节,从而保障程序的安全性。在此,第一部分介绍MISRA-C:2004中与指针相关的部分规则,第二部分讲解结构体和联合体的操作

2012-08-14 14:49:48 637

转载 学习MISRA C之二:跨越数据类型的重重陷阱

数据类型是编程语言中最基本的构成元素,但却是最易被忽略的一环,程序员愿意把几乎100%的精力都花在算法研究、程序流控制等大环节上,却很少在数据类型问题上反复斟酌。     细节决定成败,一个螺丝钉的失误可能导致一个飞行器的毁灭,一个数据类型的错误同样可以让庞大的软件系统崩溃。      MISRA—c中关于数据类型的规则主要分为两个方面。一是数据类型相关的编程风格;二是不同数据类型

2012-08-14 14:48:03 495

转载 MISRA 2004规则

MISRA 2004规则Jerry整理出处:汽车工业软件可靠性联会最后更新时间:2005-7-20转载请注明:来自Sawin系统分析之窗MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会) 是位于英国的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和

2012-08-14 14:39:57 2048

转载 uImage和zImage的区别

zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另外,Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,

2012-06-18 16:10:29 367

转载 U_BOOT命令格式说明

在u-boot的doc目录下的README/commands文件说明:U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help")其中,name: is the name of the commad. THIS IS NOT a string.maxargs: the maximumn numbers of arguments t

2012-06-18 13:31:52 1304

转载 module_init, fs_initcall .

ipv4内核初始化相关已有 6249 次阅读 2009-11-4 17:55所在文件:net/ipv4/af_inet.c初始化函数定义:static int __initinet_init ( void ) 初始化函数调用:fs_initcall ( inet_init ); //#define

2012-06-08 15:31:01 1601

转载 .depend作用

Make 和 include-文件  C 源码的开头经常有一系列被包含的头文件,例如 stdio.h。有一些是系统级的 头文件,有一些是你正在写的项目的头文件:#include #include "foo.h"int main(....  要确定在你的 foo.h 被改变之后,这个文件也会被重 新编译,就要在你的 Makefile 这样写:foo: foo.c fo

2012-05-24 17:03:29 373

转载 ARM 链接配置.lds文件学习

本文由Jacky原创,来自http://blog.chinaunix.net/u1/58780/showart.php?id=462971对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS {.

2012-05-24 14:56:29 797

转载 u-boot 1.1.6 start.S 代码学习

u-boot 1.1.6  start.S 代码学习/*参考了别人的一些笔记,看完了启动代码。本文档记录在看代码时碰到的困难,将这些曾经困扰的问题记录下来,以备今后之用。分析时不重要的代码被删除了。*/.globl _start_start: b       reset    ldr  pc, _undefined_instruction    ldr  pc, _

2012-05-24 14:53:53 502

原创 linux 编译工具

AS = $(CROSS_COMPILE)asLD = $(CROSS_COMPILE)ldCC = $(CROSS_COMPILE)gccCPP = $(CC) -EAR = $(CROSS_COMPILE)arNM = $(CROSS_COMPILE)nmLDR = $(CROSS_COMPILE)ldrSTRIP = $(CROSS_COMPILE)strip

2012-05-24 14:52:16 238

原创 linux cross reference

http://lxr.oss.org.cn/plain/ident?v=2.6.35&i=setup_timer

2012-05-18 09:55:33 319

转载 INIT_DELAYED_WORK() 函数剖析

INIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会儿就有这个宏了,只不过从2.6.20的内核开始这个宏做了改变,原来这个宏是三个参数,后来改成了两个参数,所以经常在网上看见一些同志抱怨说最近某个模块编译失败了,说什么make的时候遇见这么一个错误:

2012-05-18 09:17:22 665

原创 android中执行shell脚本

新建一个shell脚本文件test.sh,注意开头一行 #/system/bin/sh(开头有空格)cmd9500 -e eth0 -c DUMP_PHY 将可执行文件cmd9500和shell脚本文件test.sh拷贝到/system/bin下面adb shell进入,然后运行./test.sh就可以了 要循环一直跑的话,如下: #!/system/bin/sh

2012-05-02 11:15:21 800

转载 linux驱动开发之内核线程

Linux内核线程编程方法 内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成--独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NULL;它只在 内核空间运行,从来不切换到用户空间去;并且和普通进程一样,可以被调度,也可以被抢占。实际上,内核线程只能由其他内核线程创建,在现有的内核线程中创

2012-04-09 14:41:43 1578

转载 Linux内核wait_queue深入分析

wait queue和work queue工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。 前几天在看驱动的时候碰到了等待队列,上网去搜了一下,再结合代码看了一下,深有体会.在 kernel 里,wait_q

2012-04-09 11:29:41 886

转载 进程上下文和中断上下文的区别

内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。  系统的两种不同于行状

2012-04-05 11:54:14 220

转载 linux 内核同步机制-自旋锁与信号量及其区别

内核同步措施为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux从单处理器到对称多处理器的过度;伴随着从非抢占内核到抢占内核的

2012-03-29 16:23:13 303

转载 Linux系统中的信号量(semphore)与互斥体(mutex)

Linux系统中的信号量(semphore)与互斥体(mutex)http://www.embexperts.com/viewthread.php?tid=31两者最大区别:信号量可以允许多个线程进入临界区,而互斥体只允许一个线程进入临界区。本贴将描述信号量与互斥体之间的细微区别以及在实际的代码设计中如何使用它们。信号量在2.6.26中的定义如下:struct semaph

2012-03-29 14:58:19 639

转载 大端(高位在低地址)--小端(低位在低地址)

一、概念及详解  在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。  先回顾两个关键词,MSB和LSB:  MSB:MoST Significant Bit ------- 最高有效位        LSB:Least Significant Bit ------- 最低有效位  大端模式(big-

2012-03-13 17:17:07 2799

转载 Writeback和Writethrough区别

Writeback和Writethrough区别2009-03-05 15:10Write caching 或 write-throughwrite-through意思是写操作根本不使用缓存。数据总是直接写入磁盘。关闭写缓存,可释放缓存用于读操作。(缓存被读写操作共用)Write caching可以提高写操作的性能。数据不是直接被写入磁盘;而是写入缓存。从应用程

2012-03-07 09:50:05 13765

转载 linux的Framebuffer

1 基于嵌入式Linux的GUI系统发展概况    当前流行的商业化的GUI系统包括WindowsCE和SymbianOS等。这些GUI性能出众,一般都提供完整的解决方案,对Java、多媒体的支持较好,使用它们可以很方便地构建自己的嵌入式系统,形成产品,尽可能地缩短开发周期。但这些都是商业化产品,使用它们不可避免地要付出昂贵的授权费用,没有公开源代码,用户也不能很自由地定制自己的产品。Linu

2012-03-02 16:01:39 754

转载 arm linux kernel 从入口到start_kernel 的代码分析

http://bbs.chinaunix.net/thread-2039668-1-1.html

2012-03-01 09:55:00 227

转载 Heap/BSS 溢出机理分析

[前言:         ][    这篇文章主要是基于w00w00发表的:         ][ w00w00 on Heap Overflows ][By: Matt Conover (a.k.a. Shok) & w00w00 Security Team ][-------------------------------------------------------------------

2012-02-28 22:28:39 296

转载 kmalloc 详解

使用 kmalloc() 函数时,可分配的大小为 32 x PAGE_SIZE 。大多数系统中 PAGE_SIZE 的大小为 4096,因此超过 131072 字节就不能分配内存。 flag 参数表示指定分配内存的特性,它的值可为以下几个: (1) GFP_KERNEL kmalloc() 函数中使用的代表性参数,请求动态内存总是分配成功。利用该值使用kmalloc() 函数时,若内核

2012-02-28 11:20:55 429

转载 Msm7227平台I2C驱动分析

http://blog.csdn.net/tjd0227/article/details/5753606  Msm7227平台I2C驱动分析 滕景东                目录1. 摘要 32. 简介 33. I2C架构 34. I2C总线初始化 45. I2C适配器驱动 56. I2C设备驱动 97. 用户空间驱动支持 128. 数据传输框架

2012-02-23 11:07:31 457

原创 SensorBase.cpp分析

int SensorBase::openInput(const char* inputName) { //inputName == proximity_sensor    int fd = -1;    const char *dirname = "/dev/input";    char devname[PATH_MAX];    char *filename;    DIR

2012-02-22 20:51:36 681

原创 MSM7227A使用gpio-I2C的修改点

(scene:蓝牙设备使用了普通gpio来模拟i2c接口,使用了管脚76和80)1.       Modem部分修改文件:1)       TLMMBspMsm_XXX.h该文件定义了各个gpio的默认设置,如是否上拉,需要确认BSP_GPIO_OUT_76 = GPIO_CFG(76, 0, BSP_GPIO_OUTPUT, BSP_GPIO_NO_PULL, BSP_GPI

2012-02-22 20:30:08 986

转载 DEVICE_ATTR 和 sysfs 的东西 -- sysfs_create_group

说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)函数宏DEVICE_ATTR内封装的是__ATTR(_nam

2012-02-22 13:51:42 3525

原创 android sendor 2

Android sensor subsystem overview ·  Application Framework o Sensor Applications uses the Sensor application framework to get the sensor data. It communicates with C++ layer through sensor Java

2012-02-15 17:33:16 1177

华为同步电路设计规范

华为同步电路设计规范,详细介绍了华为FPGA设计流程指南

2009-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除