摘要: 出于对链接脚本的兴趣,准备试试,在PC上用链接脚本写一个测试程序,跟uboot中的不同。这里有两个文件t2.c和load.ldst2.c#include char __attribute__((section(".peng"))) ch[20] = "pengdonglin137";extern unsigned int __peng_start;char *p = (char *)(&__peng_start);//我们要获取__peng_start的存放地址,作为字符串首地址,或者数组名来使用。int main(int argc, const 阅读全文
posted @ 2014-01-26 19:02 dolinux 阅读(1043) 评论(0) 推荐(0)
摘要: #pragma pack(n) 与 __attribute(aligned(n))在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况:struct test{ char x1; short x2; float x3; char x4;};结构的第一个成员x1,其偏移地址为0,占据了 阅读全文
posted @ 2014-01-26 13:47 dolinux 阅读(1888) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2014-01-26 13:23 dolinux 阅读(172) 评论(0) 推荐(0)
摘要: http://pan.baidu.com/s/1dDy0jip译文:http://blog.csdn.net/kickxxx/article/details/6573396项目闲暇,想了解下UBIFS,就先从UBIFS的设计文档翻译开始吧,以后有机会有时间能分析下UBIFS源码flash memory文件系统需要异地更新(out-of-place updates). 这是因为flash存储在写之前必须擦除, 并且每次擦除后只能写一次。如果擦除块很小并且擦除速度很快,那么擦除块可以看作是磁盘扇区,然而事实并非如此。读取整个擦除快,擦除它然后回写更新的数据, 与写更新的数据到一个已经擦除好的擦除块 阅读全文
posted @ 2014-01-26 13:01 dolinux 阅读(770) 评论(0) 推荐(0)
摘要: 转载:http://hi.baidu.com/twinspace/item/24365251e837c2948d12edf11. gcc的__attribute__编译属性要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代码段起作用子项section 阅读全文
posted @ 2014-01-26 11:45 dolinux 阅读(1395) 评论(0) 推荐(0)
摘要: 转载:http://blog.csdn.net/beatbean/article/details/84486231. Compile宏控制位于include/linux/init.h[cpp]view plaincopy/*Theseareforeverybody(althoughnotallarchswillactuallydiscarditinmodules)*/#define__init__section(.init.text)__coldnotrace#define__initdata__section(.init.data)#define__initconst__section(.i 阅读全文
posted @ 2014-01-26 11:42 dolinux 阅读(1769) 评论(0) 推荐(0)
摘要: 转载:http://blog.sina.com.cn/s/blog_7e719f0501012tkt.html1.__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(int)=2;sizeof(my)=3;(紧凑模式)在GCC下:struct my{ char ch; 阅读全文
posted @ 2014-01-26 11:26 dolinux 阅读(386) 评论(0) 推荐(0)
摘要: 转载:http://blog.csdn.net/ithomer/article/details/65667391. __attribute__GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数__attribute__语法格式为:__attribute__ ( ( attribut 阅读全文
posted @ 2014-01-26 11:10 dolinux 阅读(208) 评论(0) 推荐(0)
摘要: http://dlc.sun.com.edgesuite.net/virtualbox/ 阅读全文
posted @ 2014-01-26 08:56 dolinux 阅读(355) 评论(0) 推荐(0)