U-Boot

xilinx zcu106 vcu demo

生来就可爱ヽ(ⅴ<●) 提交于 2020-10-03 06:31:40
board:zcu106 tool: vivado 2019.2 vitis 2019.2 petalinux 2019.2 doc:PG252 UG1209 ref: http://www.zynqnotes.com/a-simple-vcu-design ref: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/176783395/Zynq+UltraScale+MPSoC+VCU+TRD+2019.2 zcu106_hdmitx 想demo一个简单的例子,编解码SD卡上的数据,在PC上验证是否成功 逻辑设计: vivado 2019.2 新建工程(采用zcu106模板) 添加PS:ZYNQ UltraScale+ MPSoC (Run Block Automation),可以将zcu106默认的一些器件都自动配置好,这一步不要忘 添加VCU:ZYNQ UltraScale+ VCU (Run Block Automation) PG252 Ch12 Design Flow Steps (P149)可以大概参考一下,可是照着做好像不行。 VCU有6个AXI接口 S_AXI_LITE:APU主,VCU从,用于APU访问配置VCU寄存器 M_AXI_ENC0,M_AXI_ENC1,M_AXI_DEC0,M_AXI_DEC1

TLZ7x-EasyEVM开发板XC7Z020基于SD卡启动裸机程序

天涯浪子 提交于 2020-10-01 09:37:35
开发环境说明 表 1 开发板型号 是否支持本实验 TLZ7x-EasyEVM 支持 TLZ7xH-EVM 支持 本文以TLZ7x-EasyEVM开发板为例,核心板SoC芯片型号为XC7Z020,演示使用SD卡启动Zynq裸机程序的方法。 基于SD卡启动的裸机程序主要包含两类,一是ARM(PS端)+FPGA(PL端)的All-Programmable-SoC-demos例程,二是纯PS(不依赖PL端)的Baremetal(NoOS)裸机例程。两类裸机程序的运行都需要依赖FSBL的BOOT.BIN文件和U-Boot的u-boot.bin文件引导,主要区别在于Baremetal(NoOS)裸机例程不包含PL端xxx.bin程序。 从S D卡启动 S oC裸机程序说明 分别参照《基于TcL脚本生成Vivado工程及编译》、《基于TcL脚本生成xsdk工程及编译》文档,编译All-Programmable-SoC-demos例程。 将SD存储卡格式化为FAT32格式,或者直接使用SD系统启动卡的boot分区,SD系统启动卡boot分区即为FAT32格式。将PS端的xxx.elf程序和PL端xxx.bin程序复制到SD卡,另外将BOOT.BIN和u-boot.bin两个文件也添加复制到SD卡。 以光盘"All-Programmable-SoC-demos\tl-axi-gpio-led

后ARM时代,嵌入式工程师的自我修养

家住魔仙堡 提交于 2020-08-19 17:41:45
1 嵌入式学习的一些概念理解误区 很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板。买一块开发板,然后在上面“移植”u-boot、Linux内核,再使用busybox制作一个根文件系统,大功告成!觉得可以出去找工作了。这其实是有一定片面性的:首先ARM是个CPU架构,跟PC上的X86架构一样,你见过有人在Windows下面学习C/C++编程、MFC编程、网络编程、互联网编程,说自己学习X86的吗?当然,也不可否认,嵌入式平台的多样性、硬件的可定制性导致我们在嵌入式平台上开发应用程序、驱动之前,首先要搭建这个平台,就像我们在Windows下面要装操作系统一样,但是这仅仅是我们学习嵌入式开发的第一步。 其次,关于系统的“移植”,很多人玩了开发板之后,会在自己的简历上写自己移植过u-boot,Linux内核......其实,这种写法也是有点瑕疵的。真正的移植,往一个新的芯片或开发板上porting一个u-boot或Linux内核,那可不是一个人能干的事情,是一个团队干的事情。时钟、DDR、存储,可能牵涉到各个模块,哪里遇到问题,都需要各个模块的owner去debug,有时候甚至可能是芯片的bug,或者硬件开发板的bug,这就需要我们使用软件去解决、去规避这个坑,这都需要我们在很短时间,甚至一两天的时间去解决这个问题,需要一个团队的各个模块专家合力完成。所以说,我们所说的

移植Linux-5.4+内核到4412开发板

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-18 11:48:58
原文链接: https://blog.csdn.net/Jason_416/article/details/106772698 作者:Jason416 CSDN博客: Jason416就是我 前言 ITOP-4412开发板被Linux官方支持,所以我们在4412上学习新的内核是非常方便的,本文作者是4412精英群8群一位技术高手,接下来,我们一起来欣赏下他的表演。 环境说明 OS版本 Ubuntu 20 LTS 交叉编译环境配置 ~$ sudo apt install gcc-arm-linux-gnueabihf ~$ sudo apt install flex ~$ sudo apt install bison ~$ sudo apt install u-boot-tools 目标开发板 CPU (Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz) RAM (1GB 双通道 DDR3) ROM (8GB EMMC) 其他请见官网链接 开始移植 下载源码 ~$ git clone https://github.com/jason416/linux.gi Note:移植好的源码见博主github仓库的iTop4412分支。 配置内核 2.1 进入内核源码目录 ~/linux-5.4$ ls arch COPYING Documentation

linux内核的配置

我的梦境 提交于 2020-08-18 07:38:39
以2.6.35.7版本的内核为例 总结: .config决定了Make时的条件编译与连接。.config文件由两次配置第一次make XX_defconfig 第二次menuconfig 。 1、分析源码目录下的单个文件 (1)Kbuild,Kbuild是kernel build的意思,就是内核编译的意思。这个文件就是linux内核特有的内核编译体系需要用到的文件。 (2)Makefile,这个是linux内核的总makefile,整个内核工程用这个Makefile来管理的。 (3)mk,是九鼎在移植时自己添加的,不是linux内核本身的东西。九鼎添加这个文件的作用是用这个文件来整天管理kernel目录的配置和编译,也就是说这个文件有点类似于我们之前移植uboot时自己创建的那个cp.sh。 2、linux内核源码目录结构 (1)arch。arch是architecture的缩写,意思是架构。arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在arch/x86目录下。 (2)block。英文是块的意思,在linux中block表示块设备(以块(多个字节组成的整体,类似于扇区)为单位来整体访问),譬如说SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以认为块设备就是存储设备

一文搞懂定制Ubuntu文件系统-基于迅为imx6开发板

六月ゝ 毕业季﹏ 提交于 2020-08-18 05:16:34
解决思路 使用TF卡启动,先在开发板正常运行的 Ubuntu 系统上正常安装软件,安装完软件以后,把TF卡里面的文件系统在Ubuntu上打包。最终在使用mfg或者tf烧写进开发板。 涉及到的知识: 1.TF卡启动。 2.编译Ubuntu文件系统。 3.TF卡烧写。 实验环境 开发环境:Ubuntu14 开发板:迅为imx6q工业级(迅为imx6系列开发板均可) 开发板底板版本:V2.6 开发板Ubuntu镜像:Ubuntu12(Ubuntu16也可以) 工具: 1.一张只有一个FAT32分区的TF卡,大小不超过32G。 2.读卡器一个。 3. imx6开机自动烧写镜像文档。 步骤一 TF卡启动 在 ubuntu 系统下插入 tf 卡,使用命令df -lh可以查看 tf 卡的设备节点以及挂在的目录,如下图所示: 我这里 tf 卡的节点是/dev/sdc1,挂载在 /media/topeet/B93A-B93A 目录(也有可能是 sdc,sdd 之类的,根据实际情况,目录也都不一样)。然后我们使用 umount 命令取消挂载umount /media/topeet/B93A-B93A/,如下图所示: 使用ls /sbin/mkfs*,假如我们的机器中没有/sbin/mkfs.fat”文件,则使用命令ln -s /sbin/mkfs.vfat /sbin/mkfs.fat,有的话

一位合格的嵌入式工程师

∥☆過路亽.° 提交于 2020-08-17 17:55:10
牛逼的工程师是什么样? 1首先是懂各种C语言的技巧:枚举、宏定义函数、函数内静态变量、函数指针、链表。 1.1编程规范、注释规范、代码内文档自动生成。 2文档编写技巧:画流程图、框图、写说明文档。 3一点汇编。 4一点算法:傅里叶、快速傅里叶、矩阵、虚数。 5一点数电:知道操作寄存器、buffer、中断。 6操作系统:内存管理、进程管理、中断管理、启动流程、文件系统、字符驱动、块驱动、uboot、bootfs。 7一点模电:看懂原理图、使用万用表、示波器、逻辑分析仪查找各种问题、使用电烙铁热风枪修复问题。 8一点管理:知道瀑布开发、敏捷开发、项目管理、部门管理。 9架构:死循环、状态机、模块路由。 10通讯协议:UART I2C SPI USB TCP/IP BLUETOOTH CAN ZIGBEE WIFI 4G MPEG2。 11测试:单元测试、黑盒测试、白盒测试、烤机压力测试、高低温老化测试。 12英语:看懂芯片手册、协议文档、芯片官网和论坛。 13调试:使用仿真器:查看内存、寄存器、单步、断点。 13.1查找运行时异常崩溃原因:通过崩溃文件现场恢复、CoreDump、Gdb。 14工具软件:Ubuntu Linux、VMWare虚拟机、Sygwin、Shell/Dash命令行,代码管理Git SVN Gitlab、打tag、分支管理master develop