2017-05-24 64 views
1

對我的系統有些話。我工作在Xilinx開發板zc706上。 freertos的基本示例正在運行。有可能通過網絡啓動freertos?

現在的問題是:我如何通過網絡啓動應用程序? freertos應用程序是一種裸機方法。 通常會使用像u-boot這樣的加載器,但我發現的例子僅適用於Linux用例。

增加: 隨着XMD安慰它可能在內存中加載的u-boot

XMD% source ps7_init.tcl 
XMD% ps7_init 
XMD% dow u-boot 
Processor started. Type "stop" to stop processor 
Processor Stop Condition Unknown 
Processor Reset .... DONE 
Downloading Program -- u-boot 
    section, .text: 0x04000000-0x040524d7 
    section, efi_runtime_text: 0x040524d8-0x040524fb 
    section, .rodata: 0x04052500-0x040650d1 
    section, .hash: 0x040650d4-0x040650ff 
    section, .dtb.init.rodata: 0x04065100-0x0406866f 
    section, .data: 0x04068670-0x0406b31b 
    section, .got.plt: 0x0406b31c-0x0406b327 
    section, efi_runtime_data: 0x0406b328-0x0406b3ff 
    section, .u_boot_list: 0x0406b400-0x0406c71f 
    section, .rel.dyn: 0x0406c720-0x04077d5f 
    section, .bss: 0x0406c720-0x040ad29f 
Download Progress..10.20.30.40.50.60.70.80.90.Done 
Setting PC with Program Start Address 0x04000000 
XMD% run 

RUNNING> 0 
XMD% 

結果與一個COM端口IST看出:

U-Boot 2017.01-00012-g374a838 (May 29 2017 - 17:55:04 +0200) 

Model: Zynq ZC706 Development Board 
Board: Xilinx Zynq 
I2C: ready 
DRAM: ECC disabled 1 GiB 
MMC: [email protected]: 0 (SD) 
SF: Detected s25fl128s_64k with page size 512 Bytes, erase size 128 KiB, total 32 MiB 
*** Warning - bad CRC, using default environment 

In: [email protected] 
Out: [email protected] 
Err: [email protected] 
Model: Zynq ZC706 Development Board 
Board: Xilinx Zynq 
Net: ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id 
eth0: [email protected] 
Hit any key to stop autoboot: 0 
Device: [email protected] 
Manufacturer ID: 27 
OEM: 5048 
Name: SD16G 
Tran Speed: 50000000 
Rd Block Len: 512 
SD version 3.0 
High Capacity: Yes 
Capacity: 14.5 GiB 
Bus Width: 4-bit 
Erase Group Size: 512 Bytes 
reading uEnv.txt 
** Unable to read file uEnv.txt ** 
Copying Linux from SD to RAM... 
reading uImage 
** Unable to read file uImage ** 
Zynq> 

增加: 我建立FSBL的標誌FSBL_DEBUG: (項目 - >屬性 - > C/C++編譯 - >設置 - > ARM gcc編譯器 - >符號) 我只用引導加載程序分區構建bin文件,並將其放入o n SD卡: 賽靈思工具 - >創建啓動映像

此外: 問題是,SDK需要一個名爲u-boot.elf的文件。在u-boot構建之後,擴展並不存在。

所以現在我有一個TFTP-我的服務器主機上運行和U-Boot的找到uEnv.txt文件,但該文件中的CMD不運行:

如何我可以設置的u引導一個正確的loadAddress加載freeRTos精靈文件?

的tftpboot的CMD似乎是:

tftpboot [loadAddress] [bootfilename] 
e.g. 
tftpboot 0x80400000 vlm-boards/14726/uImage 

什麼zc706板的加載地址?

增加:

的下載與TFTP服務器似乎工作的連接: 但隨着「走出去」 CMD復位啓動之後發生。

Zynq> setenv ipaddr 192.168.150.101 
Zynq> setenv netmask 255.255.255.0 
Zynq> setenv gatewayip 192.168.150.1 
Zynq> serverip=192.168.150.100 
Zynq> ping 192.168.150.100     
Using [email protected] device 
host 192.168.150.100 is alive 
Zynq> tftpboot 0x8000 FreeRTOS_HelloWorld.elf 
Using [email protected] device 
TFTP from server 192.168.150.100; our IP address is 192.168.150.101 
Filename 'FreeRTOS_HelloWorld.elf'. 
Load address: 0x8000 
Loading: ############### 
     2.8 MiB/s 
done 
Bytes transferred = 205675 (3236b hex) 
Zynq> go 0x8000 
## Starting application at 0x00008000 ... 
undefined instruction 
pc : [<0000fa60>]   lr : [<3ff443c4>] 
reloc pc : [<c40cda60>] lr : [<040023c4>] 
sp : 3eb20cf4 ip : 0000001c  fp : 3ff4437c 
r10: 3eb1f9b0 r9 : 3eb21ee8  r8 : 3ffaef30 
r7 : 00000000 r6 : 00008000  r5 : 00000002 r4 : 3eb2f9b4 
r3 : 00008000 r2 : 3eb2f9b4  r1 : 3eb2f9b4 r0 : 00001084 
Flags: nZcv IRQs off FIQs off Mode SVC_32 
Resetting CPU ... 

resetting ... 

THX提前

+0

是它在ARM上還是在FPGA上運行?您可以使用Linux啓動的例子,並用freertos映像替換linux映像。 – osgx

+0

起初對ARM – AndreStony

+0

據我瞭解直到現在: 1.創建一個FSBL 2.1下載UBOOT來源 2.2配置爲zc706板 2.3打造的uboot 隨着更換新的Linux映像的UBOOT,其他變化必須爲freertos精靈文件? – AndreStony

回答

0

解決的辦法是: 賽靈思SDK供應作爲輸出的精靈文件,其中U-Boot的理解:

tftpboot 0x000000 FreeRTOS_ZC706_HelloWorld.elf 
bootelf 0x0 

感謝