CN101441572B - Dsp芯片中实现运行代码加载的方法 - Google Patents

Dsp芯片中实现运行代码加载的方法 Download PDF

Info

Publication number
CN101441572B
CN101441572B CN2007101707310A CN200710170731A CN101441572B CN 101441572 B CN101441572 B CN 101441572B CN 2007101707310 A CN2007101707310 A CN 2007101707310A CN 200710170731 A CN200710170731 A CN 200710170731A CN 101441572 B CN101441572 B CN 101441572B
Authority
CN
China
Prior art keywords
code
dsp chip
dsp
initialization
microprocessor unit
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
Application number
CN2007101707310A
Other languages
English (en)
Other versions
CN101441572A (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Shanghai Mobilepeak Semiconductor Co Ltd
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 Shanghai Mobilepeak Semiconductor Co Ltd filed Critical Shanghai Mobilepeak Semiconductor Co Ltd
Priority to CN2007101707310A priority Critical patent/CN101441572B/zh
Publication of CN101441572A publication Critical patent/CN101441572A/zh
Application granted granted Critical
Publication of CN101441572B publication Critical patent/CN101441572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种DSP芯片中实现运行代码加载的方法,包括将DSP运行代码进行分割编译处理得到初始运行代码和后续运行代码、微处理器单元首先向DSP芯片中加载该初始运行代码、DSP芯片执行该初始运行代码并记录相应的初始化运行结果、微处理器单元对所述的初始化运行结果进行判断、根据判断结果微处理器单元进行错误处理或者向DSP芯片中加载后续运行代码执行后续处理流程。采用该种DSP芯片中实现运行代码加载的方法,巧妙实现了对运行代码的简单分割,并通过两步加载解决了DSP运行代码超出存储空间的问题,不需改动硬件设计和修改代码,简单快捷,工作性能稳定可靠,适用范围较为广泛,为DSP芯片控制技术的进一步大规模普及应用奠定了坚实的基础。

Description

DSP芯片中实现运行代码加载的方法
技术领域
本发明涉及数字信号处理(DSP)领域,特别涉及数字信号处理芯片运行控制技术领域,具体是指一种DSP芯片中实现运行代码加载的方法。
背景技术
随着现代集成电路技术的不断进步和集成电路产业的继续发展,越来越多的电子产品中应用了DSP芯片,人们可以基于DSP芯片实现各种控制功能,大大增强了电子产品的应用领域和范围。
其中,为了能够使得DSP芯片正常运行,其中的运行代码加载是不可或缺的重要处理步骤。现有技术中,DSP运行代码进行编译后的.out文件通常是通过上层微处理器单元(MPU)进行加载的,一般是上电后直接将.out文件加载(load)到DSP芯片中的代码存储空间内。
但是,通常的DSP芯片内的代码存储空间都有限,而随着各种控制功能的不断增强和完善,.out文件会越来越大,经常会出现超过该DSP芯片内的存储空间的情况。在这种情况下,通常的一个解决方法是更换DSP芯片,选取代码存储空间大的型号;另一个解决方法是对DSP运行代码进行优化,减小文件大小。然而这两种方法都比较麻烦,前者需要改动硬件设计,增加了研发和生产成本,而后者则需要修改DSP代码,工作量大,也提高了研发和测试的成本,这样就给DSP芯片控制技术的大规模普及应用带来了一定的障碍。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够在有限的DSP芯片代码存储空间中运行超大代码、无需改动硬件设计或者大量修改代码、简单快捷、工作性能稳定可靠、适用范围较为广泛的DSP芯片中实现运行代码加载的方法。
为了实现上述的目的,本发明的DSP芯片中实现运行代码加载的方法如下:
该DSP芯片中实现运行代码加载的方法,其中使用与DSP芯片相连接的微处理器单元,其主要特点是,所述的方法包括以下步骤:
(1)将DSP运行代码进行分割编译处理,得到初始运行代码和后续运行代码;
(2)微处理器单元首先向DSP芯片中加载该初始运行代码;
(3)DSP芯片执行该初始运行代码,并记录相应的初始化运行结果;
(4)微处理器单元对所述的初始化运行结果进行判断;
(5)如果初始化运行失败,则微处理器单元进行错误处理;
(6)如果初始化运行成功,则微处理器单元向DSP芯片中加载后续运行代码,执行后续处理流程。
该DSP芯片中实现运行代码加载的方法中的对DSP运行代码进行分割编译处理,包括以下步骤:
(1)将DSP运行代码中只需要执行一次的代码提取出来,并单独编译,得到初始运行代码;
(2)将DSP运行代码中的其余部分代码单独编译,得到后续运行代码。
该DSP芯片中实现运行代码加载的方法中的只需要执行一次的代码至少包括变量初始化代码、表格赋值代码、内存清零代码和自检部分代码。
该DSP芯片中实现运行代码加载的方法中的DSP芯片执行该初始运行代码,包括以下步骤:
(1)DSP芯片根据该初始运行代码对变量进行初始化;
(2)DSP芯片根据该初始运行代码对表格进行初始化;
(3)DSP芯片根据该初始运行代码对内存进行清零;
(4)DSP芯片根据该初始运行代码进行自检操作。
该DSP芯片中实现运行代码加载的方法中的记录相应的初始化运行结果,包括以下步骤:
(1)如果执行该初始化运行代码成功,则DSP芯片在系统预设的地址写入预设的成功信息;
(2)如果执行该初始化运行代码失败,则DSP芯片在系统预设的地址写入预设的失败信息。
该DSP芯片中实现运行代码加载的方法中的微处理器单元对初始化运行结果进行判断,包括以下步骤:
(1)微处理器单元周期性的扫描所述系统预设的地址中的信息;
(2)如果检测到该地址中的信息与预设的成功信息相一致,则返回初始化运行成功的结果;
(3)如果检测到该地址中的信息与预设的失败信息相一致,则返回初始化运行失败的结果。
该DSP芯片中实现运行代码加载的方法中的微处理器单元进行错误处理,包括以下步骤:
(1)微处理器单元上报失败;
(2)停止后续的运行代码的加载,并等待进一步指令。
采用了该发明的DSP芯片中实现运行代码加载的方法,由于首先将变量初始化、表格赋值、内存清零、自检等只需要执行一次的DSP运行代码提取出来单独编译生成初始化运行代码文件,而将剩余的其它部分代码编译生成后续运行代码文件,而通常的初始化运行代码占用了很大一部分代码空间,将这部分提取出来,便能够大大减小后续运行代码的大小;接着MPU先加载初始化运行代码文件,再根据初始化运行结果加载后续运行代码文件,此时,DSP芯片即能够按照正常流程执行下去,从而巧妙实现了对运行代码的简单分割,并通过两步加载,有效的解决了DSP运行代码超出存储空间的问题,既不需要改动硬件设计,也不需要大量修改代码,简单快捷,工作性能稳定可靠,适用范围较为广泛,为DSP芯片控制技术的进一步大规模普及应用奠定了坚实的基础。
附图说明
图1为本发明的DSP芯片中实现运行代码加载的方法在初始化运行代码执行成功时的交互流程示意图。
图2为本发明的DSP芯片中实现运行代码加载的方法在初始化运行代码执行失败时的交互流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1和图2所示,该DSP芯片中实现运行代码加载的方法,其中使用与DSP芯片相连接的微处理器单元,所述的方法包括以下步骤:
(1)将DSP运行代码进行分割编译处理,得到初始运行代码和后续运行代码;该对DSP运行代码进行分割编译处理,包括以下步骤:
(a)将DSP运行代码中只需要执行一次的代码提取出来,并单独编译,得到初始运行代码,该只需要执行一次的代码至少包括变量初始化代码、表格赋值代码、内存清零代码和自检部分代码;
(b)将DSP运行代码中的其余部分代码单独编译,得到后续运行代码;
(2)微处理器单元首先向DSP芯片中加载该初始运行代码;
(3)DSP芯片执行该初始运行代码,并记录相应的初始化运行结果;其中,该DSP芯片执行该初始运行代码,包括以下步骤:
(a)DSP芯片根据该初始运行代码对变量进行初始化;
(b)DSP芯片根据该初始运行代码对表格进行初始化;
(c)DSP芯片根据该初始运行代码对内存进行清零;
(d)DSP芯片根据该初始运行代码进行自检操作;
该记录相应的初始化运行结果,包括以下步骤:
(a)如果执行该初始化运行代码成功,则DSP芯片在系统预设的地址写入预设的成功信息;
(b)如果执行该初始化运行代码失败,则DSP芯片在系统预设的地址写入预设的失败信息;
(4)微处理器单元对所述的初始化运行结果进行判断,包括以下步骤:
(a)微处理器单元周期性的扫描所述系统预设的地址中的信息;
(b)如果检测到该地址中的信息与预设的成功信息相一致,则返回初始化运行成功的结果;
(c)如果检测到该地址中的信息与预设的失败信息相一致,则返回初始化运行失败的结果;
(5)如果初始化运行失败,则微处理器单元进行错误处理,包括以下步骤:
(a)微处理器单元上报失败;
(b)停止后续的运行代码的加载,并等待进一步指令;
(6)如果初始化运行成功,则微处理器单元向DSP芯片中加载后续运行代码,执行后续处理流程。
在实际使用当中,本发明的方法可以被称为两步加载法,该方法既不需要改动硬件设计,也不需要大量修改代码,具体如下:
首先,将变量初始化,表格赋值,内存清零,自检等只需要执行一次的DSP运行代码提取出来,单独放到一个文件中,编译生成一个initial.out文件,将剩余的其他部分代码编译生成一个文件main.out。通常初始化和自检等代码占用了很大一部分代码空间,将这部分提取出来,可以大大减小mian.out的尺寸。
然后,MPU先加载initial.out文件,让DSP芯片进行初始化,自检等操作。
最后,再将mian.out文件加载,此时,DSP芯片便可以按照正常流程执行下去。
其具体步骤如下:
步骤一——代码分割
DSP运行代码中变量初始化、表格赋值、内存清零、自检部分等所有只需要执行一次的代码提取出来,单独编译成为一个initial.out文件。其余部分代码编译为main.out文件。
步骤二——加载initial.out
MPU侧保存了initial.out和main.out文件,先加载initial.out文件,DSP芯片运行该initial.out,对变量、表格初始化,内存清零,自检,执行成功后,在系统预设的固定地址写入预设的成功信息,比如:0x55555555;如果自检不通过,或者初始化失败,在该固定地址写入预设的失败信息,比如:0xaaaaaaaa。同时,MPU在加载intial.out文件后,周期扫描该固定地址的数值信息,如果检测到DSP芯片初始化成功信息,可以进行下一步的操作。如果检测到DSP芯片返回的失败信息,则上报失败,停止下一步的加载,等待查明原因。
步骤三——加载main.out
MPU收到DSP芯片的初始化成功信息后,加载main.out文件,覆盖initial.out占用的代码空间,然后,main.out跳过初始化过程,按照正常流程执行。
采用了上述的DSP芯片中实现运行代码加载的方法,由于首先将变量初始化、表格赋值、内存清零、自检等只需要执行一次的DSP运行代码提取出来单独编译生成初始化运行代码文件,而将剩余的其它部分代码编译生成后续运行代码文件,而通常的初始化运行代码占用了很大一部分代码空间,将这部分提取出来,便能够大大减小后续运行代码的大小;接着MPU先加载初始化运行代码文件,再根据初始化运行结果加载后续运行代码文件,此时,DSP芯片即能够按照正常流程执行下去,从而巧妙实现了对运行代码的简单分割,并通过两步加载,有效的解决了DSP运行代码超出存储空间的问题,既不需要改动硬件设计,也不需要大量修改代码,简单快捷,工作性能稳定可靠,适用范围较为广泛,为DSP芯片控制技术的进一步大规模普及应用奠定了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (2)

1.一种DSP芯片中实现运行代码加载的方法,其中使用与DSP芯片相连接的微处理器单元,其特征在于,所述的方法包括以下步骤:
(1)将DSP运行代码进行分割编译处理,得到初始运行代码和后续运行代码,所述的对DSP运行代码进行分割编译处理,包括以下步骤:
(a)将DSP运行代码中只需要执行一次的代码提取出来,并单独编译,得到初始运行代码;
(b)将DSP运行代码中的其余部分代码单独编译,得到后续运行代码;
(2)微处理器单元首先向DSP芯片中加载该初始运行代码;
(3)DSP芯片执行该初始运行代码,并记录相应的初始化运行结果,所述的DSP芯片执行该初始运行代码,包括以下步骤:
(a)DSP芯片根据该初始运行代码对变量进行初始化;
(b)DSP芯片根据该初始运行代码对表格进行初始化;
(c)DSP芯片根据该初始运行代码对内存进行清零;
(d)DSP芯片根据该初始运行代码进行自检操作;
所述的记录相应的初始化运行结果,包括以下步骤:
(a)如果执行该初始化运行代码成功,则DSP芯片在系统预设的地址写入预设的成功信息;
(b)如果执行该初始化运行代码失败,则DSP芯片在系统预设的地址写入预设的失败信息;
(4)微处理器单元对所述的初始化运行结果进行判断,所述的微处理器单元对初始化运行结果进行判断,包括以下步骤:
(a)微处理器单元周期性的扫描所述系统预设的地址中的信息;
(b)如果检测到该地址中的信息与预设的成功信息相一致,则返回初始化运行成功的结果;
(c)如果检测到该地址中的信息与预设的失败信息相一致,则返回初始化运行失败的结果;
(5)如果初始化运行失败,则微处理器单元进行错误处理,所述的微处理器单元进行错误处理,包括以下步骤:
(a)微处理器单元上报失败;
(b)停止后续的运行代码的加载,并等待进一步指令;
(6)如果初始化运行成功,则微处理器单元向DSP芯片中加载后续运行代码,执行后续处理流程。
2.根据权利要求1所述的DSP芯片中实现运行代码加载的方法,其特征在于,所述的只需要执行一次的代码至少包括变量初始化代码、表格赋值代码、内存清零代码和自检部分代码。
CN2007101707310A 2007-11-21 2007-11-21 Dsp芯片中实现运行代码加载的方法 Active CN101441572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101707310A CN101441572B (zh) 2007-11-21 2007-11-21 Dsp芯片中实现运行代码加载的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101707310A CN101441572B (zh) 2007-11-21 2007-11-21 Dsp芯片中实现运行代码加载的方法

Publications (2)

Publication Number Publication Date
CN101441572A CN101441572A (zh) 2009-05-27
CN101441572B true CN101441572B (zh) 2012-04-11

Family

ID=40726020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101707310A Active CN101441572B (zh) 2007-11-21 2007-11-21 Dsp芯片中实现运行代码加载的方法

Country Status (1)

Country Link
CN (1) CN101441572B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628643A (zh) * 2018-03-30 2018-10-09 深圳市伟文无线通讯技术有限公司 单片机系统软件加载方法
CN111352798A (zh) * 2020-01-19 2020-06-30 湖北三江航天红峰控制有限公司 一种基于dsp芯片的多次引导程序执行方法及装置
CN117555544A (zh) * 2022-08-04 2024-02-13 华为技术有限公司 一种应用加速方法、装置及相关设备
CN115828805A (zh) * 2022-10-21 2023-03-21 芯华章科技(北京)有限公司 分割逻辑系统设计的方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1629805A (zh) * 2003-12-18 2005-06-22 中国电子科技集团公司第三十研究所 运用于dsp的动态加载方法
CN1797336A (zh) * 2004-12-28 2006-07-05 光宝科技股份有限公司 可自动更新嵌入式系统的系统软件的装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1629805A (zh) * 2003-12-18 2005-06-22 中国电子科技集团公司第三十研究所 运用于dsp的动态加载方法
CN1797336A (zh) * 2004-12-28 2006-07-05 光宝科技股份有限公司 可自动更新嵌入式系统的系统软件的装置及方法

Also Published As

Publication number Publication date
CN101441572A (zh) 2009-05-27

Similar Documents

Publication Publication Date Title
CN101441572B (zh) Dsp芯片中实现运行代码加载的方法
CN101697125A (zh) 一种开发环境转换的方法及装置
CN101458629B (zh) 嵌入式实时操作系统中实现动态加载的方法和装置
CN104102506A (zh) 一种基于ARM平台的Android启动加速方法
CN103605540B (zh) 基于安卓系统的快速写入flash镜像的方法
EP1313011A3 (en) Intermediate code execution system, intermediate code execution method, and computer program product for executing intermediate code
CN105224370A (zh) 一种加载elf文件的方法和装置
CN101236503A (zh) 一种热部署实体类组件
CN101593294A (zh) 动态配置工作流的方法和系统
CN104573122A (zh) 一种从AIX平台向K-UX平台迁移的Oracle数据库迁移工具
ZA202203678B (en) Enhanced concurrency garbage collection stack scanning
CN103729184A (zh) 一种软件组件组合构建方法
CN101887410A (zh) 文件转换装置、文件转换方法以及文件转换程序
CN103513966A (zh) 基于组件的php开发框架
CN104991860A (zh) Web前端自动化开发方法与系统
CN102455903A (zh) 一种用户应用界面的生成方法
CN1838074A (zh) 一种64位视窗操作系统下获取函数参数的方法及系统
CN102566481B (zh) 一种基于c语言的plc控制系统及其实现方法
US20050060272A1 (en) Embedded system program code reduction method and system
CN1834911B (zh) 实现程序加载运行的方法
CN101055542A (zh) 一种交叉集成开发环境中的符号调试方法及系统
CN101561884B (zh) 一种可变数据印刷过程中的脚本实现方法及装置
CN101236491A (zh) 构造动态组件的方法和系统
CN100426237C (zh) 一种嵌入式系统运行时堆栈溢出保护方法
CN101256501A (zh) 软件解压缩启动方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170703

Address after: 201203 Shanghai Zhangjiang High Tech Park of Pudong New Area Chunxiao Road No. 439 Building No. 2

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: The Zhangjiang hi tech park Shanghai City Chenhui road 201203 Lane 377 No. 42

Patentee before: Shanghai Mobilepeak Semiconductor Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180409

Address after: The 300456 Tianjin FTA test area (Dongjiang Bonded Port) No. 6865 North Road, 1-1-1802-7 financial and trade center of Asia

Patentee after: Xinji Lease (Tianjin) Co.,Ltd.

Address before: 201203 Shanghai Zhangjiang High Tech Park of Pudong New Area Chunxiao Road No. 439 Building No. 2

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20090527

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xinji Lease (Tianjin) Co.,Ltd.

Contract record no.: 2018990000196

Denomination of invention: Method for implementing operation code loading in DSP chip

Granted publication date: 20120411

License type: Exclusive License

Record date: 20180801

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221020

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 300456 1-1-1802-7, north area of financial and Trade Center, No. 6865, Asia Road, Tianjin pilot free trade zone (Dongjiang Bonded Port Area)

Patentee before: Xinji Lease (Tianjin) Co.,Ltd.