参考
Zynq上MicroBlaze测试.csdn
嵌入式终端AtShell的精简版.csdn
BD
atshell_microblaze_system7020.tcl
这里axi_uartlite_0波特率是9600
地址映射
| No. | Instance | Interface | Type | Base Address | High Address | Range | Description |
|---|---|---|---|---|---|---|---|
| 1 | microblaze_0/Data | axi_bram_ctrl_0/S_AXI | Mem0 | 0xC000_0000 | 0xC003_FFFF | 256K | AXI BRAM 数据访问空间 |
| 2 | microblaze_0/Data | axi_gpio_0/S_AXI | Reg | 0x4000_0000 | 0x4003_FFFF | 256K | AXI GPIO 寄存器空间 |
| 3 | microblaze_0/Data | axi_uartlite_0/S_AXI | Reg | 0x4060_0000 | 0x4063_FFFF | 256K | AXI UARTLite 寄存器空间 |
| 4 | microblaze_0/Data | microblaze_0_local_memory/dlmb_bram_if_cntlr/SLMB | Mem | 0x0000_0000 | 0x0003_FFFF | 256K | MicroBlaze 数据本地存储器(DLMB BRAM) |
| 5 | microblaze_0/Instruction | axi_bram_ctrl_0/S_AXI | Mem0 | 0xC000_0000 | 0xC003_FFFF | 256K | AXI BRAM 指令访问空间 |
| 6 | microblaze_0/Instruction | microblaze_0_local_memory/ilmb_bram_if_cntlr/SLMB | Mem | 0x0000_0000 | 0x0003_FFFF | 256K | MicroBlaze 指令本地存储器(ILMB BRAM) |
pin.xdc
create_clock-period20.000-nameclk_50MHz[get_ports clk_50MHz]set_property IOSTANDARD LVCMOS33[get_ports clk_50MHz]set_property IOSTANDARD LVCMOS33[get_ports{gpio_rtl_0_tri_io[1]}]set_property IOSTANDARD LVCMOS33[get_ports{gpio_rtl_0_tri_io[0]}]set_property IOSTANDARD LVCMOS33[get_ports reset_0]set_property IOSTANDARD LVCMOS33[get_ports uart_rtl_0_rxd]set_property IOSTANDARD LVCMOS33[get_ports uart_rtl_0_txd]# PL_CLKset_property PACKAGE_PIN U18[get_ports clk_50MHz]# PL_LEDset_property PACKAGE_PIN H15[get_ports{gpio_rtl_0_tri_io[1]}]# PL_KEYset_property PACKAGE_PIN L14[get_ports{gpio_rtl_0_tri_io[0]}]# PL_RESETset_property PACKAGE_PIN N16[get_ports reset_0]# PL_UARTset_property PACKAGE_PIN J15[get_ports uart_rtl_0_txd]set_property PACKAGE_PIN T19[get_ports uart_rtl_0_rxd]vitis裸机
参考
嵌入式终端AtShell的精简版.csdn
修改堆栈
_STACK_SIZE=DEFINED(_STACK_SIZE)? _STACK_SIZE:0x1000;_HEAP_SIZE=DEFINED(_HEAP_SIZE)? _HEAP_SIZE:0x400;查看固件大小
PS D:\workspace\gitee\999\ming_zynq_wave_prj\vivado_prj_v2\vitis\hello\Debug>&"D:\Xilinx\Vitis\2020.2\gnu\microblaze\nt\bin\mb-size.exe"-Ahello.elf hello.elf:section size addr .vectors.reset80.vectors.sw_exception88.vectors.interrupt816.vectors.hw_exception832.text9478080.init6094860.fini3294920.ctors1294952.dtors894964.rodata364094972.sdata2498612.data165698616.sdata0100272.sbss0100272.bss452100272.heap1028100724.stack4096101752.debug_line148290.debug_info312180.debug_abbrev68880.debug_aranges9200.debug_str751890.debug_ranges3760.debug_frame15960.debug_macro157120.debug_loc7950Total253323| Section | 大小(Byte) | 作用 | 是否占运行内存 |
|---|---|---|---|
| .vectors.* | 32 | 中断向量 | ✔ |
| .text | 94780 | 代码 | ✔ |
| .init/.fini | 92 | 初始化/退出代码 | ✔ |
| .ctors/.dtors | 20 | C++构造析构 | ✔ |
| .rodata | 3640 | const数据、字符串 | ✔ |
| .sdata2 | 4 | 小只读数据 | ✔ |
| .data | 1656 | 已初始化全局变量 | ✔ |
| .bss | 452 | 未初始化全局变量 | ✔(运行时占) |
| .heap | 1028 | 堆 | ✔(预留) |
| .stack | 4096 | 栈 | ✔(预留) |
| .debug_* | 147523 | 调试信息 | ✘(不会下载到板子) |
查看最终占用ROM的大小
105800 /1024=103KB
PS D:\workspace\gitee\999\ming_zynq_wave_prj\vivado_prj_v2\vitis\hello\Debug>&"D:\Xilinx\Vitis\2020.2\gnu\microblaze\nt\bin\mb-size.exe"hello.elf text data bss dec hex filename985441676558010580019d48 hello.elf固化
Vivadado-> Tools -> Associate ELF
测试
[14:47:25.863]收←◆\|/ - AT_SHELL - Jul292026/|\[15:04:38.279]发→◇155□[15:04:38.319]收←◆hello test_01 argc=2argv[[15:04:38.349]收←◆0]="1"argv[1]="55"