本發明涉及汽車軟件,具體而言,涉及一種汽車的軟件架構、汽車軟件代碼的生成方法及裝置。
背景技術:
1、相關技術中,由于人們對汽車需求的差異性以及汽車硬件、配置的多樣性,導致汽車嵌入式軟件功能的組合多樣化,其次由于控制器硬件及芯片變化引起的控制器內存分布變化,再者目前汽車控制軟件大都存在傳統軟件架構和autosar(automotive?open?systemarchitecture,汽車開放系統架構)軟件架構共存的局面,這幾方面原因都導致應用層軟件無法通用,每一個新項目開始時都需要對接整車功能并先行評估,同時應用層軟件也需要進行相應更改,軟件的可靠性需要進一步驗證,投入大量時間與人力。
2、針對相關技術中存在的上述問題,暫未發現高效且準確的解決方案。
技術實現思路
1、本發明提供了一種汽車的軟件架構、汽車軟件代碼的生成方法及裝置,以解決相關技術中的技術問題。
2、根據本發明的一個實施例,提供了一種汽車的軟件架構,包括應用層和基礎層,其中,所述應用層包括:功能模塊層,包括若干個功能模塊,用于運行所述若干個功能模塊的功能策略;定制接口層,用于對所述應用層與所述基礎層之間傳輸的接口變量進行轉換及校驗,以實現所述應用層和所述基礎層進行解耦;平臺配置層,用于根據汽車控制器支持的平臺類型對所述功能模塊的數據變量內存和代碼進行適應性配置,其中,所述平臺類型包括以下之一:嵌入式架構、汽車開放系統架構。
3、可選的,所述平臺配置層包括:內存映射分配模塊,用于對功能模塊在數據字典文件中的變量類型的初始數據進行二次分配,其中,所述功能模塊包括策略邏輯信息和數據信息及模型屬性信息,所述策略邏輯信息存儲在模型文件中,所述數據信息及模型屬性信息存儲在所述數據字典文件中,所述數據信息包括變量類型;汽車開放系統框架配置模塊,用于在功能模塊和定制接口層配置汽車開放系統的第一配置信息;數據字典配置模塊,用于在功能模塊和定制接口層的數據字典文件中預設的多個數據字典配置模板中選取目標配置模板,所述目標配置模板用于生成與所述平臺類型適配的代碼。
4、可選的,所述內存映射分配模塊預置多種二次分配策略,每種二次分配策略對應一種實際內存空間的劃分需求。
5、可選的,所述數據字典文件中預設多種數據單元類型,其中,每種數據單元類型包括以下字段:變量類型、變量維度、變量最小值、變量最大值。
6、可選的,所述第一配置信息位于所述模型文件中,所述第一配置信息包括汽車開放系統對應的函數信息、運行實體、端口映射及xml選項信息。
7、可選的,所述目標配置模板包含仿真及生成代碼所需的第二配置信息,所述第二配置信息包括:模型診斷內容、系統目標配置、代碼生成源碼風格。
8、可選的,所述定制接口層包括:信號輸入接口,包括第一變量改寫開關,用于接收所述基礎層的輸入變量,轉換所述輸入變量的數據類型,對所述輸入變量的有效性進行判斷,根據所述第一變量改寫開關的開關狀態對所述輸入變量進行改寫,輸入到所述功能模塊層;信號輸出接口,包括第二變量改寫開關,用于根據所述第二變量改寫開關的開關狀態對輸出變量進行改寫,并轉換數據類型,將所述輸出變量輸出到所述基礎層。
9、可選的,所述功能模塊層中的每個功能模塊內置有標定變量,所述標定變量用于表征是否啟用對應功能模塊。
10、根據本發明的另一個實施例,提供了一種汽車軟件代碼的生成方法,應用在上述實施例所述的汽車的軟件架構中,包括:接收軟件安裝信息,其中,所述軟件安裝信息用于指示運行軟件代碼的汽車控制器支持的平臺類型;根據所述平臺類型生成應用層代碼和/或汽車開放系統架構的接口描述arxml文件;若為嵌入式架構,采用所述應用層代碼和基礎層代碼編譯生成軟件安裝包的二進制文件;若為汽車開放系統架構,使用所述arxml文件編譯生成運行虛擬總線接口rte代碼,采用所述應用層代碼、所述rte代碼、以及基礎層代碼編譯生成軟件安裝包的二進制文件。
11、可選的,根據所述平臺類型生成應用層代碼包括:加載所述平臺類型的定制接口層的模型文件;若所述平臺類型為嵌入式架構,選擇所述功能模塊層的數據字典文件中的配置模板為嵌入式配置,選取嵌入式代碼生成模板;采用所述嵌入式配置和所述嵌入式代碼生成模板生成第一應用層代碼;若所述平臺類型為汽車開放系統架構,選擇所述功能模塊層的數據字典文件中的配置模板為汽車開放系統配置,選取汽車開放系統代碼生成模板,采用所述汽車開放系統配置和所述汽車開放系統代碼生成模板生成第二應用層代碼和所述定制接口層的arxml文件。
12、可選的,在采用所述應用層代碼和基礎層代碼編譯生成軟件安裝包的二進制文件之后,所述方法還包括:將所述二進制文件刷寫至所述汽車控制器;配置每個功能模塊的標定變量,其中,所述標定變量用于表征是否啟用對應功能模塊。
13、根據本發明的另一個實施例,提供了一種汽車軟件代碼的生成裝置,應用在上述實施例所述的汽車的軟件架構中,包括:接收模塊,用于接收軟件安裝信息,其中,所述軟件安裝信息用于指示運行軟件代碼的汽車控制器支持的平臺類型;第一生成模塊,用于根據所述平臺類型生成應用層代碼和/或autosar架構的接口描述文件arxml;第二生成模塊,用于若為嵌入式架構,采用所述應用層代碼和基礎層代碼編譯生成軟件安裝包的二進制文件;若為autosar架構,使用所述arxml文件編譯生成運行虛擬總線接口rte代碼,采用所述應用層代碼、所述rte代碼、以及基礎層代碼編譯生成軟件安裝包的二進制文件。
14、可選的,所述第一生成模塊包括:加載單元,用于加載所述平臺類型的定制接口層的模型文件;第一生成單元,用于若所述平臺類型為嵌入式架構,選擇所述功能模塊層的數據字典文件中的配置模板為嵌入式配置,選取嵌入式代碼生成模板;采用所述嵌入式配置和所述嵌入式代碼生成模板生成第一應用層代碼;第二生成單元,用于若所述平臺類型為autosar架構,選擇所述功能模塊層的數據字典文件中的配置模板為autosar配置,選取autosar代碼生成模板,采用所述autosar配置和所述autosar代碼生成模板生成第二應用層代碼和所述定制接口層的arxml文件。
15、可選的,所述裝置還包括:刷寫模塊,用于在所述第二生成模塊采用所述應用層代碼和基礎層代碼編譯生成軟件安裝包的二進制文件之后,將所述二進制文件刷寫至所述汽車控制器;配置模塊,用于配置每個功能模塊的標定變量,其中,所述標定變量用于表征是否啟用對應功能模塊。
16、根據本技術實施例的另一方面,還提供了一種存儲介質,該存儲介質包括存儲的程序,程序運行時執行上述的步驟。
17、根據本技術實施例的另一方面,還提供了一種電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;其中:存儲器,用于存放汽車程序;處理器,用于通過運行存儲器上所存放的程序來執行上述方法中的步驟。
18、本技術實施例還提供了一種包含指令的汽車程序產品,當其在計算機上運行時,使得計算機執行上述方法中的步驟。
19、本發明的有益效果:
20、1、通過在應用層中增加平臺配置層和定制接口層,可實現將應用層與基礎層解耦,同時可在不更改應用層功能模塊模型和代碼基礎上匹配不同內存分配,可同時兼容傳統嵌入式代碼和autosar代碼,兼容傳統架構和autosar架構,實現了應用層軟件的平臺化;
21、2、通過平臺配置可選擇性生成傳統嵌入式代碼或符合autosar要求的代碼,從而實現傳統架構與autosar架構兼容;
22、3、同規格平臺配置層中的內存映射模塊對功能模塊的變量類型進行二次分配,從而實現應用層軟件中數據變量的內存的重新配置;
23、4、不同項目功能的組合直接通過標定實現,無須更改應用層邏輯功能,實現應用層軟件的平臺化同時提高軟件的穩定性和可靠性。