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

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

Info

Publication number
CN105550010A
CN105550010A CN201610139229.2A CN201610139229A CN105550010A CN 105550010 A CN105550010 A CN 105550010A CN 201610139229 A CN201610139229 A CN 201610139229A CN 105550010 A CN105550010 A CN 105550010A
Authority
CN
China
Prior art keywords
program
soc
loading
memory
flash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610139229.2A
Other languages
English (en)
Other versions
CN105550010B (zh
Inventor
唐明华
黄诚
刘新
冯艳华
王震
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiangtan University
Original Assignee
Xiangtan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiangtan University filed Critical Xiangtan University
Priority to CN201610139229.2A priority Critical patent/CN105550010B/zh
Publication of CN105550010A publication Critical patent/CN105550010A/zh
Application granted granted Critical
Publication of CN105550010B publication Critical patent/CN105550010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Abstract

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

Description

一种基于SoC的无线智能程序加载方法及系统
技术领域
本发明涉及嵌入式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工具就能实现程序的加载,简化程序的二次开发过程。

Claims (6)

1.一种基于SoC的无线智能程序加载方法,步骤如下:
(1)搭建SoC系统;
(2)将加载启动代码烧录至只读存储器中;
(3)将flash存储器划分成若干个程序区,并通过加载指令把不同的程序分别加载到不同的程序区;
(4)运行加载启动代码代码后,执行串行外设接口和通用异步收发传输器的初始化命令,并监测串口接收到的命令,从flash存储器中选择相应程序区实现程序到内存模块的拷贝;
(5)执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动。
2.根据权利要求1所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(1)中,采用硬件描述语言搭建SoC系统。
3.根据权利要求1所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(2)的具体步骤为:
步骤A:安装OpenRISC交叉编译工具链和XilinxISE工具;
步骤B:用汇编语言设计加载启动代码;
步骤C:通过交叉编译工具链把加载启动代码从汇编语言编译成硬件描述语言,并实例化到soc系统顶层中。
4.根据权利要求3所述的基于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是程序区Ⅲ。
5.根据权利要求4所述的基于SoC的无线智能程序加载方法,其特征在于:所述步骤(4)具体步骤为:
步骤F:初始化串行外设接口和通用异步收发传输器,并实时监测终端发过来的命令;若监测到命令,则执行步骤G,否则继续执行步骤F;
步骤G:效验接收到的命令是否为有效命令,是则执行步骤H,否则通过通用异步收发传输器和蓝牙模块向终端发送“错误”提示,重新执行步骤F;
步骤H:根据接收到的命令选择flash存储器相应程序区的有效地址;
步骤I:初始化串行外设接口,产生串行外设接口时序和发送读命令;
步骤J:根据flash程序区的有效地址拷贝程序到内存模块中;
步骤K:比较程序大小是否等于程序大小变量sizeword的值,是则表明程序拷贝完成,否则执行步骤J。
6.一种无线智能程序加载SoC系统,其特征在于:包括SoC最小系统、蓝牙模块和终端,所述SoC最小系统包括处理器、只读存储器、总线仲裁模块、串行外设接口、内存模块、通用异步收发传输器、时钟模块,所述处理器、只读存储器、串行外设接口、内存模块、时钟模块分别与总线仲裁模块相连,终端与蓝牙模块实现无线通信,蓝牙模块经通用异步收发传输器与总线仲裁模块相连。
CN201610139229.2A 2016-03-11 2016-03-11 一种基于SoC的无线智能程序加载方法及系统 Active CN105550010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610139229.2A CN105550010B (zh) 2016-03-11 2016-03-11 一种基于SoC的无线智能程序加载方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610139229.2A CN105550010B (zh) 2016-03-11 2016-03-11 一种基于SoC的无线智能程序加载方法及系统

Publications (2)

Publication Number Publication Date
CN105550010A true CN105550010A (zh) 2016-05-04
CN105550010B CN105550010B (zh) 2019-02-05

Family

ID=55829208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610139229.2A Active CN105550010B (zh) 2016-03-11 2016-03-11 一种基于SoC的无线智能程序加载方法及系统

Country Status (1)

Country Link
CN (1) CN105550010B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008981A (zh) * 2016-10-27 2018-05-08 青岛海信电器股份有限公司 一种片上系统SoC中进行程序初始化的方法和装置
CN108628643A (zh) * 2018-03-30 2018-10-09 深圳市伟文无线通讯技术有限公司 单片机系统软件加载方法
CN113254093A (zh) * 2021-07-06 2021-08-13 西安芯瞳半导体技术有限公司 自适应系统架构的gpu初始化方法、装置及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246430A (zh) * 2008-03-13 2008-08-20 中兴通讯股份有限公司 一种无线终端产品Boot引导程序的实现方法
CN101751271A (zh) * 2008-12-16 2010-06-23 无锡华润矽科微电子有限公司 一种基于8位mcu为内核的soc电路及采用该电路的系统的控制方法
CN101819560A (zh) * 2009-02-27 2010-09-01 杭州晟元芯片技术有限公司 一种spi接口存储器执行程序方法和装置
CN102184365A (zh) * 2011-06-07 2011-09-14 郑州信大捷安信息技术有限公司 基于SoC芯片外部数据安全存储架构及存取控制方法
US20140122833A1 (en) * 2009-09-24 2014-05-01 Mark Bradley Davis Server on a chip and node cards comprising one or more of same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246430A (zh) * 2008-03-13 2008-08-20 中兴通讯股份有限公司 一种无线终端产品Boot引导程序的实现方法
CN101751271A (zh) * 2008-12-16 2010-06-23 无锡华润矽科微电子有限公司 一种基于8位mcu为内核的soc电路及采用该电路的系统的控制方法
CN101819560A (zh) * 2009-02-27 2010-09-01 杭州晟元芯片技术有限公司 一种spi接口存储器执行程序方法和装置
US20140122833A1 (en) * 2009-09-24 2014-05-01 Mark Bradley Davis Server on a chip and node cards comprising one or more of same
CN102184365A (zh) * 2011-06-07 2011-09-14 郑州信大捷安信息技术有限公司 基于SoC芯片外部数据安全存储架构及存取控制方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008981A (zh) * 2016-10-27 2018-05-08 青岛海信电器股份有限公司 一种片上系统SoC中进行程序初始化的方法和装置
CN108008981B (zh) * 2016-10-27 2020-12-08 海信视像科技股份有限公司 一种片上系统SoC中进行程序初始化的方法和装置
CN108628643A (zh) * 2018-03-30 2018-10-09 深圳市伟文无线通讯技术有限公司 单片机系统软件加载方法
CN113254093A (zh) * 2021-07-06 2021-08-13 西安芯瞳半导体技术有限公司 自适应系统架构的gpu初始化方法、装置及计算机存储介质

Also Published As

Publication number Publication date
CN105550010B (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
KR101832953B1 (ko) 모바일 디바이스의 어플리케이션 프로세서의 원격 시동
US7765391B2 (en) Multiprocessor system and boot-up method of slave system
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
US20050289274A1 (en) Compact modular embedded device
KR20120096864A (ko) 모바일 디바이스의 무선 충전
CN103176824A (zh) 一种系统升级的方法及装置
CN103019755B (zh) 嵌入式系统中多cpu的无线程序下载方法
CN105550010A (zh) 一种基于SoC的无线智能程序加载方法及系统
CN102520961A (zh) 片外在线可编程的soc系统及其控制方法
CN105208752B (zh) 一种led灯具无线控制系统及控制方法
CN102377423A (zh) Fpga在线配置方法
CN104050006A (zh) 一种fpga的更新系统及其更新方法
CN102567253A (zh) 基于dma的spi数据传输方法及装置
CN112199121B (zh) Dsp按需扩容加载程序方法
CN101788946B (zh) Cpld上连接有e2prom设备的固件烧结方法及装置
CN114253890A (zh) 通信模组及其外部接口配置方法、配置装置和存储介质
CN101753672B (zh) 一种对无线终端快速修复的系统和方法
CN105630530A (zh) 数字信号处理器多级启动方法及系统
CN102981858A (zh) 一种以移动设备为基础的集成电路编程系统及方法
US7680909B2 (en) Method for configuration of a processing unit
CN201000625Y (zh) 一种现场可编程门阵列在线配置的装置
CN107562440A (zh) 一种eeprom版本更新方法及装置
CN103747239B (zh) 一种进入调试模式的方法及智能电视
CN110572387B (zh) 一种链路层处理方法
CN108073412B (zh) 一种基于wifi的fpga无线升级和智能加载的装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant