这一节主要讨论1个问题:点灯.点灯是实际开发中,特别是裸板开发中常见的调试手段,相当于主机开发中漫天飞舞的printf/printk.为了追踪程序的现场执行情况,很多时候我们都使用点一个灯的方法来进行初步的判断.如果你把刚才编译的程序烧录到SoC,你又怎么知道这个Uboot有没有工作呢?所以,我们在这里就要完成这样一个程序的改造. 虽说只是点一个灯, 但麻雀虽小五脏俱全, 也算是对uboot源码进行修改, 我总结了一点改造uboot的流程, 这一篇就按下面的改造流程来组织: 找运行逻辑,即插入代…
这一节主要讨论1个问题:点灯.点灯是实际开发中,特别是裸板开发中常见的调试手段,相当于主机开发中漫天飞舞的printf/printk.为了追踪程序的现场执行情况,很多时候我们都使用点一个灯的方法来进行初步的判断.如果你把刚才编译的程序烧录到SoC,你又怎么知道这个Uboot有没有工作呢?所以,我们在这里就要完成这样一个程序的改造. 虽说只是点一个灯, 但麻雀虽小五脏俱全, 也算是对uboot源码进行修改, 我总结了一点改造uboot的流程, 这一篇就按下面的改造流程来组织: 找运行逻辑,即插入代…
为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于网卡功能的移植,我们依然在在一遍又一遍的实践这个uboot改造的套路. 找运行逻辑,即插入代码的位置. 根据运行逻辑编写功能代码. 找配置逻辑,即修改哪些文件使配置生效. 根据配置逻辑修改配置使功能代码生效. 重新编译烧写uboot. 1. 找运行逻辑 为了实现ping.tftp下载.nfs挂载等功能,必须将uboot的网卡功能配置上,这个功能属于板级功能, 看README+经验+样板 需要在相应板级目录的xx…
ref:https://www.cnblogs.com/xiaojiang1025/p/6500532.html 为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于网卡功能的移植,我们依然在在一遍又一遍的实践这个uboot改造的套路. 找运行逻辑,即插入代码的位置. 根据运行逻辑编写功能代码. 找配置逻辑,即修改哪些文件使配置生效. 根据配置逻辑修改配置使功能代码生效. 重新编译烧写uboot. 1. 找运行逻辑 为了实现ping.tftp下载.nfs挂载等功…
经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,其次,此时的uboot.bin也没有结合我们的开发板进行配置,还无法使用.而要进行这样的个性化配置,前提条件就是对uboot开机流程和编译系统有所了解,本文主要讨论前者.uboot是一个两阶段bootloader,第一阶段主要做硬件直接相关的初始化,使用汇编编写;第二阶段主要为操作系统的运行准备环境,主要用C编写,这里以ARM平台为例分析…
串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些准备工作, 流程还是那套: 找运行逻辑,即插入代码的位置. 根据运行逻辑编写功能代码. 找配置逻辑,即修改哪些文件使配置生效. 根据配置逻辑修改配置使功能代码生效. 重新编译烧写uboot. 1. 找运行逻辑 通过(二)的分析, 我们了解到初始化串口的工作在BL2的"board/samsung/my…
前两篇介绍了uboot-2013.01的配置原理以及大体的运行流程,本文将讨论如何对uboot源码进行配置,将一个可用的uboot烧录到SD卡中. 定制自己的core board 市面上能买到的开发板的核心板基本都是基于官方参考板制作的,所以虽然标准操作是"定制"自己的core board,但鉴于我的板子的核心板是基于三星的参考板做的,所以我们做的主要工作就是按照(一)中的原理,编写(山寨)我们"自己的"核心板配置.我们需要的目录是"board/samsu…
来源:Linux社区  作者:xiaojiang1025  :http://www.linuxidc.com/Linux/2017-02/141018.htm 和绝大多数源码编译安装一样,uboot的编译流程也类似于"make config->make->make install"**三步,只是由于uboot本身是针对多种平台的bootloader,软件的复杂性和通用型决定了编译uboot需要自行填补很多坑.本文主要讨论的就是移植uboot-2013.01的第一个坑——ub…
ref : https://www.cnblogs.com/xiaojiang1025/p/6500520.html 串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些准备工作, 流程还是那套: 找运行逻辑,即插入代码的位置. 根据运行逻辑编写功能代码. 找配置逻辑,即修改哪些文件使配置生效. 根据配置逻辑修改配置使功能代码生效. 重新编译烧写ub…
ref: https://www.cnblogs.com/xiaojiang1025/p/6436752.html 前两篇介绍了uboot-2013.01的配置原理以及大体的运行流程,本文将讨论如何对uboot源码进行配置,将一个可用的uboot烧录到SD卡中. 定制自己的core board 市面上能买到的开发板的核心板基本都是基于官方参考板制作的,所以虽然标准操作是"定制"自己的core board,但鉴于我的板子的核心板是基于三星的参考板做的,所以我们做的主要工作就是按照(一)中…
ref : https://www.cnblogs.com/xiaojiang1025/p/6106431.html 本人建议的uboot学习路线,先分析原有配置,根据现有的配置修改.增加有关的部分,添加自己的单板. 和绝大多数源码编译安装一样,uboot的编译流程也类似于"make config->make->make install"**三步,只是由于uboot本身是针对多种平台的bootloader,软件的复杂性和通用型决定了编译uboot需要自行填补很多坑. 本文主…
经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,同时,此时的uboot.bin也没有结合我们的开发板进行配置,还无法使用.而要进行这样的个性化配置,前提条件就是对uboot开机流程和编译系统有所了解,本文主要讨论前者.在三星的SoC中, 启动流程可以分为三个阶段BL0, BL1, BL2, BL3, 三星自己的手册对BL1的解释也不尽相同, 一种是将在iRAM中运行的程序都归结为BL1…
ref:https://www.cnblogs.com/xiaojiang1025/p/6496704.html 经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,同时,此时的uboot.bin也没有结合我们的开发板进行配置,还无法使用.而要进行这样的个性化配置,前提条件就是对uboot开机流程和编译系统有所了解,本文主要讨论前者.在三星的SoC中, 启动流程可以分为三个阶段BL0, B…
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文章: <mini2440移植uboot 2011.03(上)> 前几篇博文: <mini2440移植uboot 2014.04(一)> <mini2440移植uboot 2014.04(二)> <mini2440移植uboot 2014.04(三)> 后一篇博文: <mini2440移植ub…
大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企业的,尤其是Sate4412 GPS,wifi,LVDS,VGA,HDMI,USB接口等全部引出扩展相当的多,所以不适合个人玩,成本太高.现在突然有一种想做一个扩展性很强的,但是底板只提供接口的板子,这样可以做的很低成本,技术对我们来说已经不是问题,关键是做成什么样子,才会最便宜,最有扩展性?!也适…
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正…
开发环境: 单板:TINY4412-1611 系统:Ubuntu 16.04 64位 编译工具链:arm-linux-gcc-4.3.2 uboot版本:uboot_tiny4412-20130729 内核版本:linux-3.5-20170221 busybox版本:busybox-1.20.0 [注] 1.本文只用于移植,不会讲解其中原理.若读者希望了解其中原理,请阅读<嵌入式linux应用开发完全手册>. 2.为了便于区分uboot命令和虚拟机命令,两种命令的背景会采用不同颜色,请读者注…
代码上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 前几篇博文: <mini2440移植uboot 2014.04(一)> <mini2440移植uboot 2014.04(二)> <mini2440移植uboot 2014.04(三)> <mini2440移植uboot 2014.04(四)> (九)修改nand flash代码错误(代码中一些错误修正): 用tftp将uboo…
参考博文: <u-boot-2011.03在mini2440/micro2440上的移植> 本来我想移植最新版的uboot,但是移植却不太成功,所以先模仿他人的例子重新执行一遍,对uboot更熟悉后再开始新版本的移植. 操作系统: debian 7.4 uboot:   u-boot-2011.03(下载地址) 交叉编译器:arm-linux-gcc 4.4.3(下载地址) 执行过程如下: 移植(一)基本配置: 在boards.cfg下添加一行: mini2440 arm arm920t -…
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文章: <u-boot-2011.09在ST2410上的移植-启用CS8900网卡功能> 参考文档: s3c2440手册(下载地址) mini2440电路图(下载地址) SST39VF1601芯片手册(下载地址) 前一篇博文:<mini2440移植uboot 2014.04(一)> (四)添加nor flash支持 我的m…
目录 u-boot(四)命令实现 分析run_command 小结 自定义一个命令 代码 makefile title: u-boot(四)命令实现 tags: linux date: 2018-09-25 23:13:05 --- u-boot(四)命令实现 命令是如何实现的? 输入命令 执行函数,根据命令去寻找函数 所以会有一个命令的结构体[name,fun] 分析run_command 函数原型如下 int run_command (const char *cmd, int flag) 处…
上一篇博文:<mini2440移植uboot 2014.04(六)> 代码已经上传到github上: https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 (十一)将环境变量放入到nand flash并屏蔽DEBUG宏 虽然nand flash已经基本上可用了,但是现在环境变量仍然是放在Nor flash,需要修改成放入Nand flash内. 修改include/configs/mini2440.h: /* #define DEBUG */…
上一篇博文:<mini2440移植uboot 2014.04(五)> 代码已经上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 (十)添加nand 启动代码 nand启动是uboot中最让人困惑的东西,它用到SPL(secondary program loader),对SPL进行讲解的文档比较少,初次接触有点无所适从的感觉. 主要参考文档可以查看当前版本uboot下的doc/README.SPL和doc/README…
最新版的uboot添加了很多新功能,我决定在最新版代码基础上重新移植一遍加深理解. 我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文档: s3c2440手册(下载地址) mini2440电路图(下载地址) 参考我的两篇博文: <mini2440移植uboot 2011.03(上)> <mini2440移植uboot 2011.03(下)> 还有其他几篇文章: <…
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文档: s3c2440手册(下载地址) mini2440电路图(下载地址) K9F1G08数据手册(下载地址) 参考文章:<mini2440移植uboot 2011.03(下)> 前两篇博文: <mini2440移植uboot 2014.04(一)> <mini2440移植uboot 2014.04(二)> (…
参考博文: <u-boot-2011.03在mini2440/micro2440上的移植> 移植(五)添加nand支持: host@debian:~/soft/mini2440/u-boot-2011.03$ touch drivers/mtd/nand/s3c2440_nand.c host@debian:~/soft/mini2440/u-boot-2011.03$ vim drivers/mtd/nand/s3c2440_nand.c 添加下面内容: #include <commo…
现把D到O的大部分滤镜用vulkan的ComputeShader实现了,列举其中一些有点特殊的说明. GaussianBlurPosition 指定区域高斯模糊 没有按照GPUImage里的方式实现,按照类似GaussianSelectiveBlur方式实现,一张高斯模糊图,一张原图,二图进行混合,这种实现方式更灵活(模糊半径等参数),并且并不会降低性能(单独的高斯模糊更容易优化). SphereRefraction 环境映射 环境映射技术漫谈 和GlassSphere一样,主要就是球形坐标系与…
驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) 文档里写道: Uboot.lds文件中起始地址是0x00,但是config.mk中的TEXT_BASE是0x57e00000,但是生成的uboot反汇编文件中,为什么start.s的第一条指令地址也是0x57e00000?不应该是0x00么?因为start.s的加载地址和运行地址都是0x00啊!? 答:Ubo…
ok6410移植u-boot 既然是移植u-boot当然首先需要u-boot源码,这里的u-boot代码是由国嵌提供的. 一.配置编译u-boot A. 解压 u-boot 压缩文件 B. 进入解压生成文件中 C. 执行 make distclean 和 make clean D. make forlinx_nand_ram256_config E. make CROSS_COMPILE=arm-linux- ARCH=arm 其中D. make forlinx_nand_ram256_conf…
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block 企业库日志应用程序模块工作原理图:   从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信息都可以在Category配置文件中反映出来,通过配置文件,调用LogWriter类的Writer方法,就可以将包含日志信息的LogEntry实体写入…