OK6410 logo移植

本文介绍如何在OK6410开发板上通过修改U-Boot源码实现自定义LCD分辨率及Logo显示。重点讲解了common/lcd.c与include/lcd.h两个关键文件的参数调整方法。

说说基本情况:

开发板:OK6410

芯片:S3C6410

源码:uboot1.1.6.1

推荐视频:韦东山视频,OK6410貌似在第一期

采用的屏幕不是飞凌提供的屏幕,而是10.4寸的,思路是自己修改lcd参数即可。



U-Boot logo的显示,由于是开机即显示logo,与LinuxKernellogo无关,主要与2个文件有关,一个是common/lcd.c,另一个是include/lcd.h

Common/lcd.c : 

里面有LCD屏的驱动程序,主要修改了几个参数

1. 设置LCD控制器,包括分辨率、时间参数、极性 67


这里的BPP,根据自己的板子修改。默认为32BPP,我板子有转换器,只支持565RGB,所以选择16BPP的。在lcd.h中修改即可

2.  LCD背光使能,初始化驱动 1036行,我的板子GPE口控制LCD背光的亮灭,我这里使能他,根据自己的板子修改,默认不修改。

 

后面的初始化按照源码即可,查看手册发现都对应,另外16bpp像素数据在帧缓存存放方式需半字交换,所以多了一项S3C_WINCONx_HAWSWAP_ENABLE。


3. 设置像素颜色格式 1097行,根据自己的板子修改,我这里要引用到16BPP565格式的


4. 其他参数理解

1)第462行,函数drv_lcd_init (void)


这个函数是在NAND FLASH启动后,手动选择LCD屏幕尺寸的分辨率时使用,这里要修改第512行,最后else语句,改成panel_info.vl_col = 800panel_info.vl_row = 600;使系统在默认的情况下,自动选择分辨率为800x600的模式。lcd_size_in_env=”100” 这个稍后介绍。

2)第612行,lcd_init (void *lcdbase) 函数

这个函数是LCD在选择不同屏幕时,初试化不同屏幕的不同参数时使用的,像上面介绍的,lcd_size_in env=”XX”时,会跳转到不同的lcd_ctrl_init XX(lcdbase)中以设定不同的初始化参数,例如uboot开机屏幕选择为7寸,就跳转到lcd_ctrl_init 70(lcdbase)设定7寸群创屏的参数。

这里把4.3寸的else if改了 即可。后面不管。最后默认执行的还是lcd_ctrl_init()函数。


(3)117行结构体


PIXELBITS上面有介绍,我们已修改为16

这里的设定,结果是vl_col = 800vl_row = 600vl_bpix = 16;这些参数有什么用呢,影响情况如下图。


我理解的是关于寄存器和显卡设定要使用到。


Include/Lcd.h                            219



至于logo的读取,烧录飞凌的mmc_ram256_logo.bin,就能读取CD卡中的BMP图片。或者配置include/configs/smdk6410.h中的UBOOT_LCD_LOGO,开机按空格,跳转到main.c中第396arm_sdfuse中,寻址0x50008000BMP图片,我采用的是烧录飞凌的mmc.bin文件烧录,比较方便。

<think>嗯,用户问的是如何通过更改路径来实现代码或文件的移植。首先,我得回忆一下之前学过的相关知识,特别是关于文件路径和代码移植的内容。根据提供的引用,特别是引用[1]和引用[3],可能涉及在移植时调整文件路径,确保编译器或系统能找到所需文件。 用户可能是在移植代码时遇到了路径错误,比如文件找不到的问题。需要解决的是如何正确修改路径,使得所有依赖的文件都能被正确引用。根据引用[1]里的例子,使用Keil时,需要手动修改每个文件的路径,去掉感叹号。这可能涉及到绝对路径和相对路径的区别,以及如何正确设置它们。 另外,引用[2]提到assets目录可以用来存放不会被编译的文件,但需要正确读取。这可能涉及到资源文件的路径设置。用户可能需要了解不同环境下路径的写法,比如在IDE中如何配置,或者在代码中如何引用相对路径。 接下来,我需要组织步骤:首先检查报错信息,确定哪些文件路径有问题;然后找到文件的实际位置,决定使用绝对还是相对路径;接着在项目配置中逐个修改路径,如引用[1]所述;最后测试是否解决。同时,引用[3]强调耐心调试的重要性,所以提醒用户不要急躁,一步步来。 可能还需要区分开发环境和构建系统如何处理路径,比如编译器配置和运行时路径的不同。例如,代码中的文件引用可能需要相对于可执行文件的路径,而IDE中的配置则是项目文件的位置。用户可能需要调整这两方面的路径设置。 最后,生成相关问题要考虑用户可能的后续疑问,比如如何处理嵌套目录、不同系统的路径差异,或者自动化路径修改的方法。这些扩展问题可以帮助用户更深入地理解路径配置的各个方面。</think>### 通过路径修改实现代码/文件移植的步骤 1. **定位路径问题** - 根据编译或运行时的报错信息,确认哪些文件路径缺失(例如Keil中的感叹号标识文件)[^1] - 检查文件实际存储位置,确定应使用绝对路径还是相对路径 2. **路径修改操作** - **开发环境配置**(以Keil为例): ```markdown 1. 右键点击报错文件 → 选择`Options` 2. 在`Path`栏输入正确路径(如`../Drivers/USB`) 3. 确认目标路径下存在该文件后点击`OK`[^1] ``` - **代码内部路径调整**: ```c // 修改前 #include "D:/old_project/inc/config.h" // 修改后(相对路径) #include "../common/config.h" ``` 3. **路径类型选择** - **相对路径**:基于项目根目录的路径(推荐) - 例如:`assets/images/logo.png`[^2] - **绝对路径**:完整磁盘路径(慎用,移植易失效) - 例如:`C:/project/src/main.c` 4. **特殊目录处理** - 对`assets`等资源目录,保持相对路径引用: ```python # Python示例 with open('assets/data/config.json') as f: # 文件操作 ``` - 确保目录结构在移植时完整复制 5. **验证与调试** - 执行编译/运行测试 - 若仍报错,使用文件搜索功能确认路径有效性 - 重复步骤2-4直至所有路径错误消除[^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值