vivado SPI bootloader引导程序创建_spi引导-程序员宅基地

技术标签: FPGA  

引言

一般而言,Xilinx Microblaze会被用来在系统中做一些控制类和简单接口的辅助性工作,比如运行IIC、SPI、UART之类的低速接口驱动,对FPGA逻辑功能模块初始化配置及做些辅助计算等等。类程序的代码量普遍不大,常常在十几KB到几时KB之间,因此对存储的需求通常也不是太高,使用FPGA内部RAM资源便已经够用。那么,当Microblaze需要运行文件系统、USBHCD、网络协议栈甚至是操作系统时,代码量可能会高达几MB甚至是几十MB的规模,此时程序就必须在外部存储器运行了,这就需要一个小的初始化程序,将程序搬移到外设中,然后启动主程序,这个程序就是bootloader;

Microblaze Bootloader

Microblaze的工作原理和所有的通用处理器一样。我们一般情况下会将.elf代码、FPGA bit文件和.imm RAM初始化文件合成一个download.bit文件烧写到外部Flash中去。这里.elf的可执行代码就变成了FPGA Block RAM的初始化值,复位释放后即可执行,在有限空间的BlockRAM里面执行一小段代码,负责初始化必要的外设并将Flash里面的其他代码搬运到外部存储器中执行。这种原理和所有的通用处理器是类似的,这里的Block RAM就相当于是ARM之类通用处理器的片上RAM(OCM)资源,执行的这一小段代码就相当于第一季BootLoader(FSBL)。

硬件搭建

·原理图:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/rainly_1352114/article/details/102721954

智能推荐

DNS欺骗实验-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏12次。用Kali进行DNS欺骗实验,大家多多指教。_dns欺骗实验

Unity3D获取Andorid设备返回键,主页键等功能-程序员宅基地

文章浏览阅读231次。在Unity开发中捕捉Android的常用事件其实很简单在新建的脚本文件中就加入:比如:// 返回键if ( Application.platform == RuntimePlatform.Android &&(Input.GetKeyDown(KeyCode.Escape))){//....}// Home键if ..._unity3d获取后退键

VS2022安装.Net Framework4.0方法_vs2022 .net4.0-程序员宅基地

文章浏览阅读2.8w次,点赞17次,收藏62次。VS2022安装.NetFramework4.0方法1. 官方说明vs2022vs2022不在支持.net framework4.0 、 .net framework4.5、.net framework4.5.1、.net framework4.5.2目标包。VS目前支持的运行环境如下:https://dotnet.microsoft.com/zh-cn/download/dotnet-frameworkVS2019vs2019 支持.net framework4.0 、 ._vs2022 .net4.0

谈谈Android中的persistent属性_android:persistent="true-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏4次。Android中的persistent属性_android:persistent="true

Mybatis逆向工程相关代码生成步骤(绝对好用)_mybatis逆向工程生成代码-程序员宅基地

文章浏览阅读596次。逆向工程的生成如官方给出的方法,有四种:①用Ant②用maven③用java④用Eclipse逆向工程官方学习文档链接地址:http://www.mybatis.org/generator/running/runningWithJava.html博主使用的是java Project项目生成它,接下来我们一起来创建逆向工程项目。①首先创建一个简单的java Project项目..._mybatis逆向工程生成代码

支持c11标准的c语言编译器,如何使用CMake检测编译器的C ++ 11支持-程序员宅基地

文章浏览阅读405次。如果您具有CMake 3.1.0或更高版本,则可以检测C ++编译器支持的C ++功能cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)project(foobar CXX)message("Your C++ compiler supports these C++ features:")foreach(i ${CMAKE_CXX_COMPILE_FE..._cmake_cxx_compile_features-

随便推点

基于JAVA家电售后管理系统计算机毕业设计源码+数据库+lw文档+系统+部署-程序员宅基地

文章浏览阅读163次。基于JAVA家电售后管理系统计算机毕业设计源码+数据库+lw文档+系统+部署。JSP企业客户服务与产品管理系统的设计和实现SQLServer。ssm基于uniapp+Vue框架的《露营》App开发与实现。springboot基于springboot的家居销售网站。springboot基于springboot的仓库管理系统。ssm基于大数据在线考试系统在线阅卷系统及大数据统计分析。ssm基于JAVA的求职招聘网站的设计与实现。ssm基于javaweb的家庭财务管理系统。

分类模型训练pil、torchvision.transforms和opencv的resize_opencv 复现 torchvision resize-程序员宅基地

文章浏览阅读745次。因为transforms.Resize当输入为PIL图像时,默认使用的PIL的resize进行处理,除了默认的双线性插值,还会进行antialiasing。参考:https://blog.csdn.net/weixin_41012399/article/details/126049885。PyTorch 中的 torchvision.transforms.Resize 就是采用的 PIL 的 resize。部署的时候使用opcv的resize处理,发现不一致,最好在训练的时候统一用opencv处理图片。_opencv 复现 torchvision resize

PHP与MYSQL事务处理_php a系统处理b系统事务-程序员宅基地

文章浏览阅读253次。/*MYSQL的事务处理主要有两种方法。1、用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认2、直接用set来改变mysql的自动提交模式MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过set autocommit=0 禁止自动提交set autocomm_php a系统处理b系统事务

MNIST数据集学习_mnist_64-程序员宅基地

文章浏览阅读1.5k次。第一章提到,最常见的监督式学习任务包括回归任务(预测值)和分类任务(预测类)。第二章探讨了一个回归任务–预测住房价格,用到了线性回归、决策树以及随机森林等各种算法(我们会在后续章节中进一步讲解这些算法)。本章中我们会把注意力转向分类系统。MNIST数据介绍:本章使用MNIST数据集,这是一组由美国高中生和人口调查局员工手写的70000个数字的图片。每张图像都用其代表的数字标记。这个数据集被..._mnist_64

macos无法使用sudo_如何在macOS上使用Touch ID运行Sudo命令-程序员宅基地

文章浏览阅读1.1k次。macos无法使用sudoTyping passwords is for suckers, which is why the best part of the latest MacBook Pro is Touch ID. Skipping the lock screen with a quick tap is easily my favorite feature. But there’s one..._macos sudo: unable to initialize pam

Linux下apache日志(按日期存放)分析与状态查看方法_apache的error.log在哪-程序员宅基地

文章浏览阅读1.4k次。一、apache日志按日期记录在apache的配置文件中找到:apache2/conf/httpd.confErrorLog logs/error_logCustomLog logs/access_log commonLinux系统配置方法将上面的代码修成:ErrorLog “| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_error_log 86400 480″CustomLog “| /usr/local/a_apache的error.log在哪

推荐文章

热门文章

相关标签