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

文档序号:9787218阅读:来源:国知局
存储器ROM中。
[0022]具体步骤为:
步骤A:安装OpenRISC交叉编译工具链和EDA工具(XiIinx ISE);
步骤B:用汇编语言设计加载启动代码(bootloader);
步骤C:通过交叉编译工具链把加载启动代码(bootloader)从汇编语言编译成硬件描述语言(verilog),并实例化到soc系统顶层中。
[0023](3)将flash存储器划分成三个程序区(根据自己的需要划分)。
[0024]具体步骤为:
步骤D:通过交叉编译工具链将三个待烧录程序编译成三个二进制文件,并把soc系统从硬件描述语言(verilog)变成bit文件;
步骤E:利用Xi I inx ISE中的impact工具将编译好的soc系统bit文件烧录至flash存储器0x100000到OxIcOOOO区域,把三个二进制文件分别烧录到flash的三个不同程序区;如图3所示,flash存储器地址从0x100000到OxIcOOOO是bit文件放置区I,0xlc0001到OxlfOOOO是程序区12,地址从OxlfOOOl到0x220000是程序区Π 3,地址从0x220001到0x250000是程序区ΙΠ4,地址从0x250001到0x300000是扩展区5。
[0025](4)运行加载启动代码代码后,执行串行外设接口 SPI和通用异步收发传输器UART的初始化命令,并监测串口接收到的命令,从flash存储器中选择相应程序区实现程序到内存模块DDR2的拷贝。
[0026]如图4所示,具体步骤为:
步骤F:初始化串行外设接口 SPI和通用异步收发传输器UART,并实时监测终端发过来的命令;若监测到命令,则执行步骤G,否则继续执行步骤F;
步骤G:效验接收到的命令是否为有效命令,是则执行步骤H,否则通过通用异步收发传输器UART和蓝牙模块向终端发送“错误”提示,重新执行步骤F;
步骤H:根据接收到的命令选择flash存储器相应程序区的有效地址; 步骤I:初始化串行外设接口 SPI,产生串行外设接口 SPI时序和发送读命令;
步骤J:根据flash程序区的有效地址拷贝程序到内存模块DDR2中;
步骤K:比较程序大小是否等于程序大小变量sizeword的值,是则表明程序拷贝完成,否则执行步骤J。
[0027](5)执行跳转命令,将处理器指向内存模块DDR2的起始位置,实现系统的自启动。
[0028]当程序开始从内存模块DDR2执行时,表示程序加载完成;发送不同的命令表示选择flash存储器不同的程序区中的程序加载到内存模块DDR2,也就实现了通过无线控制程序的加载,不需要下载线、预留接口和开发IDE工具就能实现程序的加载,简化程序的二次开发过程。
【主权项】
1.一种基于SoC的无线智能程序加载方法,步骤如下: (1)搭建SoC系统; (2)将加载启动代码烧录至只读存储器中; (3)将flash存储器划分成若干个程序区,并通过加载指令把不同的程序分别加载到不同的程序区; (4)运行加载启动代码代码后,执行串行外设接口和通用异步收发传输器的初始化命令,并监测串口接收到的命令,从flash存储器中选择相应程序区实现程序到内存模块的拷贝; (5)执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动。2.根据权利要求1所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(I)中,采用硬件描述语言搭建SoC系统。3.根据权利要求1所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(2)的具体步骤为: 步骤A:安装OpenRI SC交叉编译工具链和Xi Iinx I SE工具; 步骤B:用汇编语言设计加载启动代码; 步骤C:通过交叉编译工具链把加载启动代码从汇编语言编译成硬件描述语言,并实例化到soc系统顶层中。4.根据权利要求3所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(3)中,flash存储器地址从0x100000到OxIcOOOO区域是soc系统bit文件放置区,步骤(3)具体步骤为: 步骤D:通过交叉编译工具链将三个待烧录程序编译成三个二进制文件,并把soc系统从硬件描述语言变成bit文件; 步骤E:利用XiIinx ISE中的impact工具将编译好的soc系统bit文件烧录至flash存储器0x100000到OxIcOOOO区域,把三个二进制文件分别烧录到flash的三个不同程序区;其中,地址从OxIcOOOI到OxlfOOOO是程序区I,地址从OxlfOOOl到0x220000是程序区Π,地址从0x220001 到0x250000 是程序区 ΙΠ。5.根据权利要求4所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(4)具体步骤为: 步骤F:初始化串行外设接口和通用异步收发传输器,并实时监测终端发过来的命令;若监测到命令,则执行步骤G,否则继续执行步骤F; 步骤G:效验接收到的命令是否为有效命令,是则执行步骤H,否则通过通用异步收发传输器和蓝牙模块向终端发送“错误”提示,重新执行步骤F; 步骤H:根据接收到的命令选择flash存储器相应程序区的有效地址; 步骤I:初始化串行外设接口,产生串行外设接口时序和发送读命令; 步骤J:根据flash程序区的有效地址拷贝程序到内存模块中; 步骤K:比较程序大小是否等于程序大小变量sizeword的值,是则表明程序拷贝完成,否则执行步骤J。6.—种无线智能程序加载SoC系统,其特征在于:包括SoC最小系统、蓝牙模块和终端,所述SoC最小系统包括处理器、只读存储器、总线仲裁模块、串行外设接口、内存模块、通用异步收发传输器、时钟模块,所述处理器、只读存储器、串行外设接口、内存模块、时钟模块分别与总线仲裁模块相连,终端与蓝牙模块实现无线通信,蓝牙模块经通用异步收发传输器与总线仲裁模块相连。
【专利摘要】本发明公开了一种基于SoC的无线智能程序加载方法,步骤如下:搭建SoC系统;将加载启动代码烧录至只读存储器中;将flash存储器分区并加载不同的程序;初始化串行外设接口和通用异步收发传输器,从flash存储器中选择相应程序区实现程序到内存模块的拷贝;执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动。通过带蓝牙功能的终端发送不同的命令即可选择flash程序区中不同的程序加载到内存模块,通过无线控制实现不同程序的加载,不需要添加额外的接口与复杂的模块,不需要连接下载线和IDE开发环境等工具,简化了芯片的二次开发,增加了芯片的利用率。本发明还公开了一种无线智能程序加载SoC系统。
【IPC分类】G06F9/445, G06F15/78, H04W4/00
【公开号】CN105550010
【申请号】CN201610139229
【发明人】唐明华, 黄诚, 刘新, 冯艳华, 王震
【申请人】湘潭大学
【公开日】2016年5月4日
【申请日】2016年3月11日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1