完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用uboot加载/hardware/lcd_3.5_4.
开发工具链和uboot是CD1提供的。 LCD是JZ2440原装, 看了WXCAT35-TG3的手册, 说的是 24bit RGB Interface 看起来例子中给的程序没有对应的型号,不知道是这个原因吗? file:///C:UsersADMINI~1AppDataLocalTemp9098DFEB1A7B4082845432C5A607295D.jpg —————————————————————————————————— —————————————————————————————————— file:///C:UsersADMINI~1AppDataLocalTempB4ED87D9E2204D7F8F5ACC55708C6827.jpg file:///C:UsersADMINI~1AppDataLocalTemp294768E8244644C28EA9111FE978A384.jpg step1:改/hardware/lcd_3.5_4.3/head.S文件注,释掉启动代码 Reset: /* ldr sp, =4096 @ 设置栈指针,以下都是C函数,调用前需要设好栈 bl disable_watch_dog @ 关闭WATCHDOG,否则CPU会不断重启 bl clock_init @ 设置MPLL,改变FCLK、HCLK、PCLK bl memsetup @ 设置存储控制器以使用SDRAM bl nand_init @ 初始化NAND Flash @ 复制代码到SDRAM中 ldr r0, =0x30000000 @ 1. 目标地址 = 0x30000000,这是SDRAM的起始地址 mov r1, #4096 @ 2. 源地址 = 4096,运行地址在SDRAM中的代码保存在NAND Flash 4096地址开始处 mov r2, #16*1024 @ 3. 复制长度 = 16K,对于本实验,这是足够了 bl CopyCode2SDRAM @ 调用C函数CopyCode2SDRAM bl clean_bss @ 清除bss段,未初始化或初值为0的全局/静态变量保存在bss段 msr cpsr_c, #0xd2 @ 进入中断模式 ldr sp, =0x31000000 @ 设置中断模式栈指针 msr cpsr_c, #0xdf @ 进入系统模式 ldr sp, =0x34000000 @ 设置系统模式栈指针, ldr lr, =ret_initirq @ 设置返回地址 ldr pc, =init_irq @ 调用中断初始化函数 ret_initirq: msr cpsr_c, #0x5f @ 设置I-bit=0,开IRQ中断 */ ldr lr, =halt_loop @ 设置返回地址 ldr pc, =main @ 调用main函数 step2:改 lds文件 SECTIONS { . = 0x30400000; . = ALIGN(4); .text : { head.o init.o nand.o (.text) *(.text) } . = ALIGN(4); .rodata : { *(.rodata) } . = ALIGN(4); .data : { *(.data) } __bss_start = .; .bss ALIGN(4) : { *(.bss) *(COMMON) } __bss_end = .; } step3.编译 make clean ; make; ARM-linux-objcopy -O binary -S lcd_elf lcd.bin step4. tftp 0x30400000 lcd.bin ;go 0x30400000 ## Starting application at 0x30400000 ... step5.测试 ##### Test TFT LCD ##### [1] TFT240320 8Bit [2] TFT240320 16Bit [3] TFT480272 8Bit [4] TFT480272 16Bit Enter your selection: 2 Initializing GPIO ports.......... [TFT 64K COLOR(16bpp) LCD TEST] 1. Press any key to draw line 2. Press any key to draw circles 3. Press any key to fill the screem with one color 4. Press any key to fill the screem by temporary palette 5. Press any key stop the testing —————————————————————————————————— —————————————————————————————————— |
|
相关推荐
15个回答
|
|
资料所在地:光盘+网盘+论坛+讨论群,所有的资料都会上传到网盘
|
|
|
|
lcd_3.5_4.3.bin这个文件是对的,JZ2440的屏幕分辨率是480X272,4.3寸屏。老版的JZ2440是3.5寸屏,分辨率是240X320。
##### Test TFT LCD ##### [1] TFT240320 8Bit [2] TFT240320 16Bit [3] TFT480272 8Bit [4] TFT480272 16Bit Enter your selection: 2 Initializing GPIO ports.......... 你在这里的时候输入了[2] 显示的时候当然是半屏。 要选择[3]或者[4] |
|
|
|
1234我都没有试成功。我想问我的代码这样改能不能正常地启动LCD?
|
|
|
|
LCD裸板程序不需要你改代码,按照我说的步骤实验就行了。
|
|
|
|
LCD显示QT只有半个屏幕,重烧uImage_4.3解决问题。
待完成事项1,在代码里将LCD驱动改为4.3寸。 待完成事项2,调试出uboot能启动的裸机LCD驱动 。 |
|
|
|
为啥我的uboot加载/hardware/lcd_3.5_4.3后;没有后面那两项,求解,重新编译后烧进去又什么都没发生?
##### Test TFT LCD ##### [1] TFT240320 8Bit [2] TFT240320 16Bit [3] TFT480272 8Bit [4] TFT480272 16Bit |
|
|
|
没有后面那两项说明你烧错文件了
|
|
|
|
我没修改过啊,里面就一个lcd.bin文件啊(hardwarelcd_3.5_4.3)不是这个么
|
|
|
|
int main()
{ char c; uart0_init(); // 波特率115200,8N1(8个数据位,无校验位,1个停止位) while (1) { printf("rn##### Test TFT LCD #####rn"); printf("[1] TFT240320 8Bitnr"); printf("[2] TFT240320 16Bitnr"); printf("[3] TFT480272 8Bitnr"); printf("[4] TFT480272 16Bitnr"); printf("Enter your selection: "); 这是里面的main函数,我后面make clean 后再make,烧进去就没反应了,是我的文件有错么?要不你发一份给我试试看,谢谢 |
|
|
|
你烧写错了程序 。有个app是没有后面两项的
|
|
|
|
你仔细核对一下目录和你的文件,到底是不是进对了目录,到底编译成功了没有,到底是不是用了这个文件。
|
|
|
|
资料所在地:光盘+网盘+论坛+讨论群,所有的资料都会上传到网盘
|
|
|
|
|
|
|
|
应该是没有烧错的啊hardwarelcd_3.5_4.3 lcd.bin 修改时间2010/12/24 16.5K大小的啊,你的是这个吗,我烧的是这个
|
|
|
|
原来是有单个回复功能的,应该是没有烧错的啊hardwarelcd_3.5_4.3 lcd.bin 修改时间2010/12/24 16.5K大小的啊,你的是这个吗,我烧的是这个
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2010 浏览 6 评论
1824 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4380 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 14:38 , Processed in 0.739084 second(s), Total 87, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号