zynq QSPI啟動配置與分割槽配置
1、需要準備的檔案uImage,devicetree,BOOT.BIN(包含了fsbl以及uboot),uramdisk.image.gz,FPGA程式design.bin(注意不是bit)
2、其中裝置樹中進行的更改為在zynq-zed.dts中新增如下節點,其中compatible = "s25fl256s1";這是因為zedboard用的flash型號為S25FL256SAGMFI00,可以在原理圖中看到,而在st_spi_fsm.c中有s25fl256s0和s25fl256s1兩個選擇,兩者同樣為256Mb,區別為扇區大小一個為 256 * 1024另一個為64 * 1024。那麼到底選哪個呢,可以在uboot下檢視,可以看到識別到的flash擦除大小為64kB,所以應該選擇s25fl256s1。
Zynq> sf probe
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
&qspi {
u-boot,dm-pre-reloc;
status = "okay";
is-dual = <0>;
num-cs = <1>;
[email protected] {
compatible = "s25fl256s1";
reg = <0x0>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <4>;
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
[email protected] {
label = "qspi-fsbl-uboot";
reg = <0x0 0x100000>;
};
[email protected] {
label = "qspi-linux";
reg = <0x300000 0x400000>;
};
[email protected] {
label = "qspi-device-tree";
reg = <0x700000 0x20000>;
};
[email protected] {
label = "qspi-rootfs";
reg = <0x720000 0x2E0000>;
};
[email protected] {
label = "qspi-bitstream";
reg = <0xa00000 0x400000>;
};
[email protected] {
label = "app";
reg = <0x1000000 0x100000>;
};
};
};
3、其中uboot中進行的更改為uboot/include/configs/zynq-common.h
"qspiboot=echo Copying Linux from QSPI flash to RAM... && " \
"sf probe 0 50000000 0 && " \
"sf read 0x800000 0xA00000 0x400000 && " \
"fpga load 0 0x800000 0x400000 &&" \
"sf read ${kernel_load_address} 0x300000 ${kernel_size} && " \
"sf read ${devicetree_load_address} 0x700000 ${devicetree_size} && " \
"echo Copying ramdisk... && " \
"sf read ${ramdisk_load_address} 0x720000 ${ramdisk_size} && " \
"bootm ${kernel_load_address} ${ramdisk_load_address}
${devicetree_load_address}\0" \
4、注意裝置樹地址範圍與uboot中的地址範圍要一致,而且要與5中燒寫的地址範圍匹配,然後編譯即可。
5、首先使用SD卡啟動,進入u-boot命令列,利用tftp伺服器進行燒寫。
tftpboot 0x800000 BOOT.bin && sf probe 0 0 0 && sf erase 0x0 0x100000 && sf write 0x800000 0x0 0x100000
tftpboot 0x800000 uImage && sf erase 0x300000 0x400000 && sf write 0x800000 0x300000 0x400000
tftpboot 0x800000 zynq-zed.dtb && sf erase 0x700000 0x20000 && sf write 0x800000 0x700000 0x20000
tftpboot 0x800000 uramdisk.image.gz && sf erase 0x720000 0x2e0000 && sf write 0x800000 0x720000 0x2e0000
tftpboot 0x800000 design.bin && sf erase 0xA00000 0x400000 && sf write 0x800000 0xA00000 0x400000
6、燒寫成功後從spi啟動,可以在dev下看到mtdblock0-5,也可以通過cat /proc/mtd檢視
zynq> cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00010000 "qspi-fsbl-uboot"
mtd1: 00400000 00010000 "qspi-linux"
mtd2: 00020000 00010000 "qspi-device-tree"
mtd3: 002e0000 00010000 "qspi-rootfs"
mtd4: 00400000 00010000 "qspi-bitstream"
mtd5: 00100000 00010000 "app"
7、可以看到6中有一個app分割槽,這個是我用來存放應用程式。當然以上分割槽大小並不是固定的,可以調節,但是地址範圍一定要匹配,而且分割槽大小也一定要大於此分割槽所存檔案的大小,比如核心大小一定不能超過mtd1分割槽大小,如果超過了,可以裁剪核心,要不就得增加分割槽大小。
相關推薦
zynq QSPI啟動配置與分割槽配置
1、需要準備的檔案uImage,devicetree,BOOT.BIN(包含了fsbl以及uboot),uramdisk.image.gz,FPGA程式design.bin(注意不是bit) 2、其中裝置樹中進行的更改為在zynq-zed.dts中新增如下節點,其中comp
SpringBoot + mybatis預設配置與手動配置步驟對比一(預設配置)
前提環境已經搭建完成 Eclipse + SpringBoot + mybatis預設配置: 1.建立工程 File->new->other->Spring Boot -> Spring Starter Project ->選擇jdk等資訊
ImageLoader圖片快取之簡單配置與詳細配置
ImageLoader依賴 implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 1.簡單配置 public class App extends Applicati
Zookeeper學習筆記十二之 網路配置與叢集配置
網路配置 這些配置引數可以限制伺服器和客戶端之間的通訊 zookeeper.globalOutstandingLimit: ZooKeeper中待處理請求的最大值,ZooKeeper客戶端提交請求比ZooKeeper伺服器處理請求要快很多,服務端將會對接收到的請求佇列化
php-fpm使用sock配置與nginx配置sock連線
大部分預設的nginx連線方式為php-fpm監聽127.0.0.1:9000的方式,其實php-fpm還有一種socket連線配置,相比預設的速度更好(基於記憶體載入) location ~ .*\.(php|php5)?$ { fastcgi_pass unix:/dev/shm/php-fpm.s
spring事務 xml配置與註解配置 順序
最近在開發中遇到一些問題,在配置xml事務後,又在具體service方法中配置註解,結果註解並不執行。 按我原來的理解是配置xml的目的是為了具體程式碼的簡潔,和大體的統一。而具體的方法如果有特殊的要求,應該執行配置註解。 但是我的理解並不太對。於是我做了一
Go語言之高級篇beego框架之參數配置與路由配置
路由配置 解析 sql false 展示 func control prot hello 一、參數配置 beego默認會解析當前應用下的conf/app.conf文件 1.1、beego的參數配置 appname = WEB httpport = 8080 r
zynq QSPI啟動速度優化
發現zynq從QSPI啟動時速度很慢。更改uboot的zynq_common.h "qspiboot=echo Copying Linux from QSPI flash to RAM... && " \ "sf probe 0 50000000
Linux下NFS配置與tftp配置
1. NFS配置 vi /etc/export 加入所需要共享目錄。例如: /home/liukang/workship 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check) 修改完畢後,執行 #exportfs
Spring的註解配置與XML配置之間的比較
註釋配置相對於 XML 配置具有很多的優勢: 它可以充分利用 Java 的反射機制獲取類結構資訊,這些資訊可以有效減少配置的工作。 如:使用 JPA 註釋配置 ORM 對映時,我們就不需要指定 PO 的屬性名、型別等資訊,如果關係表字段和 PO 屬性名、型別都一致,
網狐榮耀版房卡遊戲的添加房間的配置與啟動
出現問題 遊戲 處理 出現 模塊 榮耀 啟動 組件 開啟 網狐榮耀版房卡遊戲的添加也是有一定的流程和註意事項的,如果有沒處理好的地方,將造成遊戲的不啟動,退出,閃退,進不了遊戲,卡頓,沒有房卡房間等一系列問題。 一、確保遊戲模塊為真正的房卡版的,有很多網友找我,說沒有房卡房
postgresql在linux下的的開機自啟動服務與環境變量的配置
gpo 屬性 腳本 命令 strong 修改 post 方式 ebo 設置PostgreSQL開機自啟動 PostgreSQL的開機自啟動腳本位於PostgreSQL源碼目錄的contrib/start-scripts路徑下 linux文件即為linux系統上的啟動腳本
gunicorn 訪問日誌配置與項目啟動
com iso base gunicorn conn ESS aps pre .py gunicorn_config.py 文件的使用案例 # coding=utf-8 import sys import os import multiprocessing path_
Tomcat安裝環境配置與自啟動
str strong tex 電腦 jdk環境配置 href 計算機 bsp 提示符 1. Jdk下載 1)下載連接 http://www.oracle.com/technetwork/java/javase/downloads/index.html 然後傻瓜安裝
Libgdx Developer's Guide(Libgdx開發者手冊)-6(啟動類與配置)
對於每個平臺,必須寫一個啟動類。該類例項化一個特定後臺的Application實現和實現了應用邏輯的ApplicationListener。該啟動類依賴於平臺,讓我們看看怎樣為每個後臺例項化和配置一個啟動類。 該篇假定你已經完成了Project Setup中的說明並將生成的核心,桌面,Andr
Spring Boot 使用外接的 Servlet 容器 -- 專案打War包和外部Tomcat配置與專案啟動
嵌入式 & 外接 Servlet 容器的優缺點; 嵌入式 Servlet 容器: 優點:簡單,便攜; 缺點:預設不支援 JSP、優化定製複雜(使用定製器【ServerProperties,自定義定製器EmbeddedServletContainerCus
mysql免安裝版服務的配置與啟動
對於免安裝版的mysql,mysql服務需要配置並啟動 1.首先,下載zip格式的mysql後,將其解壓到某一個盤下,如D盤下 2.解壓後,一般在解壓後的資料夾中有my-default.ini檔案,沒有my.ini檔案 3.新建一個my.ini檔案,內容可如下, =====
專案打War包和外部Tomcat配置與專案啟動原理
SpringBoot應用預設以Jar包方式並且使用內建Servlet容器(預設Tomcat),該種方式雖然簡單但是預設不支援JSP並且優化容器比較複雜。故而我們可以使用習慣的外接Tomcat方式並將專案打War包。 【1】建立專案並打War包 ① 同樣使
MYSQL配置與啟動(一)
啟動服務 net start mysql (windows) 關閉服務 net stop mysql (windows) 配置檔案my.ini [client]
Docker 啟動單個Redis節點與設定配置檔案
記錄下Docker啟動Redis和設定配置檔案的過程 docker命令 docker run -d -p 6379:6379 -v $('pwd')/redis.conf:$('pwd')/redis.conf -v /root/Desktop/RedisData:/Data --n