Welcome 微信登录

首页 / 操作系统 / Linux

Linux移植笔记----S3C2410

Linux移植笔记----S3C2410

由于开发的驱动程序是按2.4的内核来写的,可是核心板自带的烧写好的程序却是2.6的内核的,而且这个的配置是2.6的内核,uboot的bootloader,文件系统也不一样。我就只能把它改成vivibootloader,2.4的内核,以及相应的文件系统。昨天,从中午一直弄到晚上。先是烧写vivi,这个比较顺利。我的2410的板子的vivi烧写只能经过串口和minicom,因此我把它接到了linux系统下。1: 用开发商附带的烧写FLASH工具,通过板子上的J...
Linux2.6.18内核S3C2410平台移植笔记

Linux2.6.18内核S3C2410平台移植笔记

我使用的实验箱是Embest EDUKIT-III,板上资源CPU:SAMSUNG S3C2410A、FLASH:K9F5608U0(Samsung NAND 32MiB),烧录工具:embest flash programmer。因为厂家自带的是2.4的内核,目前学习开发用的基本上都是2.6内核,这两者改动还是比较大的。电话咨询过技术支持后,对方说只想在板子上跑系统的话还是比较好移植的。于是决心自己动手移植内核。不然今后的驱动编写,都没有合适的运行环境,...
Linux设备驱动模型

Linux设备驱动模型

与2.4内核相比,Linux2.6内核最大的不同在于提供了统一的设备驱动模型,因为随着对智能电源管理,plug and play等设备支持的要求越来越高,2.4内核显得有点力不从心。为此,2.6内核开发了全新的驱动模型。1.sysfs文件系统 sysfs文件系统类似于proc特殊文件系统,用于将系统中的所有设备组织成层次结构,供用户模式下的程序了解内核数据结构的信息。期目录下主要有下面的目录:block:包含了所有的块设备,如ram。sda,loopbus...
Arm2440 启动流程详细分析

Arm2440 启动流程详细分析

要分析arm2440的启动流程,先得了解arm2440的硬件配置,在arm2440这款cpu里面没有什么存储的芯片,除了以个4kb的SRAM(静态存储器可以运行程序,但是最重要的一点就是掉电就失掉所有的数据)注意这4kb是cpu自己的不是外设的的。好了现在讲述下启动的流程。(一下是从nand flash 启动)1、首先机器上电,从外部的nand flash 的0x0000-0x01000也就是前4kb的内容通过硬件的办法来拷贝到我们的cpu内部的4kb的S...
Android的uevent通信机制

Android的uevent通信机制

想研究Android从Linux驱动层到Android应用层的一整套流程,于是和刘同事做了个东东实现从驱动层到应用层的一整套通信,做完了,写个笔记备忘一下总共需要增改的有四个东西,驱动、jni、java、apk整体通信步骤如下:linux驱动部分,主要利用sysfs文件系统建立一个class一个device和一个file,通过uevent去改变file所存储的值并通知上层,具体为利用一个定时器以固定的时间间隔发送uevent消息最先接收linux发送的ue...
用QT写的贪吃蛇游戏

用QT写的贪吃蛇游戏

好久不用C++,怕忘了,于是拿起Qt来写写以前把俄罗斯方块写了,这会写个贪吃蛇也没看过别的算法…,希望这个效率还好吧关键的蛇体移动算法,是将头的前面一个置1,然后删除尾点,再将蛇体除头外全部+1,得到新蛇voidsnake::gotoXY(intx,inty)//移动函数,每次只一步!! { MAP[x][y]=1;head.x=x;head.y=y;//新建头点 MAP[trail.x][trail.y]=NOTHING;//清除尾点 boolf...
Linux驱动几个关键点

Linux驱动几个关键点

一、1、c/c++精通2、熟悉内核(查找内核函数轻车熟路)3、操作系统工作原理4、能够读得懂硬件datasheet5、一定要会使用分析时序的软件,不然会很不方便6、实践,在实践中遇到问题解决问题才能更快的成长二、首先驱动中经常需要分配物理内存,应该至少注意以下几点:1,该物理内存是否能经过cache(如Framebuffer)2,该物理内存分配时是否能睡眠3,如果频繁分配,可以考虑用SLAB机制4,在操作IO MM时,在映射之前应该要先申请其次驱动程序的开...
关于在Android上运行纯C程序

关于在Android上运行纯C程序

网络上能找到在liunx下使用arm的gnu编译器进行交叉编译能生成在Android的shell中运行的C程序。但是说明了一点就是必须使用-static进行静态编译,而静态编译则就无法调用动态库了。其实不然,因为Linux系统的程序在调用动态库的时候有个首先需要访问的动态库就是ld-linux.so这个库,由这个库去访问你自己定义的动态库,然后Android上没有这个库,所以无法调用自己生成的动态库了。很明显一点就是在执行程序的时候显示结果是not fou...
Beginning Linux Programming 笔记

Beginning Linux Programming 笔记

是前段时间才铁定心要搞Linux,重新回归到C的怀抱。大学这两年,学过C,用过C++,搞过PHP,学了java,最后才良心发现,回过头来搞C。期末的时候借了两本书,一本是《Beginning Linux Programming 4th Edition》,一本是它的中文版《Linux程序设计》,都是六七百页的书,差不多可以当枕头的那种。回家那天正在犹豫要把那本书带回来,最后想不开把英文版的带回来,想着要体验一下原汁原味的东西。相关下载:《Beginning ...
《Beginning Linux programming 4th Edition》中文翻译(一)

《Beginning Linux programming 4th Edition》中文翻译(一)

1. 译序 《beginning linux programming 》是一本讲述Linux应用开发的一本挺不错的参考书,目前已经是第四版(2008),由于工作需用到Linux开发,所以在网上找到该书。但目前并没有发现第四版有中文的翻译。所以本人试着翻译了几章内容,现在贡献出来供大家share。相关下载:《Beginning Linux Programming 4th Edition》下载在http://www.linuxidc.com/Linux/201...
Ubuntu 10.10构建内核树

Ubuntu 10.10构建内核树

驱动程序和用户程序可不一样,它是作为一个模块连接到内核模块来运行的,运行在内核空间里面。所以要运行我们自己构造的模块,需要自己的系统已经配置好内核树,然后把目标模块和内核树连接起来运行!可以查看一下自己的电脑有没有配置内核树,可以到 /lib/modules/2.6.35-22-generic目录下面,看看有没有build这个文件夹,如果有,说明你已经有内核树了,如果没有,就自己构建内核树吧。内核树构建过程安装编译内核所需要的软件(也可不装,除非你要用 m...
Android 监听文件和目录的创建删除移动等事件

Android 监听文件和目录的创建删除移动等事件

Android.os下的FileObserver类是一个用于监听文件访问、创建、修改、删除、移动等操作的监听器,基于linux的inotify。 FileObserver 是个抽象类,必须继承它才能使用。每个FileObserver对象监听一个单独的文件或者文件夹,如果监视的是一个文件夹,那么文件夹下所有的文件和级联子目录的改变都会触发监听的事件。所能监听的事件类型如下:ACCESS,即文件被访问MODIFY,文件被 修改ATTRIB,文件属性被修改,如 ...
解决Android自定义标题栏充满的问题

解决Android自定义标题栏充满的问题

一个接着一个的activity,写啊写,调啊调,后来,终于发觉,activity的标题栏好难看,好单调啊。咱们为了吸引用户的眼球,得搞点个性化的东西。自定义标题栏的方法,网上一搜一大堆,我也稍微提一下,oncreate中加上如下代码就行: requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(view); getWindow().setFeatureInt(Window.FEAT...
Android简单的圆盘形菜单

Android简单的圆盘形菜单

今天偶然看到一个圆盘形的菜单,还可以转动,感觉挺有意思,然后想了想,做了个简单的效果。思路是这样的,定一个原点和一个半径,圆的四周均匀分布每个菜单。为了方便计算,菜单的坐标用度数表示,然后转化为极坐标计算。定某个点为起始点,根据总菜单数确定每个点增加的度数,然后依次确定每个点的度数,也就确定了坐标。packagechroya.demo.roundspin; importAndroid.content.Context; importandroid.gr...
Android放大镜的实现

Android放大镜的实现

偶然看到一篇文章,讲Android里面放大镜的实现。文章很乱,没有格式,基本上属于看不下去的那种。虽然体裁很有意思,但是我也没有足够的内力把它看完。不过看到一句关键的话,说是使用带圆形的Drawable。这句话就够了,他下面写的一堆东西我也懒得看,于是就自己开始尝试,然后就做出来了。现在代码贴出来分享。 packagechroya.demo.magnifier; importandroid.content.Context; importandroid.gr...
<< 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 >>