首页> 中国专利> 一种基于SoC的无线智能程序加载方法及系统

一种基于SoC的无线智能程序加载方法及系统

摘要

本发明公开了一种基于SoC的无线智能程序加载方法,步骤如下:搭建SoC系统;将加载启动代码烧录至只读存储器中;将flash存储器分区并加载不同的程序;初始化串行外设接口和通用异步收发传输器,从flash存储器中选择相应程序区实现程序到内存模块的拷贝;执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动。通过带蓝牙功能的终端发送不同的命令即可选择flash程序区中不同的程序加载到内存模块,通过无线控制实现不同程序的加载,不需要添加额外的接口与复杂的模块,不需要连接下载线和IDE开发环境等工具,简化了芯片的二次开发,增加了芯片的利用率。本发明还公开了一种无线智能程序加载SoC系统。

著录项

  • 公开/公告号CN105550010A

    专利类型发明专利

  • 公开/公告日2016-05-04

    原文格式PDF

  • 申请/专利权人 湘潭大学;

    申请/专利号CN201610139229.2

  • 发明设计人 唐明华;黄诚;刘新;冯艳华;王震;

    申请日2016-03-11

  • 分类号G06F9/445(20060101);H04W4/00(20090101);G06F15/78(20060101);

  • 代理机构湘潭市汇智专利事务所(普通合伙);

  • 代理人颜昌伟

  • 地址 411105 湖南省湘潭市雨湖区羊牯塘

  • 入库时间 2023-12-18 15:54:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-05

    授权

    授权

  • 2016-06-01

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20160311

    实质审查的生效

  • 2016-05-04

    公开

    公开

说明书

技术领域

本发明涉及嵌入式SoC设计领域,特别涉及一种基于SoC的无线智能程序加载方法及系统。

背景技术

SoC(System-on-chip)是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。一般包括中央处理器、存储器以及外围电路等。SoC是与其它技术并行发展的,它可以提供增强的时钟频率,降低微芯片的功耗,在嵌入式系统中有广泛的应用。

对于SoC设计来说,搭好环境后,还得有相应的一套IDE开发工具,包括装有配套开发环境的PC,电路板和连接线。开发完成后应用于嵌入式领域,一般很难支持二次开发,或者支持二次开发,但是受带开发环境的PC终端、电路板、连接线等条件的约束很不方便。

发明内容

为了解决上述技术问题,本发明提供一种能方便实现二次开发、芯片利用率高的基于SoC的线智能程序加载方法,并提供一种线智能程序加载SoC系统。

本发明解决上述问题的技术方案是:一种基于SoC的无线智能程序加载方法,步骤如下:

(1)搭建SoC系统;

(2)将加载启动代码烧录至只读存储器中;

(3)将flash存储器划分成若干个程序区,并通过加载指令把不同的程序分别加载到不同的程序区;

(4)运行加载启动代码代码后,执行串行外设接口和通用异步收发传输器的初始化命令,并监测串口接收到的命令,从flash存储器中选择相应程序区实现程序到内存模块的拷贝;

(5)执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动。

上述基于SoC的无线智能程序加载方法,所述步骤(1)中,采用硬件描述语言搭建SoC系统。

上述基于SoC的无线智能程序加载方法,所述步骤(2)的具体步骤为:

步骤A:安装OpenRISC交叉编译工具链和XilinxISE工具;

步骤B:用汇编语言设计加载启动代码;

步骤C:通过交叉编译工具链把加载启动代码从汇编语言编译成硬件描述语言,并实例化到soc系统顶层中。

上述基于SoC的无线智能程序加载方法,所述步骤(3)中,flash存储器地址从0x100000到0x1c0000区域是soc系统bit文件放置区,步骤(3)具体步骤为:

步骤D:通过交叉编译工具链将三个待烧录程序编译成三个二进制文件,并把soc系统从硬件描述语言变成bit文件;

步骤E:利用XilinxISE中的impact工具将编译好的soc系统bit文件烧录至flash存储器0x100000到0x1c0000区域,把三个二进制文件分别烧录到flash的三个不同程序区;其中,地址从0x1c0001到0x1f0000是程序区Ⅰ,地址从0x1f0001到0x220000是程序区Ⅱ,地址从0x220001到0x250000是程序区Ⅲ。

上述基于SoC的无线智能程序加载方法,所述步骤(4)具体步骤为:

步骤F:初始化串行外设接口和通用异步收发传输器,并实时监测终端发过来的命令;若监测到命令,则执行步骤G,否则继续执行步骤F;

步骤G:效验接收到的命令是否为有效命令,是则执行步骤H,否则通过通用异步收发传输器和蓝牙模块向终端发送“错误”提示,重新执行步骤F;

步骤H:根据接收到的命令选择flash存储器相应程序区的有效地址;

步骤I:初始化串行外设接口,产生串行外设接口时序和发送读命令;

步骤J:根据flash程序区的有效地址拷贝程序到内存模块中;

步骤K:比较程序大小是否等于程序大小变量sizeword的值,是则表明程序拷贝完成,否则执行步骤J。

一种无线智能程序加载SoC系统,包括SoC最小系统、蓝牙模块和终端,所述SoC最小系统包括处理器、只读存储器、总线仲裁模块、串行外设接口、内存模块、通用异步收发传输器、时钟模块,所述处理器、只读存储器、串行外设接口、内存模块、时钟模块分别与总线仲裁模块相连,终端与蓝牙模块实现无线通信,蓝牙模块经通用异步收发传输器与总线仲裁模块相连。

本发明的有益效果在于:

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

2、本发明的SoC设计系统中,在原有最小系统中加入了蓝牙模块以及带蓝牙功能的终端,从而通过无线控制实现不同程序的加载,简化了芯片的二次开发,增加了芯片的利用率。

附图说明

图1为本发明的SoC设计系统的结构框图。

图2为本发明的SoC设计方法的流程图。

图3为本发明的flash存储器程序区划分结构图。

图4为本发明的SoC设计方法中程序加载的步骤流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步的说明。

如图1所示,一种无线智能程序加载SoC系统,包括SoC最小系统、蓝牙模块和终端,所述SoC最小系统包括处理器OR1200、只读存储器ROM、Wishbone总线仲裁模块、串行外设接口SPI、内存模块DDR2、通用异步收发传输器UART、时钟模块,所述处理器OR1200、只读存储器ROM、串行外设接口SPI、内存模块DDR2、时钟模块分别与Wishbone总线仲裁模块相连,终端与蓝牙模块实现无线通信,蓝牙模块经通用异步收发传输器UART与Wishbone总线仲裁模块相连。

所述终端用于通过所述蓝牙模块和所述SoC最小系统中的通用异步收发传输器UART将选择程序加载命令发送至所述SoC最小系统;以及接收显示所述SoC最小系统通过通用异步收发传输器UART传过来的提示命令;

所述SoC最小系统用于通过通用异步收发传输器UART接收所述终端发送的命令,实现从flash存储器选择不同程序区的程序加载至内存模块DDR2的功能。

所述Wishbone总线仲裁模块,运行Wishbone总线仲裁逻辑代码后,实现主设备抢占总线的轮循机制。

如图2所示,一种基于SoC的无线智能程序加载方法,步骤如下:

(1)采用硬件描述语言搭建SoC系统;

(2)将加载启动代码烧录至只读存储器ROM中。

具体步骤为:

步骤A:安装OpenRISC交叉编译工具链和EDA工具(XilinxISE);

步骤B:用汇编语言设计加载启动代码(bootloader);

步骤C:通过交叉编译工具链把加载启动代码(bootloader)从汇编语言编译成硬件描述语言(verilog),并实例化到soc系统顶层中。

(3)将flash存储器划分成三个程序区(根据自己的需要划分)。

具体步骤为:

步骤D:通过交叉编译工具链将三个待烧录程序编译成三个二进制文件,并把soc系统从硬件描述语言(verilog)变成bit文件;

步骤E:利用XilinxISE中的impact工具将编译好的soc系统bit文件烧录至flash存储器0x100000到0x1c0000区域,把三个二进制文件分别烧录到flash的三个不同程序区;如图3所示,flash存储器地址从0x100000到0x1c0000是bit文件放置区1,0x1c0001到0x1f0000是程序区Ⅰ2,地址从0x1f0001到0x220000是程序区Ⅱ3,地址从0x220001到0x250000是程序区Ⅲ4,地址从0x250001到0x300000是扩展区5。

(4)运行加载启动代码代码后,执行串行外设接口SPI和通用异步收发传输器UART的初始化命令,并监测串口接收到的命令,从flash存储器中选择相应程序区实现程序到内存模块DDR2的拷贝。

如图4所示,具体步骤为:

步骤F:初始化串行外设接口SPI和通用异步收发传输器UART,并实时监测终端发过来的命令;若监测到命令,则执行步骤G,否则继续执行步骤F;

步骤G:效验接收到的命令是否为有效命令,是则执行步骤H,否则通过通用异步收发传输器UART和蓝牙模块向终端发送“错误”提示,重新执行步骤F;

步骤H:根据接收到的命令选择flash存储器相应程序区的有效地址;

步骤I:初始化串行外设接口SPI,产生串行外设接口SPI时序和发送读命令;

步骤J:根据flash程序区的有效地址拷贝程序到内存模块DDR2中;

步骤K:比较程序大小是否等于程序大小变量sizeword的值,是则表明程序拷贝完成,否则执行步骤J。

(5)执行跳转命令,将处理器指向内存模块DDR2的起始位置,实现系统的自启动。

当程序开始从内存模块DDR2执行时,表示程序加载完成;发送不同的命令表示选择flash存储器不同的程序区中的程序加载到内存模块DDR2,也就实现了通过无线控制程序的加载,不需要下载线、预留接口和开发IDE工具就能实现程序的加载,简化程序的二次开发过程。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号