2012年4月28日
摘要: 如果SmartARM3250的CF卡不能使用,请参考下面的步骤来解决。 (1)检查内核版本是否已经支持CF卡,请查看有无drivers/ide/arm/smartarm3250-ide.c以及drivers/ide/arm/smartarm3250-ide.h文件,如果没有,请点击下载新版内核: SmartARM3250内核V1.05 http://u.115.com/file/f7fe72fc73 其中/file/后面的为文件提取码,如果遇到已经过期的错误提示,请联系技术支持,发邮件到技术支持邮箱。 (2)检查配置文件,主要看ATA、IDE、IDEDISK、VFAT等有没有被选中,如果没有,请选中,当然,为了简便,可以下载附件的配置文件。 文件: smartarm3250_defconfig.zip 大小: 8KB 下载: 下载 覆 阅读全文
posted @ 2012-04-28 16:27 风行雪舞 阅读(870) 评论(0) 推荐(0)
摘要: 有时候用tera term按烧写u-boot.bin后,也正确设置了S1L的启动参数,可是还是无法启动U-Boot,通常是在传送u-boot.bin的时候,没有在tera term中选择binary选项。 下面以烧写支持ubifs的u-boot.bin为例,对整个过程进行描述。 (1)先用光盘自带软件烧写kickstart和s1l。 (2)进入s1l,一次输入命令: erase 2 10 1 //擦除2~11这10块U-Boot空间, 如果是完全重新烧写,可输入erase 2 2046 1 //擦除除kickstart和s1l之外的全部NAND 阅读全文
posted @ 2012-04-28 16:13 风行雪舞 阅读(681) 评论(0) 推荐(0)
摘要: 烧写内核和安全文件系统后,在U-Boot下,输入run safemode可进入安全系统,在安全系统下,烧写用户文件系统。 烧写用户文件系统实际上就是将文件系统压缩包rootfs.tar或者rootfs.tar.bz2释放到NAND FLASH分区。 大致流程如下: (1)将NAND FLASH用户文件系统分区MTD4 mount到系统某个目录下,如/mnt目录: (2)将存放rootfs.tar或者rootfs.tar.bz2文件系统档案包的介质(如U盘、SD卡、CF卡或者NFS服务器)挂在到系统另外一个目录,如/tmp目录。 (3)将/tmp目录下的rootfs档案包释放到MTD挂在目录/mnt,等待释放完毕, (4)卸载/mnt和/tmp目录,重启系统即可进入用户系统。 下面分别介绍: 阅读全文
posted @ 2012-04-28 16:12 风行雪舞 阅读(433) 评论(0) 推荐(0)
摘要: 在目标板上使用ubifs,需要一些UBI工具,可从mtd-utils工具中得到。 在以前的文章中介绍过mtd-utils-1.2.0的交叉编译方式,但是这个版本的软件只能获得目标板的UBI工具,没有包含主机端得UBI工具。 mtd-1.3.0以上则包含了目标端和主机的UBI工具。主机上编译已经介绍过了,现在介绍交叉编译mtd-utils-1.4.2。 同样是在Fedora Core 9环境下编译。 当然,与交叉编译mtd-1.2.0一样,zlib、lzo都是不可缺少的,进行交叉编译,并安装到交叉工具链中,不再介绍。 交叉编译mtd-1.4.2还需要uuid,uuid包含在e2fsprogs软件包中,所以下载进行交叉编译。 ------------------------------------------------------------------ 阅读全文
posted @ 2012-04-28 16:11 风行雪舞 阅读(706) 评论(0) 推荐(0)
摘要: 在主机上将已经部署好的根文件系统制作成ubi镜像,需要mkfs.ubifs和ubinize工具,可以交叉编译mtd-utils-1.3.0以上版本获得。目前最新版是1.4.2,喜欢尝鲜的朋友可以编译mtd-1.4.2.tar.bz2。 以下的过程在Fedora Core 9上进行,在其它发行版上可能现象不同。 编译mtd-utils 需要zlib和lzo的支持,所以都需要下载编译。 下载软件包: wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz wget http://zlib.net/zlib-1.2.5.tar.gz wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.4.2.tar.bz2 编译zl 阅读全文
posted @ 2012-04-28 16:09 风行雪舞 阅读(483) 评论(0) 推荐(0)
摘要: 前段时间移植了Linux-2.6.31到LPC3250上,但是在使用ubifs的时候遇到了一些问题。 原来在2.7.27.8上,ubifs没有任何问题就跑起来了,可是为何在这里却不行?摸索了大半天,终于搞定了,下面是过程。 主要现象是在linux-2.6.27上,ubi信息是: Creating 1 MTD partitions on "nand0": 0x000000600000-0x000001600000 : "mtd=3" device_name0:mtd=3 UBI: attaching mtd1 to ubi0 UBI: physical eraseblock size: 131072 bytes (128 KiB) UBI: logical eraseblock size: 129024 bytes UBI: smallest flash I/O u 阅读全文
posted @ 2012-04-28 16:08 风行雪舞 阅读(877) 评论(0) 推荐(0)
摘要: 为了调试文件系统,准备采用NFS 根文件系统方式启动,使用了下面的参数: setenv bootargs root=/dev/nfs console=ttyS0,115200 nfsroot=192.168.1.138:/home/chenxibing/lpc3250/ecm1352/rootfs ip=192.168.1.136:192.168.1.1:192.168.1.1:255.255.255.0:zlg.z:eth0:off monitor=1 结果系统启动到打印内核解压后就停止了: Starting kernel ... Uncompressing Linux... done, booting the kernel. 阅读全文
posted @ 2012-04-28 16:07 风行雪舞 阅读(463) 评论(0) 推荐(0)
摘要: SmartARM50新旧液晶问题 由于SmartARM50经历过一次液晶更换,早期的液晶模块是TFT-6862,后来的液晶模块是TFT-4238,两个液晶模块的时序差别较大,甚至时钟极性都不同。 linux-2.6.27.8-smartarm3250_V1.05.tar.bz2的内核对旧液晶没有处理好,导致液晶屏点不亮,现在进行了修正。 请点击下面的链接,下载修正之后的内核,内核已经将液晶屏选择加入了Kconfig菜单,请根据自己的屏选择配置。在根目录下有config-6862和config-4238两个配置文件,分别与两块液晶屏对应。 http://u.115.com/file/f7e5307c2a 新液晶是TFT-4238-T,内核更新增加了这个液晶的支持: http://u.115.com/file/clw4c6k5 最后 阅读全文
posted @ 2012-04-28 16:06 风行雪舞 阅读(298) 评论(0) 推荐(0)
摘要: 如果没有实现底层reboot支持,输入reboot命令不能重启系统,或者会引起系统出错。 需要实现体系结构的arch_reset(char mode)函数。 文件:arch/arm/mach-lpc32xx/include/mach/system.h 阅读全文
posted @ 2012-04-28 16:05 风行雪舞 阅读(335) 评论(0) 推荐(0)
摘要: (1)升级系统 SmartARM3250采用了双系统架构,早期版本的safefs采用CRAMFS,不能跳过NAND FLASH坏块,一旦在safefs区域有坏块,safefs就无法起来,导致系统无法操作。 解决方案已经出台,采用ubifs文件系统进行升级,涉及U-Boot和内核的升级。请点击下面的链接下载:/file/后面为文件提取码。 http://u.115.com/file/f71bc1e10 里面有文档说明。 如果链接提示已经过期,请联系技术支持。 (2)rootfs固化改进 原来的rootfs采用rootfs.tar.bz2,可能会在解压过程中遇到一些莫名其妙的错误而不能将rootfs进行固化。解决方案: 阅读全文
posted @ 2012-04-28 16:02 风行雪舞 阅读(414) 评论(0) 推荐(0)
摘要: SmartARM3250串口问题解决办法。 串口在使用中可能会出现发送或者接收的一些不正常问题,请使用附件的两个文件分别替换内核: drivers/serial/8250.c arch/arm/mach-lpc32xx/serial-lpc32xx.c 两个文件后重新编译内核皆可。 请下载附件。 阅读全文
posted @ 2012-04-28 15:57 风行雪舞 阅读(299) 评论(0) 推荐(0)
摘要: 是因为sound/soc/lpc3xxx/lpc3xxx-pcm.c文件的 lpc3xxx_pcm_hw_free函数的 lpc32xx_dma_ch_put(prtd-dmach);调用引起的,原因是 arch/arm/mach-lpc32xx/dma-lpc32xx.c文件的 lpc32xx_dma_ch_put函数使用了spin_lock_irq,修改为如下 85 static inline void __dma_regs_lock(void) 86 { 87 atomic_spin_lock_irq(&dma_lock); 88 } 89 90 static inline void __dma_regs_unlock(void) 91 { 92 atomic_spin_unlock_irq(&d 阅读全文
posted @ 2012-04-28 15:56 风行雪舞 阅读(165) 评论(0) 推荐(0)
摘要: end_request: I/O error 在移植NAND FLASH驱动,很有可能遇到end_request: I/O error mtblock1这样的问题。如果已经能够识别NAND FLASH坏块并且已经识别MTD分区,那么很有可能是FLASH坏块驱动的ECC设置问题。 解决办法:可以将NAND FLASH 的ECC设置为NAND_ECC_NONE。 阅读全文
posted @ 2012-04-28 15:52 风行雪舞 阅读(724) 评论(0) 推荐(0)
摘要: TFT-4238液晶和原来的TFT-6862差别较大。 这个屏的时钟和信号极性为低电平,需要修改LCD_POL寄存器(0x3104 0008)的bit14为1. 【arch/arm/mach-lpc32xx/clocks-lpc32xx.c】 1623 tmp &= ~(0xF800001F); 1624 tmp &= ~CLCDC_LCDTIMING2_BCD; 1625 tmp |= (div & 0x1F); 1626 tmp |= (((div 5) & 0x1F) 27); 1627 tmp |= (114);//POL low ABING for TFT-4238 1628 __raw_writel(tmp, CLCD_POL(io_p2v(LC 阅读全文
posted @ 2012-04-28 15:50 风行雪舞 阅读(430) 评论(0) 推荐(0)
摘要: I2C1 和 DS2460驱动 Linux 2.6.27在i2c上没有2.6.29上成熟,不能按照那一套来做,譬如在board-smartarm.c中增加: 499 //static struct i2c_board_info __initdata smartarm3250_i2c_ds2460_info [] = { 500 // { 501 // I2C_BOARD_INFO("epc-ds2460", 0x40), 502 // }, 503 //}; 698 /* I2C based DS2460 on I2C1 */ 699 // i2c_register_board_info(0, smartarm3250_i2c_ds2460_info, 700 // ARRAY_SIZE(smartarm3250_i 阅读全文
posted @ 2012-04-28 15:46 风行雪舞 阅读(763) 评论(0) 推荐(0)
摘要: /* * Copyright (C) 2010 ZLGMCU * All rights reserved. * * @Author: Chenxibing * @Descr: LPC3250 UART5 & UART3 driver for AnyWhere. */ #include #include DECLARE_GLOBAL_DATA_PTR; 初始化,波特率9600,8N1。 int uart3_init(void) { int tmp32; CLKPWR-clkpwr_uart_clk_ctrl |= CLKPWR_UARTCLKCTRL_UART3_EN; CLKPWR-clkpwr_uart3_clk_ctrl = (2540)|(38); //9 阅读全文
posted @ 2012-04-28 15:45 风行雪舞 阅读(462) 评论(0) 推荐(0)
摘要: PWM_OUT1 PWM2_CTRL 0x4005 c000 目前只让该引脚输出高电平 PWM1_CTRL[31] = 0,则电平由 PWM1_CTRL[30] 来决定。 所以直接写入0x40000000即可输出高电平。 __raw_writel(130, io_p2v(0x4005C000)); //PWM_OUT1 pin=1 阅读全文
posted @ 2012-04-28 15:40 风行雪舞 阅读(523) 评论(0) 推荐(0)
摘要: LPC3250的GPO_00,还可以作为TST_CLK1的输出,由TEST_CLK(0x4000 40A4)寄存器的Bit 4 控制。 将TEST_CLK寄存器 bit4 设置为0,PIO_OUTP[00]--GPO_00 然后控制GPIO_P3_OUTP_CLR等寄存器,就可以控制GPO_00输出高低电平了。 阅读全文
posted @ 2012-04-28 15:34 风行雪舞 阅读(248) 评论(0) 推荐(0)
摘要: 使用SmartARM3250 V1.00版源码,会出现不插入网线,终端会很缓慢的BUG,可以修改drivers/net/lpc32xx_mii.c文件的下面两个函数解决,将两个函数中的变量的lps的值改为5即可: 阅读全文
posted @ 2012-04-28 15:33 风行雪舞 阅读(354) 评论(0) 推荐(0)
摘要: 由于最新内核头文件位置的改变,一些原有的驱动所包含的头文件会找不到,为了肢解使用旧有的驱动而不做太大改动,可以增加一个软连接: cd ../include/asm-arm/ ln -sf ../../arch/arm/mach-lpc32xx/include/mach/ arch 将arch/arm/mach-lpc32xx/include/mach/链接为include/asm-arm/arch,即 include/asm-arm/arch--arch/arm/mach-lpc32xx/include/mach 这样,原有驱动中#include 就可以使用了。 阅读全文
posted @ 2012-04-28 15:32 风行雪舞 阅读(982) 评论(0) 推荐(0)
摘要: 文件: lzo-2.03.tar.gz 大小: 611KB 下载: 下载 文件: mtd-utils-1.2.0.tar.bz2 大小: 270KB 下载: 下载 文件: zlib-1.2.3.tar.gz 大小: 484KB 下载: 下载 在SmartARM3250上使用UBIFS内核配置 使用UBIFS,首先需要在内核中使能MTD_UBI和UBIFS: 在MTD中使能UBI: Enable UBI 在FS中使能UBIFS: UBIFS file system support 工具支持 使用UBI,需要UBI的一些工具,如ubiattach ubimkvol等,这些工具都包含在教新版的mtd-utils中,我下载了mtd-utils-1.2.0.tar.b 阅读全文
posted @ 2012-04-28 15:31 风行雪舞 阅读(871) 评论(0) 推荐(0)
摘要: LPC3250 ttyS1,在应用程序中使用了usleep或者使用了线程等待操作,发送数据会出现只能发送一次,后续帧无法发送的问题,必须在超级终端按回车或者通过串口软件发送一个字符后才能发出后来的帧,问题解决如下: 将8250.c的__stop_tx函数改为如下代码: 阅读全文
posted @ 2012-04-28 15:30 风行雪舞 阅读(444) 评论(0) 推荐(0)
摘要: 尽管在2.6的内核版本已经支持udev,可以很方便的使用,并且使用也很舒服。但是使用udev,在启动过程中扫描/sys/class目录并生成设备节点的时间稍微有点长,在一些系统中是无法忍受的,所以没办法只好放弃udev,回到静态设备节点的时代,以加快启动速度。 2.6内核中,引入了cdev概念,使用cdev的驱动与传统的2.4的字符驱动又不一样,下面给出一个使用cdev和静态设备节点的驱动范例。 阅读全文
posted @ 2012-04-28 15:28 风行雪舞 阅读(447) 评论(0) 推荐(0)
摘要: 使用initramfs可以实现内核和文件系统在一个映像文件中,不过会增大内核体积,同时占用较多内存。 (1)准备根文件系统 先准备好根文件系统,放到某个目录,不过为了方便和内核一起打包,可以放到内核源代码的usr/目录下,我的做法是在usr目录下建立了image目录,然后将可用的根文件系统的内容全部复制到image目录下: [chenxibing@localhost linux-2.6.27.8-smartarm3250]$ ls usr/image bin dev hello.c home lib mnt proc sbin tmp var boot etc hello_static init Makefile opt root sys usr 另外千万注意,initramfs识别的第一个进程名称为init,因此 阅读全文
posted @ 2012-04-28 15:27 风行雪舞 阅读(948) 评论(0) 推荐(0)
摘要: 在ARM9内核中,实现低功耗的方法之一可以通过MMU进行管理,在idle任务中增加如下代码即可: .section __cache_asm .global __mmuWaitForInterrupt ;/* 系统内核进入低功耗模式, */ ;/* 等待 FIQ/IRQ 激活 */ .func __mmuWaitForInterrupt __mmuWaitForInterrupt: ;/* ARM 进入节能状态,等待中断 */ mov r0, 0 MCR p15, 0, R0, c7, c0, 4 MOV PC, LR .endfunc 阅读全文
posted @ 2012-04-28 15:25 风行雪舞 阅读(496) 评论(0) 推荐(0)
摘要: 如果要在内核运行之前访问CPU的某些IO端口,直接使用指针方式定义寄存器进行操作即可。例如,在解压内核的时候喂狗,通过操作IO进行,可以这样操作: 在arch/arm/boot/compressed/misc.c文件: 307 arch_decomp_setup(); 308 309 makecrc(); 310 *((volatile unsigned long *)0x40E00054) &= (~(328)); //ABING GPAF0_L 311 *((volatile unsigned long *)0x40E0001C) = (114); //ABING GPDR0 312 *((volatile unsigned long *)0x40E00024) = (114 阅读全文
posted @ 2012-04-28 15:24 风行雪舞 阅读(211) 评论(0) 推荐(0)
摘要: Qte 2编程,生成工程可以使用progen,也可使用qmake。 设置环境变量 脚本放在/home/chenxibing/lpc3250/qtopia-x86/qtopia-free-2.2.0-x86目录下,内容如下: 1 2 echo Start Setting env-var 3 export QTDIR=$PWD/qt2 4 export QTEDIR=$QTDIR 5 export QPEDIR=$PWD/qtopia 6 export TMAKEDIR=$PWD/tmake 7 export QMAKESPEC=linux-g++ 8 export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++ 9 export PATH=$QTDIR/bin:$QPEDIR/bin:$TM 阅读全文
posted @ 2012-04-28 15:23 风行雪舞 阅读(403) 评论(0) 推荐(0)
摘要: embededkonsole不正常 修改embeddedkonsole.pro文件,修改红色部分,增加所指定平台,或者干脆直接去掉平台指定。 contains(QMAKE_ARCH,x86)|contains(QMAKE_ARCH,generic)|contains(QMAKE_ARCH,ipaq)|contains(QMAKE_ARCH,sharp) { LIBS+=-lutil DEFINES+=HAVE_OPENPTY } src/server/main.cpp #else // SINGLE_EXEC #include #include #include #include void doCalibrate() { const c 阅读全文
posted @ 2012-04-28 15:22 风行雪舞 阅读(241) 评论(0) 推荐(0)
摘要: 以太网性能测试: 测试仪器:SmartBits 6000C 测试结果:20500包/秒,每包46字节,20500846=943000(94.3M),与标称的100M以太网接近,性能相当优秀,得益于LPC3250的AHB阵列。 U盘读写速度: 写:64MB/73.46s 约 871.22KB/S 读:64MB/77.88s 约 821.77KB/S 阅读全文
posted @ 2012-04-28 15:18 风行雪舞 阅读(175) 评论(0) 推荐(0)
摘要: 在ARM上启动Qtopia-2.2.0: 使用USB鼠标的脚本: #!/bin/sh HOME=/root QTDIR=/opt/Qtopia QPEDIR=/opt/Qtopia QWS_MOUSE_PROTO="USB:/dev/input/mice" #使用mice可以实现鼠标热插拔,但是触摸屏还会有响应 #QWS_MOUSE_PROTO="USB:/dev/input/mouse1" #鼠标不能实现热插拔,但是触摸屏会停止响应 QWS_KEYBOARD="" QWS_SIZE="320x240" LD_LIBRARY_PATH=/opt/Qtopia/lib PATH=/opt/Qtopia/bin:$PATH e 阅读全文
posted @ 2012-04-28 15:18 风行雪舞 阅读(382) 评论(0) 推荐(0)
摘要: 固化jffs2 U-Boot$ tftp 80008000 safe.crmafs U-boot$ nand erase clean 0x00600000 $(filesize) U-Boot$ nand write.jffs2 0x80008000 0x00600000 $(filesize) setenv bootargs root=/dev/mtdblock3 ro console=ttyS0,115200 mem=64M rootfstype=jffs2 使用cramfs作为备份文件系统: [root@localhost zlg]# mkcramfs rootfs_safe safefs.cramfs 阅读全文
posted @ 2012-04-28 15:17 风行雪舞 阅读(309) 评论(0) 推荐(0)
摘要: 编译Qtopia后还能保留源代码,使用命令: [chenxibing@localhost ltib]$ ./ltib -p qtopia -m prep 编译某一个软件包: ./ltib -p sqlite -m scbuild 阅读全文
posted @ 2012-04-28 15:17 风行雪舞 阅读(212) 评论(0) 推荐(0)
摘要: 在etc/rc.d/rcS文件中增加配置IP的命令: ifconfig eth0 192.168.7.236 同时开启SSH服务: /etc/rc.d/init.d/sshd start 第一次执行时间较长,因为会产生一些rsa文件。 更好的方法: 在/etc/rc.d/rc.conf文件的cfg_servers中增加sshd all_services="mount-proc-sys mdev udev hostname devfsd depmod modules filesystems syslog network inetd portmap dropbear sshd boa smb dhcpd settime qtopia watchdog gtk2 pango" all_services_r="pango gtk2 watchdog qtopia settime dh 阅读全文
posted @ 2012-04-28 15:16 风行雪舞 阅读(758) 评论(0) 推荐(0)
摘要: 编译Qtopia的时候配置了使用鼠标的选项: [*] Use usb mouse instead of touchscreen in qtopia by default 同时内核使能了USB HID等,已经插入了USB光学鼠标,在内核中已经看到了鼠标: [root@nxp root]# ls /dev/input/by-id/usb-15ca_USB_Optical_Mouse-event-mouse -la lrwxrwxrwx 1 root root 9 Jan 1 00:18 /dev/input/by-id/usb-15ca_USB_Optical_Mouse-event-mouse - ../event1 另外,使用cat命令读取/dev/input/event1,触动鼠标,能够看到有信息。 阅读全文
posted @ 2012-04-28 15:14 风行雪舞 阅读(525) 评论(0) 推荐(0)
摘要: 关于LCD10分钟后自动灭的问题,可以通过很多方法使其不灭: E.g. add below lines in qtopia file: export QWS_HIDE_CURSOR="Yes" if [ -c /dev/tty0 ]; then echo -e -n '\033[?25l' /dev/tty0 echo -e -n '\033[9]' /dev/tty0 fi if [ -c /dev/vc/0 ]; then echo -e -n '\033[?25l' /dev/vc/0 echo -e -n '\033[9]' /dev/vc/0 fi # remove pointercal if it is empty 但目前没有找到好的方法可以使其关闭后通过输入事件再打开。 阅读全文
posted @ 2012-04-28 15:14 风行雪舞 阅读(309) 评论(0) 推荐(0)
摘要: 选中boot up with a tty and login,并设置inittab参数为 ::respawn:-/sbin/getty -L console 115200,即可实现启动过程中出现登录界面。配置如下: (nxp) target hostname [*] boot up with a tty and login (::respawn:-/sbin/getty -L console 115200) Enter your inittab 阅读全文
posted @ 2012-04-28 15:13 风行雪舞 阅读(369) 评论(0) 推荐(0)
摘要: 硬件资源 片选,使用了nCS2,根据LPC3250的存储器MAP: Four static memory banks, 16 MB each: EMC_CS0 0xE000 0000 ~ 0xE0FF FFFF EMC_CS1 0xE100 0000 ~ 0xE1FF FFFF EMC_CS2 0xE200 0000 ~ 0xE2FF FFFF EMC_CS3 0xE300 0000 ~ 0xE3FF FFFF 阅读全文
posted @ 2012-04-28 15:12 风行雪舞 阅读(820) 评论(0) 推荐(0)
摘要: 蜂鸣器驱动,基于miscdevice子系统。 beepdrv.c 阅读全文
posted @ 2012-04-28 15:11 风行雪舞 阅读(428) 评论(0) 推荐(0)
摘要: 这是PHY3250的驱动,使用UDA1380芯片。 问题:不能播放mp3 已经在内核中配置了声卡: CONFIG_SND_SOC=y CONFIG_SND_LPC3XXX_SOC=y CONFIG_SND_LPC3XXX_SOC_I2S=y CONFIG_SND_LPC32XX_USEI2S1=y CONFIG_SND_LPC3XXX_SOC_I2S_UDA1380=y CONFIG_SND_SOC_UDA1380=y 在启动信息中也已经看到了声卡: Advanced Linux Sound Architecture Driver Version 1.0.17. ASoC version 0.13.2 UDA1380 Audio Codec 0.6asoc: UDA1380 lpc3xxx-i2s1 mapping ok ALSA device l 阅读全文
posted @ 2012-04-28 15:04 风行雪舞 阅读(578) 评论(0) 推荐(0)
摘要: IO复用情况 LPC3250 的7个串口中的UART1/2/7是高速串口。其中的IO复用见 LPC3250串口IO复用情况。 高速串口不能使用 文档描述: Enable the LPC32xx high speed serial ports in the kernel driver configuration and select which high speed serial ports of the 3 you want to use in the Linux kernel configuration System Type-- menu. Add the device nodes to the /dev are using the following command: [root@nxp /root]# mknod /dev/ttyTX0 c 204 196 [r 阅读全文
posted @ 2012-04-28 15:01 风行雪舞 阅读(780) 评论(0) 推荐(0)
摘要: LPC3250 串口存在IO复用,详见 LPC3250串口IO复用情况。 UART1~7的UART3/4/5/6为普通串口。其中: UART5——ttyS0为系统调试串口 目前还没有仔细配置IO复用,其余的串口驱动测试情况。 ttyS0——UART5,正常使用 ttyS1——UART3,能发能收 ttyS2——UART4, ttyS3——UART6, UART6是红外串口,默认情况下作为红外串口使用。如果要将红外串口作为普通串口使用,需要对其进行配置。 UART_CTRL寄存器的Bit5,0——使用红外模块进行调制和解调,1——旁路红外模块。 阅读全文
posted @ 2012-04-28 15:00 风行雪舞 阅读(221) 评论(0) 推荐(0)
摘要: NAND FLASH写保护处理 硬件端口:GPO_14,低有效。GPO_14是单功能引脚,仅仅GPO功能。操作寄存器:P3_OUTP_SET[14]和P3_OUTP_CLR[14]。 代码:__raw_writel(OUTP_STATE_GPO(14), GPIO_P3_OUTP_SET(GPIO_IOBASE)); __raw_writel(OUTP_STATE_GPO(14), GPIO_P3_OUTP_CLR(GPIO_IOBASE)); 阅读全文
posted @ 2012-04-28 14:59 风行雪舞 阅读(265) 评论(0) 推荐(0)
摘要: MS_WP,SD_WP,SD卡写保护:GPI_09,驱动读取SD卡的写保护开关,进行不同操作; MS_CD,SD_CD,插卡检测:GPI_04。(原理图的左边MS_CD和MS_WP写反了,以网络标号为准) MS_PWR,SD_PWR,电源控制引脚,GPO_01,控制2SJ355。 驱动程序 写保护检测 GPI_09是单功能仅输入引脚,读取引脚状态,寄存器:P3_INP_STATE[9]。 代码: 103 u32 tmp; 104 105 tmp = __raw_readl(GPIO_P3_INP_STATE(GPIO_IOBASE)) & INP_STATE_GPI_09; 阅读全文
posted @ 2012-04-28 14:58 风行雪舞 阅读(962) 评论(0) 推荐(0)
摘要: 硬件资源 LED2——GPO_06控制。 移植代码GPIO底层API GPIO相关底层API在arch/arm/mach-lpc32xx/include/mach/lpc32xx_gpio.h文件中实现。 使用范例: 536 /* Set LED GPIO as an output */ 537 __raw_writel(OUTP_STATE_GPO(1), GPIO_P2_DIR_SET(GPIO_IOBASE)); 292 /* Enable the backlight */ 293 #if defined (CONFIG_SMARTARM3250_QVGA_PANEL_V1_00) 294 __raw_writel(OUTP_STATE_GPO(4), GPIO_P3_OUTP_CLR(GPI 阅读全文
posted @ 2012-04-28 14:57 风行雪舞 阅读(350) 评论(0) 推荐(0)
摘要: 640x480,使用夏普的8寸液晶测试: 1024x768@48Hz,使用LG的17寸液晶测试: 群创WVGA屏 阅读全文
posted @ 2012-04-28 14:56 风行雪舞 阅读(400) 评论(0) 推荐(0)
摘要: 修改drivers/video/console/Makefile,去掉光标文件 29 #obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o 30 obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o 修改如下文件使用了soft_cursor的地方: drivers/video/console/bitblit.c drivers/video/console/fbcon_cw.c drivers/video/console/fbcon_ccw.c drivers/video/console/fbcon_ud.c 阅读全文
posted @ 2012-04-28 14:54 风行雪舞 阅读(518) 评论(0) 推荐(0)
摘要: 由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上,因此分区就得进行统一规划。系统的NAND FLASH分区依赖于u-boot和Linux内核两方面的设置。 U-Boot中的NAND分区 文件:include/configs/开发板.h 这是Phy3250的参数,Phy3250采用32MB的NAND FLASH,扇区大小为16KB: 189 /* Phy3250's NAND FLASH, 32MB, 16K size(Block, Sector) */ 190 //#define CFG_ENV_SIZE 0x4000 /* 1 block, 16K */ 191 //#define CFG_ENV_OFFSET 0x168000 /* Block 阅读全文
posted @ 2012-04-28 14:50 风行雪舞 阅读(1048) 评论(0) 推荐(0)
摘要: 框图 LPC3250有3个中断控制器,分别是1个主中断控制器(MIC)和2个子中断控制器(SIC1、SIC2)。整个框图以及它们的关系如下图: 寄存器汇总 每个控制器都有自己的一组寄存器,如下表所列: 阅读全文
posted @ 2012-04-28 14:48 风行雪舞 阅读(637) 评论(0) 推荐(0)
摘要: 用户驱动一般都会有这样类似的文件包含: #include 这就要求平台相关的头文件必须放在include/asm/arch/目录下,而LPC3250的平台相关头文件却放在arch/arm/mach-lpc32xx/include/mach/目录下,如下所示: [chenxibing@localhost linux-2.6.27.8]$ ls arch/arm/mach-lpc32xx/include/mach/ board.h i2c.h lpc32xx_gpio.h lpc32xx_rtc.h lpc32xx_uart.h uncompress.h clock.h io.h lpc32xx_hsuart.h lpc3 阅读全文
posted @ 2012-04-28 14:46 风行雪舞 阅读(201) 评论(0) 推荐(0)
摘要: 其中,基地址是0x31080000的寄存器是EMC的寄存器,还没有定义,需要自己定义。 基地址是0x40004000的寄存器已经在lpc32xx_clkpwr.h中定义了,无需再次定义。 阅读全文
posted @ 2012-04-28 14:45 风行雪舞 阅读(275) 评论(0) 推荐(0)
无觅相关文章插件,快速提升流量