CN104866357B - 数字信号处理器的boot启动方法及其启动装置 - Google Patents
数字信号处理器的boot启动方法及其启动装置 Download PDFInfo
- Publication number
- CN104866357B CN104866357B CN201510290867.XA CN201510290867A CN104866357B CN 104866357 B CN104866357 B CN 104866357B CN 201510290867 A CN201510290867 A CN 201510290867A CN 104866357 B CN104866357 B CN 104866357B
- Authority
- CN
- China
- Prior art keywords
- page
- boot
- signal processor
- digital signal
- program
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种数字信号处理器的boot启动方法及其启动装置。一种数字信号处理器的boot启动方法,boot程序存储在应用程序存储页内,启动页与存储boot程序的应用程序存储页页共享,通过地址译码器,启动页与存储boot程序的应用程序存储页的地址空间映射在同一块外部存储器上。所述boot启动方法具有如下步骤:MP/MC=1、OVLY=1、DROM=0,上电或复位数字信号处理器,根据与数字信号处理器连接的外部存储器的指令,执行启动页程序,根据页共享机制,跳转到存储boot程序的应用程序存储页执行boot程序。有效节约了存储器的容量空间,提高了信号处理速度,实现了实时处理的效果。
Description
技术领域
本发明属于嵌入式软硬件***领域,具体涉及一种数字信号处理器的boot启动方法和一种boot程序的启动装置。
背景技术
Boot loader是嵌入式***在加电后执行的第一段代码,它完成CPU和相关硬件的初始化之后,再将固化的嵌入式应用程序装载到内存中,然后跳转到应用程序所在的内存空间的入口地址,启动应用程序运行。
对于嵌入式***,boot loader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式***建立一个通用的boot loader,不同的处理器架构都有不同的bootloader。Boot loader不但依赖于CPU的体系结构,而且依赖于嵌入式***板级设备的配置。
对于数字信号处理器,一般片上的ROM空间内芯片生产商会固化相应的bootloader,方便用户使用。例如TI公司C54x系列处理器上电自举方式有:1)处理器通信口HPI方式,通过DSP芯片与PC机或DSP芯片之间的主机通信端口实现;2)8位或16位并行EPROM,通过DSP内核的DMA通道实现;3)8位或16位并行I/O方式,通过DSP外部并行 I/O接口实现;4)8位或16位串行口方式,通过DSP的串行端口实现。
以上各种方式的boot loader程序都有其固定格式的boot表,用来实现用户程序的上电自举。这些自举加载方法牵涉到了外设接口和***芯片,用户需要严格遵守相关的设计要求,才能成功自举加载相应程序,对于复杂的应用程序,使用起来不灵活。当处理数据量较大的应用程序,很难达到实时处理的效果。
发明内容
本发明要解决的技术问题是:提供一种能够节约内存空间、实时加载应用程序的数字信号处理器的boot启动方法。
本发明要解决的另一技术问题是:提供一种能够实时加载应用程序的boot程序的启动装置。
本发明解决其技术问题所采用的技术方案是:一种数字信号处理器的boot启动方法,所述boot程序存储在数字信号处理器的应用程序存储页内,启动页与存储boot程序的应用程序存储页页共享,通过地址译码器,启动页与存储boot程序的应用程序存储页的地址空间映射在同一块外部存储器上,所述boot启动方法包括如下步骤:
1)、外部MP/MC Pin拉高,MP/MC=1、OVLY=1、DROM=0,上电或复位数字信号处理器,根据与数字信号处理器连接的外部存储器的指令,执行启动页程序,根据页共享机制,跳转到存储boot程序的应用程序存储页执行boot程序;
2)、初始化数字信号处理器和相关***设备;
3)、重新映射数字信号处理器的内存空间,为应用程序准备RAM空间;
4)、启动DMA,将外部存储器上的代码和数据分别搬移到相应的内部存储器上;
5)、设置堆栈;
6)、跳转到应用程序所在的内存空间的入口地址,启动应用程序运行。
具体的,步骤2)中对数字信号处理器的时钟和外部总线频率功能进行初始化。
具体的,步骤3)中设置PMST=0x01a8,MP/MC=0。
一种boot程序的启动装置包括:具有分页存储功能数字信号处理器、地址译码器和多个外部存储器,所述数字信号处理器的地址线分为两部分,一部分地址线直接外部存储器的地址线连接,用于读写数据;另一部分地址线与地址译码器连接,地址译码器分别与外部存储器连接,地址译码器进行译码处理,选择外部存储器。
本发明的有益效果在于:本发明将boot程序通过页机制放入应用程序的存储页中,通过页共享将放有boot程序的应用程序存储页与启动页实现共享,通过地址译码器实现启动页与放有boot程序的应用程序存储页的地址空间映射在同一块的固态存储器上,有效节约了存储器的容量空间,提高了信号处理速度,实现了实时处理的效果。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是boot程序的启动装置的结构示意图。
图2是boot启动程序流程图。
图3是本发明中应用程序的存储空间分配图。
图4是本发明中boot程序共享映射存储器的示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1所示,本发明所述的一种boot程序的启动装置包括:具有分页存储功能数字信号处理器、地址译码器和多外部部存储器,所述数字信号处理器的地址线分为两部分,一部分地址线直接外部存储器的地址线连接,用于读写数据;另一部分地址线与地址译码器连接,地址译码器分别与外部存储器连接,地址译码器进行译码处理,选择外部存储器。
本发明的实施例中采用的数字信号处理器为TI公司C54x系列处理器。所述C54x系列处理器包含3个独立的存储空间,程序、数据和I/O空间。程序空间的可寻址范围为8M×16bit;数据空间的可寻址范围为64K×16bit,I/O空间的可寻址范围为64K×16bit。该C54x系列处理器片上存储器包含可屏蔽ROM,单访问SARAM,双访问DARAM。ROM存放了已固化的boot loader程序,ROM是否映射在内存空间,由PMST寄存器的MP/MC 位决定;SARAM用于存放应用程序和数据,DARAM读写速度快,常用作栈空间和存放常用数据。SARAM和DARAM均以8K×16bit为单位分为8块,分别为:SARAM0~SARAM7,DARAM0~DARAM7。该C54x系列处理器的程序空间采用分页机制,可寻址的8M×16bit空间以64K×16bit大小为一页,共分128页。页寻址寄存器XPC(XPC=0~127)确定选择的页,程序计数器PC仅在每页的64K地址范围内跳转。
如图3所示,本实施例中加载使用的应用程序需要256K×16bit的存储空间。在C54x系列处理器外部接8块外部存储器,每块大小32K×16bit,8块外部存储器的存储空间共256K×16bit。为避免反复更改地址映射引起不必要的错误,将256K×16bit的外部存储空间映射在C54x系列处理器中的Page4、5、6、7、8、9、a、b的高32K地址空间。这些地址空间映射关系不受任何寄存器位的影响(不受PMST的OVLY/ROM等位的影响)。程序代码和数据分块放在这些地址空间中。
如图4所示,本实施例中的boot程序较小,约12Kbit大小,将boot程序和应用程序的一块码本数据合并放入应用程序存储页的某一页,本实施例选择第八页page8的高32K地址空间,boot程序放入0x8f800~8ffff地址空间。将程序空间启动页Page0和第八页Page8空间进行页共享。
为了将存储应用程序的程序存储页即Page4、5、6、7、8、9、a、b内的高32K地址空间映射在8块外部存储器上,8页程序空间共需要占用20根地址线即A0-A19。本实施例选择5根地址线即A15-A19与地址译码器相连,其他地址线即A0-A14分别与外部存储器的地址线连接。A15-A19进行译码处理,确定选择哪一块外部存储器,其他15根地址线即A0-A14用于读写数据。
所述地址译码器将启动页Page0和第八页Page8的地址空间映射在同一块的固态存储器上,执行0xff80即是执行0x8ff80地址开始的程序。这样做有效的节省了存储器存储空间。
如图2所示,本发明的boot的启动过程如下:
1)、外部MP/MC Pin拉高,MP/MC=1、OVLY=1、DROM=0,上电或复位数字信号处理器,程序从0xff80指向的外部存储器空间开始执行,此时PC=0xff80,XPC=0。做了地址映射后,0xff80执行的代码,即为空间0x8ff80内的boot程序,boot程序第一条指令执行跳转,跳转到0x8f80地址执行数字信号处理器。
2)、初始化数字信号处理器和相关***设备,即初始化芯片时钟,外部总线频率等功能。
3)、设置PMST=0x01a8,MP/MC=0,重新映射数字信号处理器的内存空间,为应用程序准备RAM空间。
4)、启动DMA,将外部存储器上的代码和数据分别搬移到相应的内部存储器上。
5)、设置堆栈,C54x系列处理器片上有双访问DARAM,读写速度快,常用作栈空间和存放常用数据,设计使用0x3800大小的DARAM空间为栈空间,使用0x400大小的DARAM空间为堆空间。
6)、跳转到应用程序所在的内存空间的入口地址,启动应用程序运行,本实施例中,应用程序的C入口地址为0x200(XPC=0, PC=0x200)。
在上述的第4)步中,由于C54x系列处理器程序空间和数据空间相互独立,因此在代码搬移时,处理器内部的处理器含有对程序到程序空间,程序到数据空间,数据到程序空间的数据搬移指令,但操作起来非常复杂。而处理器片内含6通道DMA,支持数据、I/O、程序空间的数据搬移,且搬移操作不受与地址映射有关的MP/MC、DROM、OVLY寄存器位的影响。因此采用DMA来进行代码和数据的搬移,既简单又速度又快。
基于以上实施例的方法,还可以将Page9和Page1、Page A和Page2、Page B和Page3分别映射在同一块片外存储器上,实现页共享存储。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (1)
1.一种数字信号处理器的boot启动方法,其特征是:boot程序存储在数字信号处理器的应用程序存储页内,启动页与存储boot程序的应用程序存储页页共享,通过地址译码器,启动页与存储boot程序的应用程序存储页的地址空间映射在同一块外部存储器上,所述boot启动方法包括如下步骤:
、外部MP/MC Pin拉高,MP/MC=1、OVLY=1、DROM=0,上电或复位数字信号处理器,根据与数字信号处理器连接的外部存储器的指令,执行启动页程序,根据页共享机制,跳转到存储boot程序的应用程序存储页执行boot程序;
2)、初始化数字信号处理器和相关***设备,包括对数字信号处理器的时钟和外部总线频率功能进行初始化;
3)、设置PMST=0x01a8,MP/MC=0,重新映射数字信号处理器的内存空间,为应用程序准备RAM空间;
4)、启动DMA,将外部存储器上的代码和数据分别搬移到相应的内部存储器上;
5)、设置堆栈;
6)、跳转到应用程序所在的内存空间的入口地址,启动应用程序运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510290867.XA CN104866357B (zh) | 2015-05-29 | 2015-05-29 | 数字信号处理器的boot启动方法及其启动装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510290867.XA CN104866357B (zh) | 2015-05-29 | 2015-05-29 | 数字信号处理器的boot启动方法及其启动装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104866357A CN104866357A (zh) | 2015-08-26 |
CN104866357B true CN104866357B (zh) | 2019-08-23 |
Family
ID=53912206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510290867.XA Active CN104866357B (zh) | 2015-05-29 | 2015-05-29 | 数字信号处理器的boot启动方法及其启动装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866357B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886425A (zh) * | 2015-12-15 | 2017-06-23 | 西安富成防务科技有限公司 | 一种dsp启动方式的改进结构 |
CN105653269A (zh) * | 2015-12-28 | 2016-06-08 | 北京星地恒通信息科技有限公司 | 一种Boot启动装置和启动方法 |
CN106648758B (zh) * | 2016-11-30 | 2019-11-15 | 中国电子科技集团公司第五十八研究所 | 一种多核处理器boot启动***及方法 |
CN111459564B (zh) * | 2020-04-26 | 2023-12-05 | 深圳康佳电子科技有限公司 | boot阶段初始化兼容的实现方法、***及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0472386A2 (en) * | 1990-08-20 | 1992-02-26 | Texas Instruments Incorporated | Digital signal processing control method and apparatus |
CN101021794A (zh) * | 2006-05-25 | 2007-08-22 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
CN101178661A (zh) * | 2007-12-14 | 2008-05-14 | 华为技术有限公司 | Flash集成bootrom的实现方法和装置 |
CN101349973A (zh) * | 2008-09-05 | 2009-01-21 | 中山大学 | 嵌入式Java处理器微码指令集动态装载方法 |
-
2015
- 2015-05-29 CN CN201510290867.XA patent/CN104866357B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0472386A2 (en) * | 1990-08-20 | 1992-02-26 | Texas Instruments Incorporated | Digital signal processing control method and apparatus |
CN101021794A (zh) * | 2006-05-25 | 2007-08-22 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
CN101178661A (zh) * | 2007-12-14 | 2008-05-14 | 华为技术有限公司 | Flash集成bootrom的实现方法和装置 |
CN101349973A (zh) * | 2008-09-05 | 2009-01-21 | 中山大学 | 嵌入式Java处理器微码指令集动态装载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104866357A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327092B2 (en) | Memory device configurable as interleaved or non-interleaved memory | |
KR101817397B1 (ko) | 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈 | |
US7340566B2 (en) | System and method for initializing a memory device from block oriented NAND flash | |
US7082525B2 (en) | Booting from non-linear memory | |
CN104866357B (zh) | 数字信号处理器的boot启动方法及其启动装置 | |
US9836316B2 (en) | Flexible acceleration of code execution | |
US20060136657A1 (en) | Embedding a filesystem into a non-volatile device | |
JPH09505922A (ja) | 多数のマイクロ制御器の演算を実行するマイクロ制御器システム | |
RU2638641C2 (ru) | Загрузка парциальной ширины, зависящая от режима, в процессорах с регистрами с большим числом разрядов, способы и системы | |
CN104346132B (zh) | 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机 | |
US7398383B2 (en) | Method and system for using internal FIFO RAM to improve system boot times | |
US20050038983A1 (en) | Novel flash memory arrangement | |
US9959211B2 (en) | Memory control unit for controlling semiconductor memory device and data storage apparatus including the same | |
US10713021B2 (en) | Geometric 64-bit capability pointer | |
KR20150130382A (ko) | 외부에서 프로그래밍 가능한 메모리 관리 유닛 | |
US9046915B2 (en) | Circuit and method for initializing a computer system | |
US6728856B2 (en) | Modified Harvard architecture processor having program memory space mapped to data memory space | |
EP2396723B1 (en) | Microcontroller with special banking instructions and method therefor | |
JP6143841B2 (ja) | コンテキストスイッチを伴うマイクロコントローラ | |
JPH09505428A (ja) | ページアドレスモードを有するマイクロコントローラ | |
US20120017035A1 (en) | Runtime reprogramming of a processor code space memory area | |
Russell | ATmega328P Architecture | |
US20050154868A1 (en) | Apparatus and method for processing a sequence of jump instructions | |
WO2009136402A2 (en) | Register file system and method thereof for enabling a substantially direct memory access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |