U-Boot

迅为4412开发板入门准备

[亡魂溺海] 提交于 2021-02-19 11:00:31
一、硬件连接 4412开发板的HDMI口,小HDMI口输出HDMI信号,大HDMI口用来连接各种屏(只是用了HMDI的线,并不是标准的HDMI)。 二、安装超级终端 首先需要安装USB转串口,可以是CH340驱动,或者是 PL2303驱动。 连接硬件时也要注意,精英版的调试串口是串口2。连接串口1没有信号。 然后安装hyperterminal(超级终端v2.4.8)。设置的波特率为115200 三、拨码开关的使用 开关拨到外侧是1,里面是0 进入uboot:开机启动时,读秒时输入任一值。就能进入uboot模式。 设置PC机和开发板以太网的例子: 1)设置PC主机的IPv4地址 2)设置开发板的ip地址在同一网段 3)ping一下测试 四、虚拟机和ubuntu 安装wmware,10的版本支持64位,把下载的镜像导入wmware中。 sudo passwd ubuntu中安装ssh。 ubuntu扩展内存 五、常用的软件 source insight 用来看代码 beyond compare 4对比分析 notepad++ 记事本 六、adb功能 adb是android的调试工具,安装好后,就可以用开发板USB连接电脑了。 然后下载USB_fastboot_tool工具。 七、4412开发板镜像烧录 硬件版本分为SCP1G、SCP2G、POP1G,分别对应不同的镜像文件

mtk-preloader代码分析

末鹿安然 提交于 2021-02-17 02:15:43
这里简单介绍了preloader的启动流程,ATF的实现部分可参考https://blog.csdn.net/chenying126/article/details/78638944 1.链接器脚本link_descriptor.ld定义了preloader的入口函数 OUTPUT_ARCH(arm) ENTRY(_start) 2.init.S定义了_start,并跳转到main执行 .globl _start _start: b resethandler /* * 设置svc32模式 * 禁止中断fiq&irq * clear BSS * setup stack * 跳转main执行 */ ...... entry : LDR r0, = bldr_args_addr   B main 3.main函数,截取了部分代码 void main(u32 * arg) { /* get the bldr argument */ p_bldr_param = & bldr_param; //_start函数中将bldr_args_addr作为参数传给main,这里为0 memcpy(( void *) p_bldr_param,( void *) *arg, sizeof (bl_param_t)); //必要的硬件初始化 mtk_uart_init(UART_SRC_CLK_FRQ,

-03-PetaLinux通过eMMC方式启动【Xilinx-Petalinux学习】

吃可爱长大的小学妹 提交于 2021-02-14 18:56:37
前面说的我的硬件上有一颗eMMC的芯片,型号是MTFC4GACAJCN-4M IT,有4GB的容量。 BOOT.bin的文件较小,只有不到3MB,但是image.ub的文件根据不同的需求,将来可能会越来越大,将它们都放在16MB的QSPI Flash上有点危险,而且下载起来也不太方便。 所以准备将u-boot和kernel的存储位置分开,将包含u-boot的BOOT.bin烧录在QSPI Flash当中,将image.ub文件直接放在eMMC中进行启动。 step1:eMMC存储空间分区 参考文档网址:http://zedboard.org/sites/default/files/design/PicoZed_Petalinux_2015_2_eMMC_boot_v3.0_0.zip 前面我配置的方式是BOOT.bin和image.ub都在QSPI Flash当中,这样我才能正常启动Linux,来给eMMC提前进行分区。 因为我的板子上没有SD卡,所以禁用了PS的SD0外设,最终我的eMMC芯片挂载到了mmcblk0上。(假如既有SD卡<SD0>又有eMMC<SD1>,一般情况下SD卡会是mmcblk0,eMMC会是mmcblk1) 启动板子,输入用户名密码后,进行分区。按照手册上的说明,分一个128MB的分区出来,并格式化成FAT32. 下面是我的分区和格式化过程: root

三者互ping,PC,虚拟机,uboot,nfs网络文件系统搭建

隐身守侯 提交于 2021-02-12 07:19:10
要想实现三者互ping,韦老师虽然专门出了视频说明,但是在自己配置过程还是出现了问题,这里记录一下解决办法,虽然我也不知道原因,但是解决了出现的问题也实现了三者互ping。 首先,我的硬件设备是PC通过无线连接wifi路由器,单板通过网线直接和电脑连接。 要实现互相ping,需要把PC主机上的两个网卡设置成不同的网段,比如这里我的无线网卡,和有线网卡分配如下: 可以看到网段是不同的,这样之后,使用新版本的uboot,上电就会使能网卡, 现在还要做一件事,要实现三者互ping,必须让三者处于同一网段。 注意,你可能发现上面两个网卡要处于不同网段,这里三者又要处于同一网段,是不是有点混淆。 这里做出说明: 上面的两个网卡,必须要处于不同网段,是针对于一个PC主机(Windows)的无线网卡和有线网卡而言的,比如我此时电脑上的: 三者互ping:在我上面所说的链接方式下,三者指的是,开发板,虚拟机,PC上的有线网卡。 所以,在虚拟机设置上,桥接的时候,选择网卡一定要选择PC机上的有线网卡,如下图: 这样设置之后,需要使这三者位于同一网段。 但是,问题就来了,选择这样桥接的网卡之后,我进入虚拟机内部,虚拟机不能自动识别出网络,表现形式就是ifconfig没有ip地址: 在这样的模式下,哪怕我强行设置ip,系统会报错,说 Network is unreachable 这样一来

Yocto u-boot Custom Commands

*爱你&永不变心* 提交于 2021-02-10 19:56:52
问题 What is the correct way of adding custom commands to u-boot in a Yocto setup (currently using Petalinux 2016.4 by Xilinx)? Should I add the relevant source files to the u-boot source through a recipe/patch, to be included in the compilation of u-boot? Is there a better way to do this during development to get a faster turn around. In what folder should the code be placed - under u-boot/board or added to u-boot/commands? Thanks 回答1: IMHO you have two options for adding the additional

华为天才少年——稚晖君!

不打扰是莪最后的温柔 提交于 2021-02-10 18:26:18
摘要 :不管是做嵌入式的还是计算机的,稚晖君大家肯定都知道,如果你还不知道,那就去百度一下吧!稚晖君应该是每一个电子爱好者所向往但是又渴望而不可及的大佬。稚晖君2018年毕业于电子科技大学,之后进入OPPO算法岗工作,目前已经是华为AI架构师的稚晖君,本硕就读于电子科技大学。一位对作品追求极致的UP主。他热爱硬件开发,在期间一直更新着硬件DIY视频,受到众多网友追捧。今天就介绍一下"B站硬核UP主、“栈溢出”工程师稚晖君。 现在的稚晖君,已经加入了“ 华为天才少年计划 ”。 任正非在提出这项计划时说: “ 今年我们将从全世界招进20-30名天才少年,明年我们还想从世界范围招进200-300名。这些天才少年就像‘泥鳅’一样,钻活我们的组织,激活我们的队伍。 ” 华为天才计划对申请者具有很高的要求:国际顶刊论文发表数量及引用量丰富者;研究方向有出色及丰富的商业化成果;有知名赛事名次者优先。天才少年”的招聘流程非常严格,一般需要经历7轮左右流程,最终还要通过华为总裁的面试。通过该计划招入华为的“天才”们,年薪100万起步。能够加入“华为天才少年计划”,也是他自身实力的一种证明。 下面就来看看稚晖君的几个非常硬核的作品吧!以下就从B站播放量最高的几个作品开始说起。 B站最强小电视 全网最mini的Linux电脑 所涉及到的知识:电子基础,电子元器件选型,电路原理图设计,高速电路PCB设计

Mfgtools工具单独烧写镜像-迅为IMX6开发板设备树安卓6.0.1系统

不想你离开。 提交于 2021-02-04 14:01:04
打开设备树版本烧写工具目录“android_m6.0.1_2.0.0_ga_tool_20190725”,修改 cfg.ini,如下图 打开文件“android_m6.0.1_2.0.0_ga_tool_20190725\mfgtools\Profiles\Linux\OS Firmware\ucl2.xml”,搜索“Android-SabreSD-eMMC”, 68.4.1 烧写 boot-topeet_xxx.img 注释掉 uboot,system,recovery 等不需要的操作,只留下分区操作表和烧写 boot-topeet_xxx.img 操作表,修改成如下图: 68.4.2 烧写 system.img 保留创建分区操作列表和烧写 system.img 操作列表,注释掉 u-boot,boot.img,recovery.img 操作列表。 单独烧写 recovery.img 也可采用相同的方法,不再重复说明。 来源: oschina 链接: https://my.oschina.net/u/3005926/blog/4945112

Linux 的启动流程

╄→гoц情女王★ 提交于 2021-02-02 06:11:58
本篇的重点是讲解设备和驱动的启动流程,设备和驱动的流程是整个内核启动的核心,也是工作中最常面对的问题。出于知识点的系统性考虑,在进入主题之前我们先看下整个 Linux 在 ARM 中的启动流程如何。 Uboot 的启动流程 ARM Linux 的启动流程大致为:Uboot → Kernel → Root filesystem。Uboot 在上电的时候就拿到 CPU 的控制权,实现了硬件的初始化。具体是怎么实现的呢?一起来看一下,CPU 的内部集成了小容量的 Sram,而 PC 指针一上电就指向 Sram 的起始地址 0x00000000,所以一上电 Uboot 代码就得到了运行。 Uboot 拿到 CPU 使用权就开始做初始化工作,比如关闭看门狗、设置 CPU 运行模式、设置堆栈、初始化内存、网卡、nand flash 等,最后把 Linux 内核加载到内存中。 初始化 RAM 因为内核要在 RAM 中运行,所以在调用内核之前必须初始化和设置 RAM,为调用内核做好准备。 初始化串口 内核在启动过程中可以将信息通过串口输出,这样就可以清楚的知道内核启动信息。虽然串口不是 Uboot 必须要完成的工作,但是通过串口可以方便调试 Uboot 和内核的各种信息。 检测处理器类型 Uboot 在调用内核前需要检测系统的处理器类型,并将其保存在某个变量中提供给内核

三、固件分析-固件提取

寵の児 提交于 2021-01-24 07:56:48
  上节初步介绍一些硬件基础知识和分析硬件所需要的基本工具,本篇将讲述利用编程器直接读取芯片固件的方法。 为了读取 Flash 芯片的内容,有以下两种常用方式: 1、直接将导线连接到芯片的引脚,在通过飞线连接编程器,进行在线读取固件; 2、把芯片拆焊下来,通过烧录座编程器,离线读取固件。 飞线法读取 通过夹具夹住芯片引脚,然后连接编程器读取芯片内容,通过编程器连接芯片需要注意引脚的顺序,在 IC 芯片上都会有一个小点,大多数情况下,小点对应的引脚即为芯片的第一脚,而连接编程器的导线也需要插入编程器上相应的引脚。 案例一:读取中控 F7 门禁固件 拆掉门禁外壳,通过电路图和芯片印字分析,在主板上有一颗 FM25F04A 存储芯片,通过夹具连接芯片到编程器,在通过专用编程器软件,对该芯片进行读取。 连接完成,确定引脚接线正确后,打开编程器对应软件,通过智能识别芯片ID,即可开始读取固件工作。 如无法识别,可根据印字说明,尝试类似的型号,一般情况下兼容。 点击读取,即可开始固件提取,成功之后会保存为 BIN 格式文件,打开即可看到 16 进制的内容,为下一步分析提供基础。 案例二:读取某智能摄像头固件 拆掉摄像头外壳,通过分析 PCB 上的各个 IC,找到 Flash 存储芯片。 在显微镜下,可以看到是一颗 25L64 型号的 Flash 芯片。 用夹具连接各引脚,并和编程器连接

嵌入式linux系统开发教程

我是研究僧i 提交于 2021-01-21 09:31:41
在学习嵌入式开发的过程中,尤其是开始入门时,包括各种各样的教程,都是在讲学习linux,很少讲如何利用linux来开发属于自己的嵌入式项目,也就是没有一个全局的概念,简单理解,大概流程如下: 一、建立开发环境 操作系统当然是LInux,或者在win系统下安装虚拟机,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的交叉编译器。 这一步,就相当于在win系统下,要安装一个IDE开发环境,如MDK,IAR等。 二、配置开发主机 主要是配置minicom,也就是串口助手,minicom软件是作为调试嵌入式开发板信息输出的监视器和键盘输入工具,是一个非常方便的工具,我们开发其他嵌入式程序时,其实很多时候也采用串口调试,所以最终原理都是相通的。 配置网络,主要是配置NFS网络文件系统,这个主要是用于下载程序,当然不配置也可以,有很多别的办法。 三、建立引导装在程序的bootloader 常用的bootloader主要有u-boot、vivi等,貌似主流的就是u-boot,这个根据自己具体的芯片进行移植修改。有些芯片是没有内置引导加载程序的,这就需要编写开发板上的Flash的少些程序,当然也可以用windows下的通过JTAG并口和仿真器少些Flash芯片程序,也有linux下的公开源代码的J-Flash程序,所以在设计自己的硬件时,可以预留多种方式。 简单的讲