System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于IOMMU的DSP固件使用方法、系统芯片及车机技术方案_技高网

基于IOMMU的DSP固件使用方法、系统芯片及车机技术方案

技术编号:40216866 阅读:7 留言:0更新日期:2024-02-02 22:24
基于IOMMU的DSP固件使用方法、系统芯片及车机,该方法包括:基于相应的加载地址,将至少两个DSP固件,对应预加载至内存中;响应于接收到DSP固件运行指令,将DSP固件运行指令相应的待运行固件的加载地址,映射至DSP固件运行IOVA空间,并确定相应的IOVA地址;其中,上述至少两个DSP固件的DSP固件运行IOVA空间相同;操作DSP基于IOVA地址,运行该待运行固件。本申请的DSP固件使用方法,不仅能够实现高切换速度,而且开发的便捷性高、使用的灵活性佳,应用于需要较高切换速度的场景时,效果尤为显著。

【技术实现步骤摘要】

本申请涉及固件应用,特别是涉及基于iommu的dsp固件使用方法、系统芯片及车机。


技术介绍

1、在包含cpu(central processing unit,中央处理器)和dsp(digital signalprocessors,数字信号处理器)的soc(system on chip,系统芯片)中,通常情况下,dsp固件由cpu进行加载,dsp和cpu之间通信用的内存缓冲也由cpu进行管理。

2、而由于dsp在架构、资源限制和效率方面的原因,通常dsp为单进程系统,且本身没有mmu(memory management unit),若将所有功能集成在一个固件中,则资源的分配难度和实现的复杂度都很高。因此在实际使用中,通常需要不同的开发人员各自开发相应的dsp固件,来实现不同功能,这就需要进行多个dsp固件的加载和使用切换。然而,对于多个dsp固件,无法实现兼顾高切换速度、开发的便捷性和使用的灵活性。


技术实现思路

1、为了解决现有技术中存在的至少一个问题,本申请的目的在于提供基于iommu的dsp固件使用方法、系统芯片及车机,不仅能够实现高切换速度,而且开发的便捷性高、使用的灵活性佳,应用于需要较高切换速度的场景时,效果尤为显著。

2、为实现上述目的,本申请提供的基于iommu的dsp固件使用方法,应用于系统芯片;所述系统芯片,包括中央处理器cpu、数字信号处理器dsp和内存;其中,所述dsp被配置有输入输出内存管理单元iommu和至少两个dsp固件;在cpu端,所述方法包括,

3、基于相应的加载地址,将所述至少两个dsp固件,对应预加载至所述内存中;

4、响应于接收到dsp固件运行指令,将所述dsp固件运行指令相应的待运行固件的加载地址,映射至dsp固件运行iova空间,并确定相应的iova地址;其中,所述至少两个dsp固件的所述dsp固件运行iova空间相同;

5、操作所述dsp基于所述iova地址,运行所述待运行固件。

6、进一步地,所述基于相应的加载地址,将所述至少两个dsp固件,对应预加载至所述内存中的步骤前,所述方法还包括,

7、对所述dsp的iova空间进行固定分配,以分配出固定的dsp固件运行iova空间;

8、基于所述iova空间的所述固定分配,生成所述dsp固件。

9、更进一步地,所述对所述dsp的iova空间进行固定分配,以分配出固定的dsp固件运行iova空间的步骤,包括,

10、将所述dsp的iova空间,至少划分为外设iova空间、dsp固件运行iova空间、dsp和cpu的共享内存iova空间、以及数据缓冲区iova空间。

11、进一步地,所述基于所述iova空间的所述固定分配,生成所述dsp固件的步骤包括,

12、基于所述iova空间分配,配置所述dsp的链接脚本;

13、根据所述链接脚本,链接生成目标格式的所述至少两个dsp固件。

14、更进一步地,所述目标格式为可执行可链接文件格式。

15、进一步地,所述基于相应的加载地址,将所述至少两个dsp固件,对应预加载至所述内存中的步骤前,所述方法还包括,

16、基于所述至少两个dsp固件的固件id、与所述固件id对应的所述加载地址和固件大小,生成固件加载地址表。

17、更进一步地,所述方法还包括,

18、响应于接收到所述dsp固件运行指令,确定待运行的固件id,并通过查询所述固件加载地址表,根据所述待运行的固件id,确定对应的所述加载地址;

19、将相应的待运行固件中的全部片段进行由物理地址至iova地址的第一映射。

20、更进一步地,将所述待运行固件中的一个片段进行所述第一映射的步骤,包括,

21、从所述待运行固件的程序头部表中,读取该片段在所述待运行固件中的偏移地址和片段大小;

22、根据所述待运行固件的加载地址、所述片段的偏移地址和片段大小,确定所述片段的实际物理页;

23、从所述程序头部表中,读取所述片段的物理地址,用作所述片段的iova地址;

24、将所述片段的实际物理页映射至所述iova地址,并更新所述iommu的固件映射页表。

25、更进一步地,所述更新所述iommu的固件映射页表的步骤后,所述方法还包括,

26、确定所述待运行固件中的全部片段的第一映射情况;

27、响应于所述全部片段未完成所述第一映射,对未完成所述第一映射的片段的其中一个,进行所述第一映射的处理。

28、更进一步地,所述方法还包括,

29、响应于所述全部片段完成所述第一映射,操作所述dsp基于所述iova地址,运行所述待运行固件。

30、进一步地,所述方法还包括,

31、与所述dsp通过共享内存iova空间进行dsp命令交互,并通过数据缓冲区iova空间传递dsp命令的输入输出数据。

32、更进一步地,所述方法包括,

33、对发送给所述dsp的命令分配相应内存;

34、控制所述iommu建立缓冲映射页表,将所述命令相应的内存映射至所述数据缓冲区iova空间;

35、分配输入输出数据的缓冲区,并控制所述iommu将每个缓冲区映射至所述数据缓冲区iova空间,并写入所述缓冲映射页表;

36、对每个命令建立一个dsp缓冲表,在所述dsp缓冲表中填入相应命令用到的所述缓冲区的iova。

37、更进一步地,所述对每个命令建立一个数据缓冲表的步骤后,所述方法还包括,

38、写入通信标志位,并通知所述dsp开始运行所述命令;

39、进入等待状态,以等待所述dsp完成中断;

40、响应于所述通信标志位被dsp置为成功,所述cpu读取相应的输出缓冲区。

41、更进一步地,所述方法还包括,

42、响应于所述通信标志位被dsp置为不成功,控制进入错误处理流程。

43、为实现上述目的,本申请还提供的基于iommu的dsp固件的系统芯片,包括,

44、内存;

45、数字信号处理器dsp,被配置有输入输出内存管理单元iommu和至少两个dsp固件;所述至少两个dsp固件,被配置为对应相同的dsp固件运行iova空间;和,

46、中央处理器cpu,被配置为基于相应的加载地址,将所述至少两个dsp固件,对应预加载至所述内存中;并响应于接收到dsp固件运行指令,将所述dsp固件运行指令相应的dsp固件的加载地址,映射至所述dsp固件运行iova空间,并确定相应的iova地址;

47、所述dsp,还被配置为基于所述iova地址运行所述待运行固件。

48、为实现上述目的,本申请还提供的车机,包括,如上所述的基于iommu本文档来自技高网...

【技术保护点】

1.一种基于IOMMU的DSP固件使用方法,其特征在于,应用于系统芯片;所述系统芯片,包括中央处理器CPU、数字信号处理器DSP和内存;其中,所述DSP被配置有输入输出内存管理单元IOMMU和至少两个DSP固件;在CPU端,所述方法包括,

2.根据权利要求1所述的方法,其特征在于,所述基于相应的加载地址,将所述至少两个DSP固件,对应预加载至所述内存中的步骤前,所述方法还包括,

3.根据权利要求2所述的方法,其特征在于,所述对所述DSP的IOVA空间进行固定分配,以分配出固定的DSP固件运行IOVA空间的步骤,包括,

4.根据权利要求2所述的方法,其特征在于,所述基于所述IOVA空间的所述固定分配,生成所述DSP固件的步骤包括,

5.根据权利要求4所述的方法,其特征在于,所述目标格式为可执行可链接文件格式。

6.根据权利要求1所述的方法,其特征在于,所述基于相应的加载地址,将所述至少两个DSP固件,对应预加载至所述内存中的步骤前,所述方法还包括,

7.根据权利要求6所述的方法,其特征在于,所述方法还包括,p>

8.根据权利要求7所述的方法,其特征在于,将所述待运行固件中的一个片段进行所述第一映射的步骤,包括,

9.根据权利要求8所述的方法,其特征在于,所述更新所述IOMMU的固件映射页表的步骤后,所述方法还包括,

10.根据权利要求9所述的方法,其特征在于,所述方法还包括,

11.根据权利要求1所述的方法,其特征在于,所述方法还包括,

12.根据权利要求11所述的方法,其特征在于,所述方法包括,

13.根据权利要求12所述的方法,其特征在于,所述对每个命令建立一个数据缓冲表的步骤后,所述方法还包括,

14.根据权利要求13所述的方法,其特征在于,所述方法还包括,

15.一种基于IOMMU的DSP固件的系统芯片,其特征在于,包括:

16.一种车机,其特征在于,包括:如权利要求15所述的基于IOMMU的DSP固件的系统芯片。

17.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1至14中任一项所述的基于IOMMU的DSP固件使用方法的步骤。

...

【技术特征摘要】

1.一种基于iommu的dsp固件使用方法,其特征在于,应用于系统芯片;所述系统芯片,包括中央处理器cpu、数字信号处理器dsp和内存;其中,所述dsp被配置有输入输出内存管理单元iommu和至少两个dsp固件;在cpu端,所述方法包括,

2.根据权利要求1所述的方法,其特征在于,所述基于相应的加载地址,将所述至少两个dsp固件,对应预加载至所述内存中的步骤前,所述方法还包括,

3.根据权利要求2所述的方法,其特征在于,所述对所述dsp的iova空间进行固定分配,以分配出固定的dsp固件运行iova空间的步骤,包括,

4.根据权利要求2所述的方法,其特征在于,所述基于所述iova空间的所述固定分配,生成所述dsp固件的步骤包括,

5.根据权利要求4所述的方法,其特征在于,所述目标格式为可执行可链接文件格式。

6.根据权利要求1所述的方法,其特征在于,所述基于相应的加载地址,将所述至少两个dsp固件,对应预加载至所述内存中的步骤前,所述方法还包括,

7.根据权利要求6所述的方法,其特征在于,所述方法还包括,

...

【专利技术属性】
技术研发人员:吴斌
申请(专利权)人:上海励驰半导体有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1