本公開(kāi)涉及autosar架構(gòu),尤其涉及一種可并行開(kāi)發(fā)模塊確定方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、基于autosar架構(gòu)的autosar軟件棧中的不同模塊分別屬于autosar架構(gòu)的不同層,比如不同的模塊分別屬于基礎(chǔ)軟件層(basic?software?layer,bsw)和應(yīng)用軟件層(application?software?layer,asw)。
2、相關(guān)技術(shù)中,開(kāi)發(fā)autosar軟件棧中的不同模塊時(shí),以需要開(kāi)發(fā)bsw中的os?kernel模塊和memorymap模塊為例:
3、os?kernel模塊是實(shí)時(shí)操作系統(tǒng)的核心,負(fù)責(zé)任務(wù)調(diào)度、中斷管理、時(shí)間管理等核心功能。os?kernel模塊用于為asw提供實(shí)時(shí)性和多任務(wù)環(huán)境。memorymap模塊用于描述微控制器單元mcu的內(nèi)存布局。memorymap模塊定義了內(nèi)存地址及對(duì)應(yīng)的用途,例如ram、rom、flash等的位置、大小和用途。開(kāi)發(fā)os?kernel模塊時(shí),需要知道哪些內(nèi)存區(qū)域是可以用于任務(wù)堆棧、堆等動(dòng)態(tài)內(nèi)存分配的,而memorymap模塊提供了這些信息。如果memorymap模塊發(fā)生更改,例如ram的大小或位置發(fā)生變化,那么os?kernel模塊也需要進(jìn)行相應(yīng)的調(diào)整。
4、因此,開(kāi)發(fā)bsw中的os?kernel模塊和memorymap模塊時(shí),只能先開(kāi)發(fā)memorymap模塊,再開(kāi)發(fā)os?kernel模塊,即os?kernel模塊和memorymap模塊不能不能并行開(kāi)發(fā)。
5、通常,為了提高autosar軟件棧中需開(kāi)發(fā)的模塊的開(kāi)發(fā)效率,需要將能夠并行開(kāi)發(fā)的模塊同時(shí)開(kāi)發(fā)。但是,相關(guān)技術(shù)中沒(méi)有確定需開(kāi)發(fā)的模塊中哪些模塊能夠并行開(kāi)發(fā)的方法。
技術(shù)實(shí)現(xiàn)思路
1、本公開(kāi)提供了一種可并行開(kāi)發(fā)模塊確定方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
2、根據(jù)本公開(kāi)的第一方面,提供了一種可并行開(kāi)發(fā)模塊確定方法,包括:
3、獲取需開(kāi)發(fā)的至少一個(gè)模塊中每個(gè)模塊的層信息,層信息用于指示對(duì)應(yīng)的模塊所屬的autosar架構(gòu)的層;
4、確定需開(kāi)發(fā)的至少一個(gè)模塊中每個(gè)模塊所屬的autosar架構(gòu)的層;
5、確定屬于autosar架構(gòu)不同層的模塊為可并行開(kāi)發(fā)的模塊。
6、在本公開(kāi)的一些實(shí)施例中,確定屬于autosar架構(gòu)不同層的模塊為可并行開(kāi)發(fā)的模塊之后,可并行開(kāi)發(fā)模塊確定方法包括:
7、確定每一層的模塊的數(shù)量是否大于一個(gè);
8、響應(yīng)于每一層的模塊的數(shù)量均不大于一個(gè),確定每個(gè)模塊為可并行開(kāi)發(fā)的模塊。
9、在本公開(kāi)的一些實(shí)施例中,確定每一層的模塊的數(shù)量是否大于一個(gè)之后,可并行開(kāi)發(fā)模塊確定方法還包括:
10、響應(yīng)于至少一層的模塊的數(shù)量大于一個(gè),確定模塊的數(shù)量大于一個(gè)的層;
11、確定模塊的數(shù)量大于一個(gè)的層中的模塊之間是否具有耦合關(guān)系;
12、確定同一層中不具有耦合關(guān)系的模塊為可并行開(kāi)發(fā)的模塊。
13、在本公開(kāi)的一些實(shí)施例中,確定模塊的數(shù)量大于一個(gè)的層中的模塊之間是否具有耦合關(guān)系,包括:
14、確定模塊的數(shù)量大于一個(gè)的層是否為應(yīng)用軟件層asw,或確定模塊的數(shù)量大于一個(gè)的層是否為基礎(chǔ)軟件層bsw;
15、響應(yīng)于模塊的數(shù)量大于一個(gè)的層為所述asw,確定所述asw中的每個(gè)模塊之間不具有耦合關(guān)系;
16、或,
17、響應(yīng)于模塊的數(shù)量大于一個(gè)的層為所述bsw,根據(jù)預(yù)設(shè)調(diào)用關(guān)系判斷所述bsw中的每個(gè)模塊對(duì)應(yīng)的調(diào)用模塊;其中,所述預(yù)設(shè)調(diào)用關(guān)系指所述asw中的模塊與所述bsw中的模塊之間的調(diào)用關(guān)系,所述調(diào)用模塊指所述asw中的模塊;
18、確定所述bsw中對(duì)應(yīng)的所述調(diào)用模塊不相同的模塊之間不具有耦合關(guān)系。
19、在本公開(kāi)的一些實(shí)施例中,可并行開(kāi)發(fā)模塊確定方法還包括:
20、為每個(gè)可并行開(kāi)發(fā)的模塊創(chuàng)建對(duì)應(yīng)的應(yīng)用程序編程接口api;
21、利用預(yù)設(shè)輸入,通過(guò)api按照不同調(diào)用順序調(diào)用每個(gè)可并行開(kāi)發(fā)的模塊,得到多個(gè)輸出結(jié)果;
22、確定所述多個(gè)輸出結(jié)果一致的所述可并行開(kāi)發(fā)的模塊為能夠并行開(kāi)發(fā)的模塊。
23、在本公開(kāi)的一些實(shí)施例中,通過(guò)api按照不同調(diào)用順序調(diào)用每個(gè)可并行開(kāi)發(fā)的模塊之前,可并行開(kāi)發(fā)模塊確定方法還包括:
24、通過(guò)隨機(jī)算法,生成調(diào)用每個(gè)可并行開(kāi)發(fā)模塊的至少一個(gè)第一順序,所述第一順序指隨機(jī)調(diào)用順序;
25、通過(guò)api按照不同調(diào)用順序調(diào)用每個(gè)可并行開(kāi)發(fā)的模塊,包括:
26、通過(guò)api,按照至少一個(gè)第一順序中的每個(gè)第一順序調(diào)用每個(gè)可并行開(kāi)發(fā)的模塊。
27、在本公開(kāi)的一些實(shí)施例中,通過(guò)api按照不同調(diào)用順序調(diào)用每個(gè)可并行開(kāi)發(fā)的模塊之前,可并行開(kāi)發(fā)模塊確定方法還包括:
28、通過(guò)排列組合算法,生成調(diào)用所述每個(gè)可并行開(kāi)發(fā)的模塊的至少一個(gè)第二順序,所述第二順序指排列組合調(diào)用順序;
29、所述通過(guò)所述api按照不同調(diào)用順序調(diào)用每個(gè)可并行開(kāi)發(fā)的模塊,包括:
30、通過(guò)所述api,按照所述至少一個(gè)第二順序中的每個(gè)第二順序調(diào)用所述每個(gè)可并行開(kāi)發(fā)的模塊。
31、根據(jù)本公開(kāi)的第二方面,提供了一種可并行開(kāi)發(fā)模塊確定裝置,包括:
32、層信息獲取單元,用于獲取需開(kāi)發(fā)的至少一個(gè)模塊中每個(gè)模塊的層信息,層信息用于指示對(duì)應(yīng)的模塊所屬的autosar架構(gòu)的層;
33、層確定單元,用于確定需開(kāi)發(fā)的至少一個(gè)模塊中每個(gè)模塊所屬的autosar架構(gòu)的層;
34、可并行開(kāi)發(fā)模塊確定單元,用于確定屬于autosar架構(gòu)不同層的模塊為可并行開(kāi)發(fā)的模塊。
35、根據(jù)本公開(kāi)的第三方面,提供了一種電子設(shè)備,包括:
36、至少一個(gè)處理器;以及
37、與至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
38、存儲(chǔ)器存儲(chǔ)有可被至少一個(gè)處理器執(zhí)行的指令,指令被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器能夠執(zhí)行前述第一方面提供的可并行開(kāi)發(fā)模塊確定方法的步驟。
39、根據(jù)本公開(kāi)的第四方面,提供了一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行第一方面提供的可并行開(kāi)發(fā)模塊確定方法的步驟。
40、本公開(kāi)提供了一種可并行開(kāi)發(fā)模塊確定方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。其中,該方法包括:獲取需開(kāi)發(fā)的至少一個(gè)模塊中每個(gè)模塊的層信息,層信息用于指示對(duì)應(yīng)的模塊所屬的autosar架構(gòu)的層;確定需開(kāi)發(fā)的至少一個(gè)模塊中每個(gè)模塊所屬的autosar架構(gòu)的層;確定屬于autosar架構(gòu)不同層的模塊為可并行開(kāi)發(fā)的模塊。
41、根據(jù)本公開(kāi)的方案,通過(guò)根據(jù)需開(kāi)發(fā)模塊的層信息,確定需開(kāi)發(fā)模塊所屬的autosar架構(gòu)的層;根據(jù)屬于autosar架構(gòu)不同層的模塊,確定需開(kāi)發(fā)的模塊中能夠并行開(kāi)發(fā)的模塊;將能夠并行開(kāi)發(fā)的模塊同時(shí)開(kāi)發(fā),可以提高autosar軟件棧中需開(kāi)發(fā)的模塊的開(kāi)發(fā)效率。
42、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本技術(shù)的實(shí)施例的關(guān)鍵或重要特征,也不用于限制本技術(shù)的范圍。本技術(shù)的其它特征將通過(guò)以下的說(shuō)明書(shū)而變得容易理解。