Upload
kato-blanchard
View
179
Download
0
Embed Size (px)
DESCRIPTION
实验一:构建基于 SoCLib 的单核 SoC. 王 洁、袁子超. 单核 SoC 硬件平台. 地址空间分配( Memory Table ). ADDRESS SPACE SEGMENTATION ( ./HW/ segmentation.h ):. 地址空间分配( Memory Table ). 代码定义( ./HW/top.cpp ):. Memory Table:. SoC 启动 过程 (有 bootloader ). 执行流程. 输入程序及数据存放. 放入了 MEMORY 中. 存放方法实现代码( ./HW/top.cpp ):. 运行结果. - PowerPoint PPT Presentation
Citation preview
实验一:构建基于 SoCLib的单核 SoC
王洁、袁子超
单核 SoC 硬件平台
Generic Micronetwork
TEXT
DATA
STACK
CPU CORE
ICACHE DCACHE
VCI_TTY
MEMORY
MIPS R3000A
IT0
VCI_TIMER VCI_FDACCESS VCI_FRAMEBUFFER
VCI_LOCKS
IT1 IT2
地址空间分配( Memory Table )ADDRESS SPACE SEGMENTATION ( ./HW/segmentation.h ):
地址空间分配( Memory Table )代码定义( ./HW/top.cpp ):
Name Address
cache0 0
reset|excep|text|data 1
tty 2
semlocks_seg 3
timer 4
fd_access 5
frame_buffer 6
Memory Table:
SoC 启动过程(有 bootloader )
执行流程
输入程序及数据存放放入了 MEMORY 中
存放方法实现代码( ./HW/top.cpp ):
运行结果存放在帧缓存( VCI_FRAMEBUFFER:0xC4000000 )中
代码实现( ./SW/mjpeg_seq/sources/dispatch.c ):
性能评估:运行代码所用时间统计
代码实现( ./SW/mjpeg_seq/sources/dispatch.c ): 调用:
单核 SoC 实验步骤• 实验平台搭建安装
• 修改示例源代码
• 分别编译 HW 和 SW 部分
• 运行示例获得结果
修改源代码• 按照指导步骤依次修改一下文件:• HW• top.cpp• segmentation.h• platfor_desc
• SW• fetch.h• dispath.c• mips
源代码问题
• 问题一:• 在添加 Signals 部分,对 fd_access 中操作:soclib::caba::VciSignals<vci_param>signal_vci_fd_access("signal_vci_fd_access";
改为soclib::caba::VciSignals<vci_param>signal_vci_fd_access("signal_vci_fd_access");
问题二
问题二解决办法:• 修改 HW 中的 segmentation.h
• 将 #define DATA_BASE 0xE0000000• 修改为 #define DATA_BASE 0x20000000
• 修改 “ /SW/mjpeg_seq/ldscripts/mips”• 将 .sdata 0xE0000000 : { *(.sdata*) *(.scommon*) } > data :data• 修改为 .sdata 0x20000000 : { *(.sdata*) *(.scommon*) } > data :data
实验运行结果: