CN114546441A - 一种dsp与cpu通信方式的动态设定方法 - Google Patents

一种dsp与cpu通信方式的动态设定方法 Download PDF

Info

Publication number
CN114546441A
CN114546441A CN202210136810.4A CN202210136810A CN114546441A CN 114546441 A CN114546441 A CN 114546441A CN 202210136810 A CN202210136810 A CN 202210136810A CN 114546441 A CN114546441 A CN 114546441A
Authority
CN
China
Prior art keywords
communication
dsp
cpu
handshake
mode
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.)
Pending
Application number
CN202210136810.4A
Other languages
English (en)
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.)
Nanjing Semidrive Technology Co Ltd
Original Assignee
Nanjing Semidrive Technology 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 Nanjing Semidrive Technology Co Ltd filed Critical Nanjing Semidrive Technology Co Ltd
Priority to CN202210136810.4A priority Critical patent/CN114546441A/zh
Publication of CN114546441A publication Critical patent/CN114546441A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

一种DSP与CPU通信方式的动态设定方法,包括以下步骤:1)在链接脚本中增加存放全局符号的通信用数据段,增加通信方式设定的处理代码,编译并生成DSP固件;2)设定DSP与CPU所用的通信共享内存地址,加载DSP固件;3)启动DSP,读取所述通信共享内存地址的内容,并根据内容中的模式进行配置。本发明的DSP与CPU通信方式的动态设定方法,将通信共享内存地址和通信方式的设置放在加载DSP固件时进行动态配置,避免了对于不同项目不同的资源分配都必须重新编译各自的DSP固件并升级文件系统,减少了资源配置的复杂度。

Description

一种DSP与CPU通信方式的动态设定方法
技术领域
本发明涉及数字信号处理运行控制技术领域,尤其涉及一种DSP与CPU通信方式的动态设定方法。
背景技术
随着现代集成电路产业的发展,越来越多的电子产品中应用了DSP芯片,以汽车电子为例,需要基于DSP芯片实现图像,语音,以及神经网络等各种处理,并与应用CPU之间进行数据交互与控制执行,完成异构计算。
为了能够使得DSP芯片和应用CPU之间的交互得以完成,设定DSP与CPU之间的通信方式是不可或缺的重要步骤。其中,包括设定DSP与CPU所用的通信共享内存地址,以及两者分别采用中断或者轮询的通信方式。
现有技术中,DSP与CPU所用的通信共享内存地址和通信方式一般是在DSP固件编译时直接确定,当CPU加载DSP固件时,按照固件中确定的方式进行通信。这种做法灵活性不足,因为系统资源配置在实际项目中经常会发生调整,如果固定了DSP与CPU通信之间的通信共享内存地址和通信方式,对于不同的项目,有不同的资源配置,都需要修改编译DSP固件,增加了不同项目系统资源调整的复杂程度。
发明内容
为了解决现有技术的缺陷,本发明的目的在于提供一种DSP与CPU通信方式的动态设定方法,在加载DSP固件时,根据需求动态地设定DSP与CPU所用的通信共享内存地址,并分别配置DSP和CPU使用中断或者轮询的模式,保持系统的灵活性。
为了实现上述目的,本发明提供的DSP与CPU通信方式的动态设定方法,包括以下步骤:
1)在链接脚本中增加存放全局符号的通信用数据段,增加通信方式设定的处理代码,编译并生成DSP固件;
2)设定DSP与CPU所用的通信共享内存地址,加载DSP固件;
3)启动DSP,读取所述通信共享内存地址的内容,并根据内容中的模式进行配置。
进一步地,所述步骤1)还包括,
在链接脚本中增加名为communication section的通信用数据段;
定义communication_base,作为DSP与CPU通信使用的通信共享内存地址的全局符号,并放入所述通信用数据段中;
定义handshake_data,用于放置DSP和CPU使用的通信方式的配置的全局符号,并放入所述通信用数据段中;
增加通信方式设定的处理代码;
编译并生成ELF格式的DSP固件。
进一步地,所述handshake_data的数据结构为:
cpu_mode CPU通信模式配置,0:轮询1:中断
dsp_mode DSP通信模式配置,0:轮询1:中断
cpu_irq CPU irq号,供DSP触发CPU中断
dsp_irq DSP irq号,供DSP注册中断处理函数
进一步地,所述步骤2)还包括,
CPU读取DSP固件到内存中,寻找文件中communication section和communication_base,并确认.communicaion段在固件中存在;
修改communication_base符号所在地址的内容为需要的通信共享内存地址;
将handshake_data表放入communication section中;
开始DSP加载,将所有需要加载的代码段和数据段到指定的内存地址;
在通信共享内存地址handshake flag握手状态标志位写入HANDSHAKE_START。
进一步地,所述communication_base的内容为:
handshake flag 握手标志位:开始-START,成功-READY,失败-FAILED
buffers DSP和CPU交互内容
其中,handshake flag为握手状态标志位,Buffers为可读写的共享内存。
进一步地,所述步骤3)还包括,
DSP开始运行,读取communication_base指向的通信共享内存地址的内容,并确认handshake flag握手标志位的内容为HANDSHAKE_START;
DSP读取handshake_data的内容,并根据内容中的模式配置;
如配置成功,在communication_base指向的通信共享内存地址handshake flag握手标志位处写入HANDSHAKE_READY,否则写入HANDSHAKE_FAILED;
配置成功,根据模式配置进入模式运行,否则DSP停止。
更进一步地,所述DSP读取handshake_data的内容,并根据内容中的模式配置的步骤还包括,
若cpu_mode为irq模式,根据cpu_irq内容配置中断发送函数;
若dsp_mode为irq模式,根据dsp_irq内容注册中断处理函数。
为了实现上述目的,本发明还提供一种电子设备,包括,存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行上述DSP与CPU通信方式的动态设定方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述DSP与CPU通信方式的动态设定方法的步骤。
本发明提供的DSP与CPU通信方式的动态设定方法,与现有技术相比具有如下的有益效果:
通信共享内存地址和通信方式的设置放在加载DSP固件时动态配置,在系统资源配置发生变化时,避免了对于不同项目不同的资源分配都必须重新编译各自的DSP固件并升级文件系统,减少了资源配置的复杂度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的DSP与CPU通信方式的动态设定方法流程图;
图2为根据本发明的DSP固件编译处理流程图;
图3为根据本发明的CPU加载DSP固件处理流程图;
图4为根据本发明的DSP启动处理流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的DSP与CPU通信方式的动态设定方法流程图,下面将参考图1,对本发明的本发明的DSP与CPU通信方式的动态设定方法进行详细描述。
首先,在步骤101,进行DSP固件编译。
在本发明实施例中,在链接脚本中增加存放作为DSP与CPU使用的通信共享内存地址的全局符号(communication_base)和用来放置DSP和CPU使用的通信方式的配置的全局符号(handshake_data)的通信用数据段(communication section)、增加通信方式设定的处理代码,编译并生成ELF格式的DSP固件。
在步骤102,CPU加载DSP固件,设定DSP与CPU所用的通信共享内存地址。
在本发明实施例中,CPU读取DSP固件到内存中,查询communication section并修改communication_base和handshake_data,将所有需加载的communication section加载到指定内存,完成DSP与CPU所用的通信共享内存地址的设定。
在步骤103,DSP启动处理。
在本发明实施例中,读取通信共享内存地址,并根据读取的内容中的模式进行配置,完成DSP启动。
以上步骤完成之后,DSP和CPU就可以通过communication_base指向的通信共享内存地址处的buffers读写交互内容,通过所配置的中断或者轮询,进行通信。
实施例2
图2为根据本发明的DSP固件编译处理流程图,下面将参考图2,对本发明的DSP固件编译处理流程进行详细描述。
本发明实施例中,DSP固件编译时的处理主要是增加一个通信用数据段(section)和两个符号,以及相关处理代码。
在步骤201,在链接脚本中增加一个名为communication section的通信用数据段:
Figure BDA0003505150260000051
在步骤202,定义全局符号communication_base,作为DSP与CPU使用的通信共享内存地址,定义该地址为0,放在步骤201中增加的通信字段中:
_attribute_((section(″.communication″)))void*communication_base=0。
在步骤203,定义全局符号handshake_data,用来放置DSP和CPU使用的通信方式的配置,放在步骤201中定义的section中:
_attribute_((section(″.communication″)))struct handshake handshake_data={0}。
本发明实施例中,handshake_data的数据结构如下:
cpu_mode CPU通信模式配置,0:轮询1:中断
dsp_mode DSP通信模式配置,0:轮询1:中断
cpu_irq CPU irq号,供DSP触发CPU中断
dsp_irq DSP irq号,供DSP注册中断处理函数
在步骤204,增加通信方式设定的处理代码,用于读取communication_base和handshake_data的内容并进行处理。
在步骤205,编译并生成ELF格式的固件。
实施例3
图3为根据本发明的CPU加载DSP固件处理流程图,下面将参考图3,对本发明的CPU加载DSP固件处理流程进行详细描述。
在步骤301,读取DSP固件到内存中,寻找文件中communication section和全局符号communication_base,并确认.communicaion段在固件中存在。
本发明实施例中,固件readelf工具显示的elf格式固件文件的section表如下:
Figure BDA0003505150260000061
其中,Nr表示section的编号,Name表示section的名称,Type表示section的类型(strtab表示该section为字符串表,symtab表示该section为符号表,progbits表示为代码段),Addr表示该section加载到的内存地址,Off为该section在elf文件中的偏移,Size表示该seciotn的大小。Addr、Off、Size的具体值在编译时由编译器动态决定。
通过.symtab和.strtab找到符号communication_base,确认其ndx为.communication的nr。ndx、nr均为编号,readelf工具显示section和symbol table的名字略有不同
readelf工具打印出的communication_base全局符号表(symbol table)项为:
Figure BDA0003505150260000062
其中,num是编号,value是地址,size是改符号占用的内存大小,type为类型,bind为局部还是全局,vis为可见范围,ndx为该符号所在的段(section)的编号(这里的num,value和ndx编译时由编译器动态决定,不固定)这里主要是展示一下ndx会和前面section表的nr一致。
在步骤302,将全局符号communication_base地址处的内容修改为需要的通信共享内存地址。
本发明实施例中,将步骤301中获得的communication_base全局符号的Value项减去communication section的Addr项,即可得到communication_base在communicationsection中的偏移。而communication section在固件中的偏移可由固件section中的Off得到,两者相加,即可得到communication_base符号在固件中的偏移,再加上读取固件放置到内存的地址,可得到该符号在内存中的具体地址,将其内容修改为需要的值。
在步骤303,在communication section中放入handshake_data表。
本发明实施例中,readelf工具打印出的communication_base全局符号表项为:
Figure BDA0003505150260000071
其中,Num是编号,Value是地址,Size是改符号占用的内存大小,Type为类型,Bind为局部还是全局,Vis为可见范围,Ndx为该符号所在的段(section)的编号,Name为符号名,这里只是表明在elf的符号表中名为handshake_data的符号存在。
本发明实施例中,使用与步骤302中相同的方式获得handshake_data表在固件中的偏移。将handshake_data表内容修改为按照handshake的结构放置的cpu通信模式、dsp通信模式、cpu的irq和dsp的irq。
在步骤304,已读取到内存中的固件完成所有修改后,开始加载,将所有需加载的代码段和数据段section加载到指定内存(包括dsp内部ram)。
在步骤305,将HANDSHAKE_START(握手启动)写入到通信共享内存地址handshakeflag握手状态标志位,等待DSP回应。
本发明实施例中,communication_base指向的通信共享内存地址处的内容为:
handshake flag 握手标志位:开始-START,成功-READY,失败-FAILED
buffers DSP和CPU交互内容
其中,handshake flag是握手状态标志位,cpu会写入HANDSHAKE_START开始握手过程;DSP会根据handshake_data表中的设置进行配置,如果配置成功,会写入HANDSHAKE_READY,失败则写入HANDSHAKE_FAILED。CPU根据返回的flag确定下一步操作;Buffers是一段双方均可读写的共享内存,可以根据需要分配存放业务相关的交互数据,对buffers的操作为常规操作。
实施例4
图4为根据本发明的DSP启动处理流程图,下面将参考图4,对本发明的DSP启动处理流程进行详细描述。
在步骤401,初始化运行时环境工作。
在步骤402,读取communication_base全局符号指向的通信共享内存地址的内容。
本发明实施例中,communication_base的内容已被CPU在加载时写入为需要的通信共享内存地址,读取此地址。
在步骤403,若此地址的内容为HANDSHAKE_START,进行下一步骤,否则返回步骤402重新读取。
在步骤404,读取handshake_data的内容,并根据内容中的模式配置。
本发明实施例中,handshake_data的内容已被CPU写入为所需配置。读取handshake_data的内容,按handshake的结构进行解析:
若cpu_mode为1即irq模式,根据cpu_irq内容配置中断发送函数;
若dsp_mode为1即irq模式,根据dsp_irq内容注册中断处理函数。
在步骤405,根据配置结果将HANDSHAKE_START或者HANDSHAKE_FAILED写入communication_base全局符号指向的通信共享内存地址handshake flag握手状态标志位。
本发明实施例中,如果配置成功,往communication_base指向的通信共享内存地址handshake flag握手状态标志位写入HANDSHAKE_READY,完成通信方式的设置。如果配置失败,往communication_base指向的通信共享内存地址handshake flag握手状态标志位写入HANDSHAKE_FAILED,DSP停止运行。
在配置成功的情况下,若dsp_mode为1即irq模式,进入中断等待,等待CPU发送中断;若dsp_mode为0即polling模式,循环读取buffers内存处等待CPU写入新数据。
在步骤406,根据dsp_mode的配置进入irq模式或者polling模式继续运行。
实施例5
本发明的一个实施例中,还提供一种电子设备,包括,存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行上述DSP与CPU通信方式的动态设定方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述DSP与CPU通信方式的动态设定方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种DSP与CPU通信方式的动态设定方法,包括以下步骤:
1)在链接脚本中增加存放全局符号的通信用数据段,增加通信方式设定的处理代码,编译并生成DSP固件;
2)设定DSP与CPU所用的通信共享内存地址,加载DSP固件;
3)启动DSP,读取所述通信共享内存地址的内容,并根据内容中的模式进行配置。
2.根据权利要求1所述的DSP与CPU通信方式的动态设定方法,其特征在于,所述步骤1)还包括,
在链接脚本中增加名为communication section的通信用数据段;
定义communication_base,作为DSP与CPU通信使用的通信共享内存地址的全局符号,并放入所述通信用数据段中;
定义handshake_data,用于放置DSP和CPU使用的通信方式的配置的全局符号,并放入所述通信用数据段中;
增加通信方式设定的处理代码;
编译并生成ELF格式的DSP固件。
3.根据权利要求2所述的DSP与CPU通信方式的动态设定方法,其特征在于,
所述handshake_data的数据结构为:
Figure DEST_PATH_IMAGE002
4.根据权利要求2所述的DSP与CPU通信方式的动态设定方法,其特征在于,所述步骤2)还包括,
CPU读取DSP固件到内存中,寻找文件中communication section和communication_base,并确认.communicaion段在固件中存在;
修改communication_base符号所在地址的内容为需要的通信共享内存地址;
将handshake_data表放入communication section中;
开始DSP加载,将所有需要加载的代码段和数据段到指定的内存地址;
在通信共享内存地址handshake flag握手状态标志位写入HANDSHAKE_START。
5.根据权利要求4所述的DSP与CPU通信方式的动态设定方法,其特征在于,
所述communication_base的内容为:
Figure DEST_PATH_IMAGE004
其中,handshake flag为握手状态标志位,Buffers为可读写的共享内存。
6.根据权利要求2所述的DSP与CPU通信方式的动态设定方法,其特征在于,所述步骤3)还包括,
DSP开始运行,读取communication_base指向的通信共享内存地址的内容,并确认handshake flag握手标志位的内容为HANDSHAKE_START;
DSP读取handshake_data的内容,并根据内容中的模式配置;
如配置成功,在communication_base指向的通信共享内存地址handshake flag握手标志位处写入HANDSHAKE_READY,否则写入HANDSHAKE_FAILED;
配置成功,根据模式配置进入模式运行,否则DSP停止。
7.根据权利要求6所述的DSP与CPU通信方式的动态设定方法,其特征在于,所述DSP读取handshake_data的内容,并根据内容中的模式配置的步骤还包括,
若cpu_mode为irq模式,根据cpu_irq内容配置中断发送函数;
若dsp_mode为irq模式,根据dsp_irq内容注册中断处理函数。
8.一种电子设备,其特征在于,包括,存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行权利要求1-7任一项所述的DSP与CPU通信方式的动态设定方法的步骤。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述计算机指令运行时执行权利要求1-7任一项所述的DSP与CPU通信方式的动态设定方法的步骤。
CN202210136810.4A 2022-02-15 2022-02-15 一种dsp与cpu通信方式的动态设定方法 Pending CN114546441A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210136810.4A CN114546441A (zh) 2022-02-15 2022-02-15 一种dsp与cpu通信方式的动态设定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210136810.4A CN114546441A (zh) 2022-02-15 2022-02-15 一种dsp与cpu通信方式的动态设定方法

Publications (1)

Publication Number Publication Date
CN114546441A true CN114546441A (zh) 2022-05-27

Family

ID=81675473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210136810.4A Pending CN114546441A (zh) 2022-02-15 2022-02-15 一种dsp与cpu通信方式的动态设定方法

Country Status (1)

Country Link
CN (1) CN114546441A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453318A (zh) * 2023-12-25 2024-01-26 上海励驰半导体有限公司 基于iommu的dsp固件使用方法、系统芯片及车机

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453318A (zh) * 2023-12-25 2024-01-26 上海励驰半导体有限公司 基于iommu的dsp固件使用方法、系统芯片及车机
CN117453318B (zh) * 2023-12-25 2024-03-15 上海励驰半导体有限公司 基于iommu的dsp固件使用方法、系统芯片及车机

Similar Documents

Publication Publication Date Title
CN104424002B (zh) 一种基于插件机制的动态加载组件方法和系统
RU2473111C1 (ru) Способ динамической компоновки программы на встроенной платформе и встроенная платформа
JPH0836488A (ja) ダイナミック・パッチングを使用するランタイム・エラー・チェック方法と装置
JP2006092544A (ja) プリオペレーティングシステム環境におけるモジュールの動的リンク
US20060200815A1 (en) Electronic Device and Method for Updating Related Programs
US20050204351A1 (en) Dynamic addressing (DA) using a centralized DA Manager
JPWO2010073444A1 (ja) バスコントローラ及び初期ブートプログラムのパッチ方法
CN112860473B (zh) 程序运行错误时定位源代码的方法、装置及计算设备
CN107305495A (zh) 实现软件安装包功能修改的方法及终端
CN112015522B (zh) 系统功能扩展方法、装置及计算机可读存储介质
CN111666210A (zh) 一种芯片验证方法及装置
CN114546441A (zh) 一种dsp与cpu通信方式的动态设定方法
CN111061486B (zh) 一种安卓应用程序增量方法
CN117234953B (zh) 一种基于影子代码缓存的内核调试方法
WO2022184112A1 (zh) 安卓系统的应用调试方法、装置、程序、介质及电子设备
CN114780173A (zh) 一种在应用中加载插件的方法、计算设备及存储介质
CN117193872B (zh) 一种基于符号表动态执行的芯片启动固件装置和方法
CN111427617A (zh) 数据处理方法、装置及设备
CN115934423A (zh) 一种基于实时操作系统的嵌入式软件生成方法和系统
CN115994348A (zh) 程序流水线的控制方法、处理装置和存储介质
CN112596751B (zh) 应用程序安装包的编译方法、终端、服务器及存储介质
CN110275710B (zh) 一种Java本地接口一致性检查方法及系统、存储介质及终端
CN113434213A (zh) 一种终端的程序运行方法以及装置
US20240211277A1 (en) Program call stack creation method and unwind stack method and apparatus
CN111459570B (zh) Pdf插件加载方法、电子设备和计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination