基于LEON开源软核的SoC平台构建与测试
时间:09-15
来源:互联网
点击:
1.3 Linux系统的移植和调试
近年来Linux凭借其开源、性能优异、软件资源丰富的优势,在嵌入式平台上得到了广泛的应用。在LEON上运行的操作系统目前已经有RTEMS、eCOS、VxWorks和嵌入式Linux。选择嵌入式Linux的主要原因,是由于Linux的开发平台搭建得比较完善,在工具链、内核移植、驱动程序以及应用程序的各层上都有很好的支持;使用Linux开发能够大大加快开发的进度,并满足多数应用的指标。目前,对LEON提供良好支持的Linux发行版有Snapgear。由于LEON软核优异的可配置性和可移植性,在LEON上进行Linux的移植工作与普通定制的嵌入式微处理器相比,有很多特殊点和难点,主要表现在两个方面。
(1)配置和编译内核
编译内核的目的在于,生成在目标CPU上运行的内核。由于LEON自身硬件的可配置性,Linux的源代码中也需要加入与硬件核相关的选项进行配置。若LEON软核配置IP,例如硬件加速单元、加密单元或外设接口,则Linux内核中需加入驱动程序。因此,内核的配置分为两类,一类是配置LEON软核自身的设置,另一类是配置目标板上的其他外围设备,例如内存系统、外设接口等。与一般的定制嵌入式CPU(如ARM体系的CPU)相比,前一类配置是LEON独有的。这种配置的灵活性为软硬件平台的定制提供了极大的方便。例如,Snapgear Embedded Linux根据具体需求配置硬件乘除法指令和浮点运算单元FPU;在不需要进行浮点运算的应用中,配置LEON硬件就不需配置浮点单元,相应Linux的配置中取消FPU,进而节省硬件资源和软件的开销。
项目中实际采取的LEON软核配置方案为:LEON核选择LEON2MMU或LEON3MMU,时钟频率为50MHz,配置硬件整数乘除法指令和FPU对应的浮点操作指令。外围设备配置的串口的起始波特率为38 400 bps,另外,还配置了只读存储区ROM和随机存取器RAM。
(2)调试内核
LEON软核平台调试工具有:TSIM、GRSIM和GRMON。
TSIM:SPARC架构处理器通用软件仿真器,用于软件仿真ERC32-和LEON微处理器。
GRSIM:LEON平台软件仿真器,支持多处理器平台(MP)。
GRMON:LEON平台硬件仿真调试器,支持基于GRLIB软核IP的SoC设计的硬件调试。
TSIM作为软件模拟的VHDL模型,调试过程中常见的启动选项设置如下:
-freq:设置TSIM模拟LEON处理器硬件的工作频率,LEON3默认为50 MHz。
-fpm:配置模拟FPU模块。
-nfp:针对无FPU的模拟硬件平台关闭FPU。
-nov8:针对无硬件乘除法硬件平台关闭硬件乘除法指令。
-pr:指定使用性能观察器。
在TSIM-LEON平台上进行程序的测试和调试过程中,Profiling(性能观察器)能够显示程序各个分支函数以及宏在实际运行中占用的资源,从而为程序的进一步优化提供必要参考,例如某测试程序在程序运行完毕后使用pro命令得出的结果:
Program exited normally
tsim>pro
function rario(%)
_start 99.99
_hardreset_real 99.99
main 99.82
processl 92.90
__muldf3 56.44
__adddf3 31.14
…
宏_muldf3和_adddf3在程序运行中占用了大量时间,需进一步优化。经测试证明,通过在LEON中集成FPU消除了宏_muldf3和__adddf3,从而大幅提高浮点运算性能。
2 LEON数学运算性能及算法测试
在LEON软核系统上移植成功Linux后,通过特定测试程序验证LEON在数学运算上的性能,以确定是否满足项目开发的需求。测试中对比ARM9 SC32410,分析LEON以及其集成FPU配置的性能,并根据测试结果对软硬件配置进一步优化。由于LEON硬件配置十分灵活,因此在测试中采用了多种平台,编译程序的选项也有对应的设置。中断响应、功耗等虽然也是处理器性能的重要方面,但本文尚未涉及。
2.1 测试平台
(1)硬件测试平台
硬件测试平台如表1所列。
TSIM仿真器通过主机的浮点机制来进行浮点运算仿真,因此仿真器的浮点精度与主机平台相关。仿真器的时间精度与MeikoFPU相同,集成FPU的LEON3相当于集成MeikoFPU的LEON3。
(2)软件测试平台
①LEON2和LEON3在Linux 2.6.11下运行。
②直接使用gcc编译生成程序加载到LEON上并运行,无操作系统。
③SamsungS3C2410在Linux 2.4.18下运行。
(3)不同硬件测试平台上测试程序说明
不同的硬件平台和软件平台的搭配需在编译程序过程中指定特定选项(通过Makefile管理):
①一msoft-float选项。LEON平台上若未集成FPU,则进行浮点运算必须指定该选项,此时所有浮点运算转化为软件模拟实现,代价是运行时间大大增加,优势是能够节省硬件资源(加入FPU后LEON的LE的使用率是无FPU情况下的近2倍)。
②-mv8选项。LEON平台上配置硬件整数乘除法构件时需要指定该选项。
③sparc-linux-gcc和sparc-elf-gcc编译器。对于LEON平台,若在Linux系统上运行测试程序,则需用sparc-linux-gcc进行编译,程序使用动态链接库完成链接;若直接在LEON硬件上加载运行,则需用sparc-elf-gcc:进行编译,程序使用静态链接库完成链接。
④arm-linux-gcc:编译器。ARM9的S3C2410编译器为arm-linux-gcc。
⑤-O3优化选项。LEON和ARM的微处理器通过指定该选项进行程序算法优化。
近年来Linux凭借其开源、性能优异、软件资源丰富的优势,在嵌入式平台上得到了广泛的应用。在LEON上运行的操作系统目前已经有RTEMS、eCOS、VxWorks和嵌入式Linux。选择嵌入式Linux的主要原因,是由于Linux的开发平台搭建得比较完善,在工具链、内核移植、驱动程序以及应用程序的各层上都有很好的支持;使用Linux开发能够大大加快开发的进度,并满足多数应用的指标。目前,对LEON提供良好支持的Linux发行版有Snapgear。由于LEON软核优异的可配置性和可移植性,在LEON上进行Linux的移植工作与普通定制的嵌入式微处理器相比,有很多特殊点和难点,主要表现在两个方面。
(1)配置和编译内核
编译内核的目的在于,生成在目标CPU上运行的内核。由于LEON自身硬件的可配置性,Linux的源代码中也需要加入与硬件核相关的选项进行配置。若LEON软核配置IP,例如硬件加速单元、加密单元或外设接口,则Linux内核中需加入驱动程序。因此,内核的配置分为两类,一类是配置LEON软核自身的设置,另一类是配置目标板上的其他外围设备,例如内存系统、外设接口等。与一般的定制嵌入式CPU(如ARM体系的CPU)相比,前一类配置是LEON独有的。这种配置的灵活性为软硬件平台的定制提供了极大的方便。例如,Snapgear Embedded Linux根据具体需求配置硬件乘除法指令和浮点运算单元FPU;在不需要进行浮点运算的应用中,配置LEON硬件就不需配置浮点单元,相应Linux的配置中取消FPU,进而节省硬件资源和软件的开销。
项目中实际采取的LEON软核配置方案为:LEON核选择LEON2MMU或LEON3MMU,时钟频率为50MHz,配置硬件整数乘除法指令和FPU对应的浮点操作指令。外围设备配置的串口的起始波特率为38 400 bps,另外,还配置了只读存储区ROM和随机存取器RAM。
(2)调试内核
LEON软核平台调试工具有:TSIM、GRSIM和GRMON。
TSIM:SPARC架构处理器通用软件仿真器,用于软件仿真ERC32-和LEON微处理器。
GRSIM:LEON平台软件仿真器,支持多处理器平台(MP)。
GRMON:LEON平台硬件仿真调试器,支持基于GRLIB软核IP的SoC设计的硬件调试。
TSIM作为软件模拟的VHDL模型,调试过程中常见的启动选项设置如下:
-freq:设置TSIM模拟LEON处理器硬件的工作频率,LEON3默认为50 MHz。
-fpm:配置模拟FPU模块。
-nfp:针对无FPU的模拟硬件平台关闭FPU。
-nov8:针对无硬件乘除法硬件平台关闭硬件乘除法指令。
-pr:指定使用性能观察器。
在TSIM-LEON平台上进行程序的测试和调试过程中,Profiling(性能观察器)能够显示程序各个分支函数以及宏在实际运行中占用的资源,从而为程序的进一步优化提供必要参考,例如某测试程序在程序运行完毕后使用pro命令得出的结果:
Program exited normally
tsim>pro
function rario(%)
_start 99.99
_hardreset_real 99.99
main 99.82
processl 92.90
__muldf3 56.44
__adddf3 31.14
…
宏_muldf3和_adddf3在程序运行中占用了大量时间,需进一步优化。经测试证明,通过在LEON中集成FPU消除了宏_muldf3和__adddf3,从而大幅提高浮点运算性能。
2 LEON数学运算性能及算法测试
在LEON软核系统上移植成功Linux后,通过特定测试程序验证LEON在数学运算上的性能,以确定是否满足项目开发的需求。测试中对比ARM9 SC32410,分析LEON以及其集成FPU配置的性能,并根据测试结果对软硬件配置进一步优化。由于LEON硬件配置十分灵活,因此在测试中采用了多种平台,编译程序的选项也有对应的设置。中断响应、功耗等虽然也是处理器性能的重要方面,但本文尚未涉及。
2.1 测试平台
(1)硬件测试平台
硬件测试平台如表1所列。
TSIM仿真器通过主机的浮点机制来进行浮点运算仿真,因此仿真器的浮点精度与主机平台相关。仿真器的时间精度与MeikoFPU相同,集成FPU的LEON3相当于集成MeikoFPU的LEON3。
(2)软件测试平台
①LEON2和LEON3在Linux 2.6.11下运行。
②直接使用gcc编译生成程序加载到LEON上并运行,无操作系统。
③SamsungS3C2410在Linux 2.4.18下运行。
(3)不同硬件测试平台上测试程序说明
不同的硬件平台和软件平台的搭配需在编译程序过程中指定特定选项(通过Makefile管理):
①一msoft-float选项。LEON平台上若未集成FPU,则进行浮点运算必须指定该选项,此时所有浮点运算转化为软件模拟实现,代价是运行时间大大增加,优势是能够节省硬件资源(加入FPU后LEON的LE的使用率是无FPU情况下的近2倍)。
②-mv8选项。LEON平台上配置硬件整数乘除法构件时需要指定该选项。
③sparc-linux-gcc和sparc-elf-gcc编译器。对于LEON平台,若在Linux系统上运行测试程序,则需用sparc-linux-gcc进行编译,程序使用动态链接库完成链接;若直接在LEON硬件上加载运行,则需用sparc-elf-gcc:进行编译,程序使用静态链接库完成链接。
④arm-linux-gcc:编译器。ARM9的S3C2410编译器为arm-linux-gcc。
⑤-O3优化选项。LEON和ARM的微处理器通过指定该选项进行程序算法优化。
SoC VHDL Linux 总线 嵌入式 Altera VxWorks ARM 仿真 S3C2410 MCU 相关文章:
- SoC面临挑战,智能分割顺势而起(11-07)
- 基于PL3200的CDMA扩频电力线载波通信系统设计(11-19)
- 基于SOCKS地IPv4向IPv6过渡技术(01-08)
- 基于GPRS的SOCKET通信的应用研究(01-15)
- 蓝牙技术硬件实现模式分析(01-11)
- 代理服务器------代理之间的级联(03-17)