微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于OR1200的SoC程序无线智能加载系统设计及验证

基于OR1200的SoC程序无线智能加载系统设计及验证

时间:08-29 来源:电子产品世界 点击:

器相应程序区的有效地址,否则通过通用异步收发传输器UART和蓝牙模块向终端发送“错误”提示,继续等待命令。得到有效的地址后,初始化串行外设接口SPI,产生串行外设接口SPI时序和发送读命令,根据flash程序区的有效地址拷贝程序到内存模块DDR2中,直到程序大小等于程序大小变量sizeword的值,最后执行跳转命令,将处理器指向内存模块DDR2的起始位置,实现系统的自启动。程序流程图如图4所示。

4 仿真与下板测试

OR1200处理器是OpenRisc家族中的一员,在软件编译的时候我们需要安装OpenRisc交叉编译工具链;采用Xilinx的Virtex-5开发板,同时需要安装ISE等EDA工具。

编译工具链把前面设计的加载启动代码(bootloader)从汇编语言编译成硬件描述语言,并实例化到SoC系统顶层中。然后进行flash存储器的分区并烧录程序,本文通过readmemh命令向程序区Ⅰ、程序区Ⅱ和程序区Ⅲ依次烧录hellowa.c、hellowb.c和hellowc.c。这几个测试程序会通过串口分别打印出“Hello word A”、“Hello word B”和“Hello word C”。这样我们就可以很直观地判断系统在执行哪个程序。

将板子上电,并利用Xilinx ISE中的impact工具将编译好的SoC系统bit文件烧录至flash存储器0x100000到0x1c0000区域,当编译综合通过,下板成功后,我们就可以抓取波形和串口打印判断结果。其波形图和串口打印如图5和图6所示。从波形图中我们可以看出串口控制器输出14个字符,正好是“Hello World A/B/C”,放大波形我们可以看到第一个数据为0x48,正好是字符“H”的ASCLL码。而从窗口上打印的输出更为明显。给串口发送命令“0”,选择flash程序区1 hellowa.c,从0x100000开始拷贝程序,仿真测试结果输出“Hello word A!”。给串口发送命令“1”,选择flash程序区Ⅱ hellowb.c,从0x130001开始拷贝程序,仿真测试结果输出“Hello word B!”。给串口发送命令“2”,选择flash程序区Ⅲ hellowc.c,从0x160001开始拷贝程序,仿真测试结果输出“Hello word C!”。

5 结论

本发明基于SoC的无线智能程序加载方法中,首先将flash存储器划分成若干个程序区,并通过加载指令把不同的程序分别加载到不同的程序区,然后运行加载启动代码,初始化串行外设接口并监测串口接收到的命令,从flash存储器中选择相应程序区,实现程序到内存模块的拷贝,最后执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动;整个加载过程简单,不需要接线和留出程序加载接口,也不需要相应的IDE软件来加载程序,通过手机或带有蓝牙模块的终端就可以加载不同的程序,适用范围广。

参考文献:

[1]唐明华,黄诚,刘新,等. 一种基于SoC的无线智能程序加载方法及系统. 国家发明专利. 专利申请号: 201610139229.2. 中国,2015.

[2]苏纪娟,孟祥玲,朱庆明.系统芯片技术国内外发展现状[J]. 军民两用技术与产品. 2015(13).

[3]王龙兴.集成电路的过去、现在和将来(一)世界集成电路的发展历史[J].集成电路应用. 2014(01).

[4]李争,李范鸣,陈捷,等.基于Wishbone SoC总线接口的高性能SDRAM控制器[J].科学技术与工程. 2008(12).

[5]郑文静,李明强,舒继武. Flash存储技术[J]. 计算机研究与发展. 2010(04).

[6]陈光武,范多旺,于超,等.基于Wishbone片上总线的IP核的互联[J].微计算机信息. 2009(20).

本文来源于《电子产品世界》2017年第9期第54页,欢迎您写论文时引用,并注明出处。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top