- 博客(22)
- 收藏
- 关注
原创 6410 uboot中的内存大小
<br />6410的内存大小linux kernel是从uboot中读出的,<br />唯一的影响就是时序寄存器/* DDR PARAMETERS */。DMC1_MEM_CFG不影响。
2010-12-20 16:46:00 581
原创 EXPORT_SYMBOL
注意第二点,先要include file, 然后还要EXPORT_SYMBOL EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。您还可以手工修改内核源代码来导出另外的函数,用于重新编译并加载新内核后的测试。 Linux symbol export method: [1] If we want export the symbol in a module, j
2010-12-20 13:51:00 232
原创 MABA AXI APB of arm
看了这些方面的一些协议,包括信号,时序,读写。了解了关于burst的几种类型(increment, wrap)等等。还有AXI和APB的区别,AXI是全双工的,另外AXI支持increment下的unaligned传输。有用么?
2010-12-09 15:52:00 387
原创 mem about
行数据线列数据线复用一次送出16位,2片共32位片选bank行锁存列锁存一、为什么会两片内存都连接相同的地址线?(我一直以为地址线必须是递增的) 答案:因为这是两片独立内存,地址线都是固定的,如果地址递增会造成糟糕的后果(我还真以为是两片内存可以无缝连接呢!大错特错了。) 二、为什么两片内存都要错位两位? 答案: 因为两片内存是独立访问的,并且总线宽度都是32位(高16位数据和低16数据位分开读取。至于错位原因请看ARM字节对齐文章)。 但是难题来了,为什么三星访问内存时候并没有分开呢?LDQM UDQM
2010-12-07 17:00:00 84
原创 字节序和字宽的影响
本文谈谈嵌入式cpu的字节序和字节位宽对软件可移植性的影响,假设有A、B两台不相同的计算机之间互相通信。有下列数据结构定义: union data_pack { unsigned long word; unsigned char bytes[4]; }; 在A计算机中,用下列语句:union data_pack bufA; bufA.word = 0x12345678; for(i = 0; i >24) & 0xff; bytes[2] = (word>>16) & 0xff;
2010-12-07 16:54:00 232
原创 字节序和字宽的影响
本文谈谈嵌入式cpu的字节序和字节位宽对软件可移植性的影响,假设有A、B两台不相同的计算机之间互相通信。有下列数据结构定义: union data_pack { unsigned long word; unsigned char bytes[4]; }; 在A计算机中,用下列语句:union data_pack bufA; bufA.word = 0x12345678; for(i = 0; i >24) & 0xff; bytes[2] = (word>>16) & 0xff;
2010-12-07 16:53:00 219
原创 字节序和字宽的影响
本文谈谈嵌入式cpu的字节序和字节位宽对软件可移植性的影响,假设有A、B两台不相同的计算机之间互相通信。有下列数据结构定义: union data_pack { unsigned long word; unsigned char bytes[4]; }; 在A计算机中,用下列语句:union data_pack bufA; bufA.word = 0x12345678; for(i = 0; i >24) & 0xff; bytes[2] = (word>>16) & 0xff;
2010-12-06 17:14:00 371
原创 nor flash寿命及失效模式测试
动手写flash文件系统前,花几天实测了一下flash寿命和失效模式。从以往使用经验中,对flash的失效模式是有一个基本的感性认识的,但毕竟没有实测过,都是凭经验和手册使用。djyos的flash文件系统会利用这些测试结果,用以优化文件系统性能;但不会依赖这些测试结果,一是这些测试结果并没有得到器件datasheet的明文确认,二是如果将来flash技术如果改变,使flash特性与测试结果不再相符,不会导致致命错误,三是测试不能覆盖所有厂家和型号。 测试的flash型号是sst39vf160
2010-12-06 17:13:00 1143
原创 djy移植的过程
http://hi.chinaunix.net/?uid-20582279-action-spacelist-type-blog-itemtypeid-2715有助于理解bt的一些的东西
2010-12-06 17:13:00 235
原创 djy移植的过程
http://hi.chinaunix.net/?uid-20582279-action-spacelist-type-blog-itemtypeid-2715有助于理解bt的一些的东西
2010-12-06 16:55:00 194
原创 字节序和字宽的影响
本文谈谈嵌入式cpu的字节序和字节位宽对软件可移植性的影响,假设有A、B两台不相同的计算机之间互相通信。有下列数据结构定义: union data_pack { unsigned long word; unsigned char bytes[4]; }; 在A计算机中,用下列语句:union data_pack bufA; bufA.word = 0x12345678; for(i = 0; i >24) & 0xff; bytes[2] = (word>>16) & 0xff;
2010-12-06 16:48:00 181
原创 nor flash寿命及失效模式测试
动手写flash文件系统前,花几天实测了一下flash寿命和失效模式。从以往使用经验中,对flash的失效模式是有一个基本的感性认识的,但毕竟没有实测过,都是凭经验和手册使用。djyos的flash文件系统会利用这些测试结果,用以优化文件系统性能;但不会依赖这些测试结果,一是这些测试结果并没有得到器件datasheet的明文确认,二是如果将来flash技术如果改变,使flash特性与测试结果不再相符,不会导致致命错误,三是测试不能覆盖所有厂家和型号。 测试的flash型号是sst39vf160
2010-12-06 16:47:00 254
原创 mem
内核用到的内存不只8M。 第一次映射的8M只是为了在MMU enable的前后都能正确的使用物理地址和虚拟地址。 另外,内核并没有把所有的内存都映射到page table里面。page table的确是动态地被修改的来映射更多或更少的内存。(32位)内核初始化的时候只初始化了0xc0000000以上的空间(不包括动态映射的部 分)。这段虚拟地址只会由内核使用(的确,如果内存不多,那么这段地址已经可以把物理内存全部映射了,但这是内核使用的地址空间,用户空间一般的程序不能 使用)。 0xc0000
2010-12-06 11:42:00 130
原创 6410 中dvfs的实现
#include #include #include #include #include #include #include #include #include #include #define CPU_FREQ_EARLY_FLAG 0x100#if defined(CONFIG_MACH_SMDK6410)extern int set_pmic(unsigned int pwr, unsigned int voltage);#endifunsigned int S3C64XX_MAXFREQLEVE
2010-12-03 17:57:00 893
原创 DECLARE_GLOBAL_DATA_PTR
DECLARE_GLOBAL_DATA_PTR 只是一个定义的宏,这个宏定义了一个gd_t全局数据结构的指针,这个指针存放在指定的寄存器中(386体系结构没有放到指定寄存器中)。例如mips体系结构中,DECLARE_GLOBAL_DATA_PTR定义如下:#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("k0")例如ppc体系结构中,DECLARE_GLOBAL_DATA_PTR定义如下:#define DECLARE_GLO
2010-12-03 17:49:00 1888
原创 Linux中的通知链技术
在Linux内核中,各个子系统之间有很强的相互关系,某些子系统可能对其它子系统产生的事件感兴趣。为了让某个子系统在发生某个事件时通知感兴趣的子系统,Linux内核引入了通知链技术。通知链只能够在内核的子系统之间使用,而不能够在内核和用户空间进行事件的通知。 1 数据结构: 通知链有四种类型: ·原子通知链( Atomic notifier chains ):通知链元素的回调函数(当事件发生时要执行的函数)只能在中断上下文中运行,不允许阻塞。对应的链表头结构:
2010-12-01 17:43:00 380
原创 arm7 的 cpufreq 的实现
在基于SEP4020(ARM720T内核)上实现Linux的cpufreq(动态变频)技术 针对sep4020的linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。
2010-12-01 16:51:00 510
原创 Linux 2.6 内核中的最新电源管理技术综述
Linux 2.6 内核中的最新电源管理技术综述 2008年8月6日 IBM-王勇 前言 本系列文章将结合近年来不断在各种硬件(包括 CPU、芯片组、PCI Express 等各种最新总线标准以及外设)上新增的节能技术。 从 Linux® 2.6内核及整个 software stack (包括 kernel、middleware 以及各种用户态 utility)如何添加对这些创新的节能技术的支持这一角度,为读者介绍 Linux 操作系统近几年来在电源管理方面所取得的
2010-12-01 11:22:00 460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人