自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 使用LPC1768实现的数字时钟和温度计

手上有块LPC1768的开发板和一个320*240的液晶屏。就打算用它来做点东西。液晶屏使用的是SSD1289的控制芯片。使用16位并行接口连接到LPC1768的GPIO上。然后还有一块DS1623的温度传感器,也接到LPC1768的GPIO上。代码基本上是用c完成,没有使用任何OS。直接用gcc编译链接,下载到芯片的内存中运行。如果想烧到flash中的话,还需要一点点改动,基本上是启

2012-09-16 13:13:33 2954 1

原创 ARM裸机程序研究 - S3C2440时钟初始化

2440内部的时钟主要有3个, FCLK, HCLK, PCLK。 FCLK 提供给ARM920T内核使用, HCLK主要提供给高速外设使用,如显示接口,内存控制器, PCLK提供给低速外设使用,如串口,SPI, GPIO 等。另外还有一个UCLK, 只提供给USB Host 和USB Device使用。    2440的时钟来源有两种,外部时钟和通过外接晶振提供时钟。时钟源的选择通过引脚OM

2012-04-13 10:57:36 3019

原创 ARM裸机程序研究 - 编译和链接

1. Linux下的二进制可执行文件。    如果世界很简单,那么二进制可执行文件也应该很简单,只包括CPU要执行的指令就可以了。可惜,世界并不简单……。Linux下的二进制可执行文件(以下简称可执行文件),也并不是只包括了指令,还包括了很多其他的信息,比如,执行需要的数据,重定位信息,调试信息,动态链接信息,等等。 所有这些信息都按照一个预定的格式组织在一个可执行文件里面。Linux下叫EL

2012-04-09 12:09:49 8922 5

转载 Logic Threshold Voltage Levels

2012-03-26 23:29:41 746

原创 How to disable "Crtl+Alt+Backspace" and VT Switch under XWindow

Open /etc/X11/xorg.conf. Add following options into "ServerFlags" Section. If there's no such section, you can create one.Option "DontZap" "yes"               #Disable Ctrl+Alt+BackspaceOption

2011-12-06 04:34:45 645

原创 88E8057 Embedded OTP Programming

<br />88E8057是Marvell的一款PCIE接口的千兆以太网芯片。内含1k的OTP存储器,可以用来初始化芯片的寄存器。比如MAC地址就是用OTP的内容来初始化的。下面的对OTP编程的步骤来源于一些逆向工程,实际使用中看来来是可以,但并不保证一定正确。<br /> <br />OTP 内存进行只能一次性编程,初始时所有的内容为0。当一位被写为1之后,则不能再写回0.<br /> <br />对OTP内存进行编程: (所有寄存器地址均指Control Register)<br /> <br />1.

2011-04-07 22:37:00 1902

原创 使用FPGA的1 bit DAC

使用FPGA实现的1bit DAC。 从SD卡读取音频数据,产生占空比变化的方波,经过电阻和电容构成的滤波器后通过音箱播放,音频数据为22kHz 8bit 单声道.

2010-11-13 04:02:00 2359

原创 SD卡 SPI模式读写要点

<br />最近用FPGA实现了从SD卡读数据的基本功能,一些要点:<br />1.sd卡上电后,先拉低CS,发送至少74个clock,然后拉高CS,发送至少74个clock。<br />2.发送CMD0,SD卡回应0x01<br />3.重复发送CMD55+ACMD41,直到SD卡回应0x00<br />4.发送CMD17+地址,SD卡回应0x00,然后是0xFE,紧跟着是512字节的数据。<br /> <br />一些注意事项:<br />1 数据在clock的上升沿写入SD卡,所以MOSI的数据最好在

2010-10-19 05:24:00 8079 4

原创 双网卡的回环测试

<br />最近碰到这样一个问题,一台linux机器上装有两个网卡,分别为eth0和eth1,将这两个网卡用网线直接连接起来,要进行回环测试,也就是从eth1发数据从eth0收到,从eth0发数据从eth1收到。<br />本来,通过原始套接字,直接绑定到指定的网卡上进行接收和发送数据,是很容易完成任务。但要求是要用基于IP的协议,TCP或UDP完成测试。Linux的内核对从一个网络地址发往另一个网络地址的数据包,如果这两个网络地址同属一个host,则这个数据包会直接在内部转发,根本不会放到网络设备上。后来

2010-09-30 00:56:00 7624 1

原创 用openocd+jtag并口小板调试qq2440

 *关于openocd    openocd是一个开源的调试工具,支持一些主流的CPU,不过目前来看,支持ARM是比较多的。其主页为http://openocd.berlios.de/ . 目前openocd开发得还比较频繁,我现在用的svn revision是1833。当然,如果有新的话,最好尝试最新的revision。如果遇到了问题,比如编译通不过之类的,可以再试试稍微旧一点的版本。

2009-11-09 11:16:00 5057 1

原创 C8051F320的WDT

近日用S3C2440的GPIO模拟C2 Interface的时序,做了一个能给C8051F320里的flash编程的工具。用51汇编写了一个闪烁LED的程序,写入C8051F320的flash后,感觉运行总是不正常,一直没找到原因,后来才发现是WDT在作怪,C8051F320的WDT在复位后默认处于开启状态,我在程序中又没有进行处理,才造成芯片不停的被复位。禁用WDT,将PCA0MD的WDTE位清

2009-03-31 22:58:00 1279

原创 gdb远程串行协议

 首先不知道这个标题翻译得正不正确,其原文是“gdb remote serial protocol”。这个是gdb在远程调试的时候,gdb端和gdbserver端通讯的协议。最近想看看arm linux,就想顺便研究下这个协议。关于这个协议,有一个文档,请见:http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gdb/re

2009-02-19 23:00:00 2595

原创 使用OE制作arm-linux交叉工具链

目前制作交叉工具链的办法,我所知道的:1.手工编译,这个太复杂了,我试过几次,都没成功2.使用crosstool,这个比较方便,但是好像crosstool没有维护了。3.使用oe,这个方法不错,而且将来也可以用oe来编译其他的包,直至编译整个系统。所有工作都在 ~/oe 下完成mkdir ~/oecd ~/oe1.获取bitbakecd ~/oesvn co svn://svn.berlios.d

2009-02-19 18:09:00 2364

原创 又见番茄花园

    昨天在上海火车站,看到一个公交站旁正在安装一个大的LED显示屏,出于好奇,就站在旁边观摩起来。本来,对于这种LED显示屏的内部结构,虽然没有亲眼见过,但是总觉得和自己想的也差不多吧,不就是很多很多LED组成的阵列么。    果然,LED显示屏的背面,是一块一块巴掌大的小电路板,每块负责一个区域的显示,最后拼成一个大的显示屏。所有的小块都用信号线连接起来,最后连接到屏幕下方的一个盒子里。

2009-01-21 18:08:00 691

原创 信息安全,防不胜防

    我不是搞信息安全的专家,对这方面本也没什么研究,只是,最近无意的一次试验,引起了一些思考,越来越感觉到,我们在这个充斥着网络的世界中,似乎已经没有安全可言。想要获得别人的一些个人信息甚至唾手可得。也许有很多人平时就比较注意自己的个人信息,尽量少泄露。但是千里之堤,毁于蚁穴,一个不怀好意的人,只要发现一点点漏洞,就可以以此为起点,去获得更多的信息。   事情起因于,一次我在尝试无线网的m

2009-01-16 16:41:00 1124 4

原创 HTTP透明代理

之所以强调是“透明”代理,也就是说这样的代理对客户端来说是不可见的,并不需要在客户端的浏览器中作关于代理的设置。假设有这样的典型NAT网络环境:网关: 192.168.0.1客户端:192.168.0.2子网掩码:255.255.255.0Internet上某个主机的地址为123.123.123.123客户端需要用HTTP协议访问123.123.123.123,其首先要连接123.123.123.

2009-01-04 21:58:00 18078 6

原创 常用 NMEA-0183语句定义

$GPGGA例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS定位信息字段1:UTC 时间,hhmmss.sss,时分秒格式字段2:纬度ddmm.mmmm,度分格式(前导位数不足

2008-12-17 23:26:00 2374

原创 Start porting kernel 2.6.27.8 to qq2440 (5) -- clock issue

      把kernel boot起来后,然后重新编译了kernel,添加网络支持,因为2.6.27.8里面的网卡cs8900的驱动还有待修改,所以只好用usbnet,用usbdevice来模拟网卡,同时给kernel加上rootfs on nfs 支持。在PC几上建好qq2440_rootfs的目录,把基本的lib复制过去,然后编译了busybox,也复制过去。重新启动开发板,设置好命令行参数

2008-12-15 12:23:00 739

原创 Start porting kernel 2.6.27.8 to qq2440 (4) --Congratuation! Kernel boots OK!

 从arch/arm/mach-s3c2440/mach-smdk2440.c 复制一份为mach-qq2440.c,准备依葫芦画瓢,当然,先是要修改该目录下的Makefile和Kconfig,照着smdk2440添加一份qq2440的就可以了。mach-qq2440.c中,先是去掉了smdk2440开发板映射的相关地方,同时去掉了有关framebuffer和lcd还有nand的配置,基本上里面就

2008-12-13 11:54:00 901

原创 Start porting kernel 2.6.27.8 to qq2440 (3) -- clock initialization

 为了保证开发板上各个部件的正常工作,需要设置正确的时钟频率。以2.6.27.8中SMDK2440举例。在arch/arm/mach-s3c2440/march-smdk2440.c中, MACHINE_START/MACHINE_END指定了开发板的配置情况,其中.map_io = smdk2440_map_io 。在smdk_2440_map_io函数中,调用了s3c24xx_init_clo

2008-12-12 14:45:00 622

原创 Start porting kernel 2.6.27.8 to qq2440 (2) -- zImage generation

 今天看了下zImage的生成,真是晕哦,头大了一圈,主要还是对Makefile和lds链接脚本不熟练。参考了一本书 《Embedded.Linux.Primer》,上面讲得很不错。不过到现在也还没搞得太清楚,算是有了一个大的轮廓。先记一下。首先,编译过程会产生一个vmlinux文件,这个就已经是完整的内核了,不过是没有压缩的,然后copy为Image,相关过程见arch/arm/boot/Mak

2008-12-12 11:00:00 592

原创 Start porting kernel 2.6.27.8 to qq2440 (1)

打算从现在开始,尝试将目前最新的kernel 2.6.27.8移植到qq2440开发板上。主要有以下几个原因:1 熟悉kernel的移植过程(主要目的)2 qq2440目前的kernel是2.6.13,用我自己编译的arm-linux-gcc(4.1.2)编译不过,虽然不是什么大问题,主要是不爽阿。2.6内核已经有S3C2440的支持,移植起来应该不会又太大的工作量,主要是一些关于开发板的配置的信

2008-12-11 20:36:00 684

原创 arm平台上访问设备内存

 在qq2440上编写cs8900网卡驱动, cs8900可以从io和mem两个空间访问,io映射到0x19000000, mem映射到0x18000000。在kernel中访问其内存,首先要将物理地址映射到虚拟空间,通过ioremap完成,ioremap要关闭指定页的cache,然后就可以通过inb inw ind outb outw outd这样的宏来访问了,这些宏里面设置了valotile,

2008-11-24 10:31:00 783

原创 GPIO for intel 810 945

 intel 的810芯片组有一些GPIO,一般将这些GPIO用作I2C总线来连接显示设备,以便用来获取DDC数据等,也可用来向显示设备传递数据。    根据Intel i810的programer manual。 810有两组GPIO, GPIOA和GPIOB,每一组GPIO对应两个pin,目前没有945的programer manual,但是从xf86-video-intel的开源驱动来看,9

2008-01-03 17:04:00 1735

原创 升级xserver到1.4,关于pkg_config

最近需要在intel 965gme的芯片组上作dualhead的试验,于是安装了 RH5,结果发现RH5自带的驱动不支持965gme 里面的集成显卡,没办法,只好更新驱动,去intellinuxgraphics.org的网站上去下了最新的驱动,发现不能build过,该驱动使用了 pkg-config进行配置。我之前也没有注意到pkg-config,后来查了一些资料。原来pkg-config就是用来

2007-12-17 20:00:00 1631

原创 终于搞定了Fedora 6下的双头显示,贴下xorg.conf

这两天经过无数次的尝试,终于让双头显示正常工作了,可以实现桌面扩展,我的芯片是945GT集成显卡,主板上提供了VGA TVOUT 和DVI接口,两个显示器,一个接在VGA上,一个通过DVI->VGA转接头接在DVI上,下面是我的xorg.conf # Xorg configuration created by system-config-display#这里配置屏幕布局Section "Serve

2007-12-14 17:19:00 1941 2

原创 制作U盘Linux

    最近打算制作一个U盘上的Linux,主要是想在学习Linux的过程中,借此来更进一步熟悉linux的结构和工作原理,另外,最近在测试工作中也确实需要一个基于U盘的Linux,比如有时候捕获网络封包,修复GRUB,使用ipmitool等,如果每次都重装系统,确实需要浪费不少的时间。本来已经有不少已经做得很好的映像可以下载,不过,还是遵照自己的习惯,自己动手,既能完全按照自己的要求打造,又能学

2007-12-11 15:27:00 3446

原创 x1300 driver on Linux

这几天一直在折腾我的ThinkPad R60,自从前段时间在上面装了FC6(内核升级到2.6.20),x1300的显卡驱动一直不正常,从网上下的8.35.5的驱动的kernel model  fglrx,怎么都编译不过,后来发现是其与2.6.20内核源码不兼容,从ThinkWiki上下了个patch打上后,终于可以编译过了 ,但是启动Xserver后只能使用2D加速,不能使用3D加速,查看/var

2007-04-19 14:02:00 924

空空如也

空空如也

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

TA关注的人

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