uboot中关于LCD的代码分析【转】】的更多相关文章

本文转载自:http://blog.csdn.net/oqqHuTu12345678/article/details/72236117 以下内容源于朱有鹏<物联网大讲坛>课程的学习,如有侵权,请告知删除. 1.在uboot-jiuding/board.c中,init_sequence中的display_banner中的open_backlight函数中,给GPF3_5输出高电平.     注释掉这一句uboot的LCD显示照样正常的,因为后面LCD操作的部分还会再做一遍的. 真正的初始化LCD…
1. 增加Nandflash读取代码 因为要显示图片,而图片明显是放在Nandflash中比较合适,因此需要有能够操作Nandflash的函数.在U-boot中已经有能操作Nandflash的函数了,但是我找了半天也不知道该怎么调用,因此还是上自己的代码吧. #define NFCONF *(volatile unsigned int *)0x70200000 #define NFCONT *(volatile unsigned int *)0x70200004 #define NFCMMD *…
都知道U-BOOT分为两个阶段,第一阶段是(~/cpu/arm920t/start.S中)在FLASH上运行(一般情况 下),完成对硬件的初始化,包括看门狗,中断缓存等,并且负责把代码搬移到SDRAM中(在搬移的时候检查自身代码是否在SDRAM中),然后完成C程序 运行所需要环境的建立,包括堆栈的初始化等,最后执行一句跳转指令: ldr pc, _start_armboot _start_armboot: .word start_armboot, 进入到/lib_arm/board.c中的函数v…
这篇文档基于qemu-kvm-1.1.0源代码进行分析. 首先,源代码中的hmp-commands.hx文件里有下面内容: { .name = "migrate",/* 在monitor命令行中所使用的命令名称 */ .args_type = "detach:-d,blk:-b,inc:-i,uri:s", .params = "[-d] [-b] [-i] uri",/* 重要,是命令的附加參数,详细參照后文的分析 */ .help = &qu…
1. 编译U-boot 准备好U-boot压缩包urbetter-u-boot-1.1.6-v1.0.tgz,输入命令:tar -xvf urbetter-u-boot-1.1.6-v1.0.tgz 进入U-boot目录,按顺序执行以下命令: make clean make smdk6410_config make 会报出很多/usr/local/arm/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc: not found的错误,这是因…
本文转载自:http://blog.csdn.net/u010865783/article/details/54953315 在lcd为竖屏,hdmi显示横屏的情况下,如果按照默认的uboot显示框架来看,只能保证lcd或者hdmi上面显示出来的图片一个是正的,另外一个是旋转了90度的样子. 为了能是lcd和hdmi同时支持显示图片都是正的,需要对uboot的框架做修改.如果硬件支持旋转功能的话,就可直接使用硬件旋转,不需要软件来调整. 由于项目原因,折腾了一把这个流程,具体实现记录下: 1:由…
本系列其它文章 使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题 Metalama简介1. 不止是一个.NET跨平台的编译时AOP框架 Metalama简介2.利用Aspect在编译时进行消除重复代码 代码分析 这里所说的代码分析,是可以通过一些自定义的方法,在使用不符合条件的代码时产生错误或警告. 如果配合CI并在每次持续集成时,都向团队分发警告和错误.团队也在开发时遵守谁产生的警告,谁解决的团队约定,那么团队将不断减少技术债务,这样可以避免架构持续性的腐坏. 当然.NE…
转:http://www.embedu.org/Column/Column464.htm 作者:曾宏安,华清远见嵌入式学院讲师. u-boot是嵌入式系统中广泛使用的一种bootloader.它不仅支持众多的平台和参考板,而且支持丰富的命令,可以让用户对开发板进行各种操作.关于u-boot使用和移植的资料很多,这里不再赘述.下面用问答的方式介绍u-boot中命令的实现机制. Q1: u-boot中命令的实现代码在什么地方? A1: 在u-boot源码的common目录下.通常一个或多个命令在对应…
u-boot中nandflash初始化流程分析(转) 原文地址http://zhuairlunjj.blog.163.com/blog/static/80050945201092011249136/   下面对nand flash的初始化代码nand_init()进行分析: 1.如果定义(CONFIG_COMMANDS & CFG_CMD_NAND)没定义(CFG_NAND_LEGACY) 则start_armboot()调用driver/nand/nand.c中的nand_init(),否则如…
一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括: (1)pin multiplexing.基于ARM core的嵌入式处理器一般会提供丰富的功能,例如camera interface.LCD interface.USB.I2C.SPI等等.虽然…
在U-boot目录下,有个比较重要的目录就是SPL的,SPL到底是什么呢?为什么要用它呢? SPL(Secondary programloader)是uboot第一阶段执行的代码.主要负责搬移uboot第二阶段的代码到 系统内存(System Ram,也叫片外内存)中运行.SPL是由固化在芯片内部的ROM引导的.我们知道很多芯 片厂商固化的ROM支持从nandflash.SDCARD等外部介质启动.所谓启动,就是从这些外部介质中搬移一段 固定大小(4K/8K/16K等)的代码到内部RAM中运行.…
MPC8313ERDB在Linux从NAND FLASH读取UBoot环境变量的代码分析 Yao.GUET@2014-05-19 一.故事起因 由于文件系统的增大,已经大大的超出了8MB的NOR FLASH.而不得不把内核,文件系统和设备树文件保存到NAND FLASH上. 可是由于使用的是RAMDISK,而无法保存一些个别的配置和參数,最简单的须要就是设置系统的IP了,.. 要使用统一的RAMDISK.而实现LINUX启动之后.设置成不能的參数功能,比較方便的就是从UBOOT把这些參数传递过去…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qianlong4526888/article/details/27698707 注意:由于文档是去年写的,内有多个图片.上传图片非常麻烦(须要截图另存插入等等).我把文章的PDF版本号上传到了CSDN下载资源中.为了给自己赚点积分.所以标价2分,没有积分的同学能够直接留言跟我要,记得留下邮箱. 下面是文章内容,由于我懒得编辑图片了,所以文章看来会非常不爽,强烈推荐点击以上红色链接下载pdf版. 文…
转自:http://www.wowotech.net/linux_kenrel/pin-controller-driver.html 一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括: (1)pin multiplexing.基于ARM core…
作者:彭东林 邮箱:pengdonglin137@163.com 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 u-boot:U-Boot 2010.12 Linux内核版本:linux-3.0.31 Android版本:android-4.1.2 我们以tiny4412为例分析串口驱动,下面我们从u-boot开始分析,然后再分析到Linux. 串口初始化 关于这部分代码流程参考件:tiny4412 u-bo…
前言: 当nova服务发送了创建port的restful调用信息之后,在neutron服务中有相应的处理函数来处理调用.根据restful的工作原理,是按照 paste.ini文件中配置好的流程去处理该条调用.本节从neutron代码中的create_port()函数开始说起. 简要流程: 下面是调用的流程图.  详细代码: 以上是简要流程图,下面是具体的代码分析. create_port() 功能: 调用create_port_db()函数产生port数据. 更新安全组 绑定port _cre…
前言: 当neutron-server创建了port信息,将port信息写入数据库中.流程返回到nova服务端,接着nova创建的流程继续走.在计算节点中neutron-agent同样要完成很多的工作来支持主机的通信. 简要流程: 详细代码分析: spawn()作用: 准备磁盘信息 获取镜像的获取路径 准备启动xml文件 创建主机和网络,调用create_domain_and_network()函数获取网络信息. 准备启动xml文件的过程稍后有详细分析. create_domin_and_net…
转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17:13:14 在学习数据结构时,有一个重要的知识点就是链表.对于链表的一些基本操作,它的最好学习资料就是内核中的list.h头文件,内核中大量的使用链表,都是基于此文件的,下面来仔细分析它: (一) 结构体的定义 首先需要明确的一点是,在数据结构书中,大部分的链表定义是这样的(双向链表): type…
转自:http://blog.chinaunix.net/uid-30254565-id-5637598.html linux内核中链表代码分析---list.h头文件分析(二) 16年2月28日16:59:55 分析完container_of()宏以后,继续分析list.h文件: (1)list_entry 它就是一个container_of宏,都是得到ptr所指地址的这个结构体的首地址 #define list_entry(ptr, type, member) \ container_of(…
来看一下搬移部分和重定位部分的代码: relocate: /* 把U-BOOT重新定位到RAM*/          //r0=0; adr r0, _start /* r0是代码的当前位置*/ ldr r1, _TEXT_BASE /*测试判断是从FLASH启动,还是RAM  *///r1=TEXT_BASE = 0x33F80000 cmp     r0, r1     /*比较R0.R1,调试的时候不需要重定位. */ //如果当前的位置就是0x33F80000,既然uboot能够正常执行…
转:https://blog.csdn.net/weixin_34355715/article/details/85751477 Env在u-boot中通常有两种存在方式,在永久性存储介质中(flash.NVRAM等),在SDRAM中.可配置不适用env的永久存储方式,但不常用.U-boot在启动时会将存储在永久性存储介质中的env重新定位到RAM中,这样可以快速访问,同时可以通过saveenv将RAM保存到永久性存储介质中. 相关结构体 env_t定义于include/environment.…
make xxx_config实质上就是调用了 首先看MKCONFIG: [注意]SRCTREE=源文件下的目录 之后的语句: @$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c2440就相当于执行 #mkconfig xxx arm arm920t EmbedSky NULL s3c2440 #$0   $1  $2 $3  $4  $5  $6 于是乎就开始执行mkconfig: [ "${BOARD_NAME}" ]…
今天在工作上搞了一天高通的芯片uboot程序,目的是希望将一个裸板的程序移植到uboot中,并且开机让它运行.这个芯片是NXP4330,目前是高通的一个芯片,基于ARM-contexA9架构,那么就跟4412是一样的架构了,今天将uboot加载流程基本上算是搞明白了,也明白了uboot最后是通过一些手段,最终能够去加载kernel.img,最终启动内核,后面就是加载文件系统了. 心血来潮,所以,今天借这个机会在说明一下4412的uboot最后是怎么去获取kernel.img进而启动,其实都大同小…
crt0,S(_main)代码分析 --- 1. 设置sp寄存器地址 //设置SP栈指针 #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK) ldr sp, =(CONFIG_SPL_STACK) #else ldr sp, =(CONFIG_SYS_INIT_SP_ADDR) #endif //设置地址八位对齐 #if defined(CONFIG_CPU_V7M) /* v7M forbids using SP as B…
根据分析的框架,自己写一个LCD驱动程序 1分析LCD硬件原理图 Von和Voff接的是一个电源电路,通过LCD_POWER接的是GPG4来控制LCD电源,高电平表示开启LCD电源 VM接的是CPU的VM:VDEN /GPC4为数据使能信号, VLINE接的CPU:HSYNC/GPC2,HSYNC信号有效时,表示一行数据的开始: VFRAME接的CPU:VSYNC/GPC3,VSYNC信号有效时,表示一帧数据的开始 VCLK接的CPU:VCLK/GPC1 表示像素时钟信号,每个VCLK信号表示正…
u-boot_mod 是具有web 浏览器的uboot,也就是传说中的不死uboot,这里的不死指的是不管怎么刷firmware 都可以方便更换firmware,而不是uboot本身就是不死的. 这里将其的代码分析一下. 代码的网址是:https://github.com/pepe2k/u-boot_mod uboot的代码在openwrt上是最底层的,就像PC的BIOS. 整个uboot最开始的入口,是一段汇编语言(MIPS)代码 要证明这段代码是一开始执行的,首先要看链接器脚本(u-boot…
一.X210官方uboot配置编译实践1.找到官方移植好的uboot(BSP概念)(1)源头的源代码是uboot官网下载的.这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的SoC对应的移植版本.(2)SoC厂商在推出一款SoC后,厂商的工程师会去uboot官网下载一个uboot,根据自己的SoC进行第一步的移植,移植的目标是厂商推出的开发板.(譬如三星的S5PV210芯片厂商出的开发板就叫SMDKV210).所以三星的工程师移植的uboot是根据他们自己的SMDKV2…
一.u-boot中环境变量与uImage中MTD的分区关系 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等. 一般我们只需要分3-4个区,第一个为boot区,一个为boot参数区(传递给内核的参数),一个为内核区,一个为文件系统区.(但是有的内核就会有很多分区,比如内核参数会有两个,还有会Logo的地址) 而对于bootloader中只要能将内核下载到A~B区的A地址开始处就可以,C~D区的C起始地址下载文件系统…….这些起始地…
Linux内核启动代码分析二之开发板相关驱动程序加载分析 1 从linux开始启动的函数start_kernel开始分析,该函数位于linux-2.6.22/init/main.c  start_kernel()    --2>setup_arch(&command_line);//该函数位于arch/arm/kernel/setup.c           //在这个函数中定义了一个描述开发板的属性的结构体struct machine_desc *mdesc           struc…
在移植uboot时编译一切正常,但uboot启动中载入自己写的网卡驱动出现故障,一直在打印raise:Signal #8 caught google  百度了一番,也有非常多人遇到了这个问题,大家都说出了解决这个问题的办法, 就是自己编写的驱动中有出现除以0的误操作,就会一直打印raise:Signal #8 caught 将除操作改为位移操作,或者避免除数为0,就能够解决问题. 那为什么有除以0的操作就会引发raise: Signal #8 caught ? 来分析一番! 遇到错误打印,首先要…