[0028]在圖3的圖示中,簡化示出計(jì)算機(jī)系統(tǒng)⑶I的構(gòu)造的一部分。下面只解釋與前面各圖的所示內(nèi)容的區(qū)別。在第一步驟Ui期間,在分析、即在檢查控制程序的程序代碼時(shí),將對于要清除的第一函數(shù)FlA和FlB所確定的數(shù)據(jù)存儲在信息結(jié)構(gòu)1ST中。附加于所確定的數(shù)據(jù),給要清除的第一函數(shù)FlA和FlB的存儲區(qū)配置段名并將所述段名存儲在信息結(jié)構(gòu)1ST中。此后對于配置給兩個(gè)第一函數(shù)FlA和FlB的并且現(xiàn)在歸類為空閑的存儲空間在信息結(jié)構(gòu)1ST中存儲標(biāo)志符、空閑的存儲空間的開始地址、存儲區(qū)的長度、即大小,以及段名。
[0029]接著給與第一個(gè)第一函數(shù)FlA關(guān)聯(lián)的自由存儲空間配置第一子系統(tǒng)SUBl,而給與第二個(gè)第一函數(shù)FlB關(guān)聯(lián)的自由的存儲空間配置第二子系統(tǒng)SUB2。存儲器SPl的存儲區(qū)的改變的劃分作為存儲器SPl的模型MSPl在顯示單元中示出。自由的存儲區(qū)FRl和FR2同樣在顯示單元中示出。當(dāng)前情況下,所述兩個(gè)自由的存儲區(qū)FRl和FR2沒有與子系統(tǒng)關(guān)聯(lián)。在一種備選的未示出的實(shí)施形式中,只要自由的存儲區(qū)FRl和FR2的大小超過預(yù)定的最小大小,則自由的存儲區(qū)FRl和FR2能夠同樣與子系統(tǒng)關(guān)聯(lián)和示出。
[0030]在第二步驟U2中,在使用來自信息結(jié)構(gòu)1ST的數(shù)據(jù)的情況下,對于第一子系統(tǒng)SUBl生成第一個(gè)第二函數(shù)F2A的C代碼,而對于第二子系統(tǒng)SUB2生成第二個(gè)第二函數(shù)F2B的C代碼,并將所述C代碼配置給相應(yīng)的子系統(tǒng)SUBl和SUB2。在生成C代碼時(shí),第一個(gè)第二函數(shù)F2A和第二個(gè)第二函數(shù)F2B借助產(chǎn)生編譯器特定的C代碼指示分別配置給一個(gè)段名。在后續(xù)的編譯步驟中,借助編譯器Cl作為第一目標(biāo)文件CSUBl和第二目標(biāo)文件CSUB2產(chǎn)生二進(jìn)制的程序代碼。所得到的兩個(gè)目標(biāo)文件CSUBl和CSUB2除了二進(jìn)制的程序代碼也包含所謂的元地址信息。當(dāng)然,第一目標(biāo)文件CSUBl的程序代碼對應(yīng)于第一個(gè)第二函數(shù)F2A,而第二目標(biāo)文件CSUB2的程序代碼對應(yīng)于第二個(gè)第二函數(shù)F2B。
[0031]研究表明,有利的是,關(guān)于分別需要的存儲空間的大小來檢查兩個(gè)目標(biāo)文件CSUBl和CSUB2并分別與可供使用的存儲區(qū)大小比較。如果在比較中得出,配置的存儲區(qū)的大小不足,則能夠通過清除其他的第一函數(shù)FlC和FlD產(chǎn)生其他存儲區(qū)和/或已經(jīng)使用未被第一函數(shù)F1A、FIB、FlC和FlD占用的存儲區(qū)FRl和FR2。
[0032]只要進(jìn)行將其中一個(gè)第二函數(shù)F2A和F2B向多個(gè)子系統(tǒng)或多個(gè)存儲區(qū)的劃分,則為此在生成C代碼時(shí)導(dǎo)入對應(yīng)的跳轉(zhuǎn)指示。
[0033]要指出的是,在自由的存儲區(qū)和之前清除的第一函數(shù)的存儲區(qū)彼此鄰接時(shí),可將它們聚集成較大的自由的存儲區(qū)。在下一個(gè)的步驟中借助連接器LI將目標(biāo)文件CSUBl和CSUB2的所產(chǎn)生的二進(jìn)制程序代碼分派給自由的存儲區(qū)、亦即在這里當(dāng)前情況下是之前清除的第一函數(shù)的存儲區(qū)或聚集的自由存儲區(qū)。由信息結(jié)構(gòu)1ST為連接器LI提供對于配置關(guān)系必需的信息。優(yōu)選由信息結(jié)構(gòu)1ST的信息產(chǎn)生連接器LI可讀的所謂的連接命令文件。連接器LI接著產(chǎn)生優(yōu)選為“elf”數(shù)據(jù)格式的二進(jìn)制文件ELF?!癳lf”格式的二進(jìn)制文件ELF包含目標(biāo)文件CSUBl和CSUB2的分布到自由的存儲區(qū)上的程序代碼,這是之前清除的第一函數(shù)的存儲區(qū)或所聚集的自由存儲區(qū)。此外連接器LI產(chǎn)生所謂的“map”文件MAP,其包括關(guān)于各個(gè)(代碼)段的位置和大小的信息。
[0034]在另一個(gè)步驟中,通過信息結(jié)構(gòu)1ST內(nèi)容與“map”文件MAP的內(nèi)容的比較,實(shí)現(xiàn)確定相應(yīng)的子系統(tǒng)SUBl和SUB2的不需要的存儲區(qū)并將其在顯示單元中示出。
[0035]當(dāng)然,所述方法的各個(gè)步驟也能夠多次運(yùn)行。尤其是能夠在第一次選擇要清除的第一函數(shù)之后選擇其他要清除的第一函數(shù)。也能夠借助計(jì)算機(jī)系統(tǒng)GUI在任何情況下對大小進(jìn)行檢查。此外有利的是,將最后的代碼生成的結(jié)果與改變的程序段相組合地用于更好地估算存儲空間需求的大小。
【主權(quán)項(xiàng)】
1.一種用于影響控制器的控制程序的方法,其中所述控制程序具有多個(gè)第一函數(shù)(F1A、FIB、F1C、...FlN),至少一個(gè)所述第一函數(shù)(F1A、FIB、F1C、...FlN)構(gòu)成為用于控制促動器,并且設(shè)有存儲器(SP1),所述存儲器(SPl)具有用配置給第一函數(shù)(F1A、F1B、FlC,...FlN)的子程序占用的存儲區(qū),并且控制程序作為二進(jìn)制的程序代碼存在,其中在控制程序的程序代碼中在調(diào)用一個(gè)所述第一函數(shù)(F1A、F1B、F1C、...F1N)的情況下存在轉(zhuǎn)移地址并且所述轉(zhuǎn)移地址指向與所述函數(shù)調(diào)用關(guān)聯(lián)的子程序的存儲器地址,所述子程序作為二進(jìn)制的程序代碼的序列存在并且在子程序的程序代碼的所述序列的結(jié)尾處存在返回指令,其特征在于, 檢查控制程序的程序代碼中函數(shù)調(diào)用的出現(xiàn)并確定與函數(shù)調(diào)用關(guān)聯(lián)的轉(zhuǎn)移地址和返回指令的地址,并且由所述確定來確定存儲器(SPl)的用相應(yīng)的子程序占用的存儲區(qū)的大小并將配置給第一函數(shù)(F1A、F1B、F1C、...F1N)的標(biāo)志符連同存儲區(qū)的配置給相應(yīng)的第一函數(shù)(F1A、FIB、F1C、...FlN)的大小和地址在顯示單元中示出,其中所述顯示單元構(gòu)成為計(jì)算機(jī)系統(tǒng)(GUI)的一部分,并且借助所述計(jì)算機(jī)系統(tǒng)(GUI)將至少一個(gè)所述第一函數(shù)(F1A、FIB、F1C、...FlN)選擇為要清除的并將所選擇的第一函數(shù)(F1A、F1B、FlC,...FlN)的大小和地址存儲在一個(gè)信息結(jié)構(gòu)(1ST)中,并解除所選擇的第一函數(shù)(F1A、FIB、F1C、...FIN)的至少一個(gè)函數(shù)調(diào)用和/或通過第二函數(shù)(F2A)代替第一函數(shù)(F1A、FIB、FIC、...FlN),其方式是,用第二函數(shù)(F2A)的程序代碼覆蓋所選擇的第一函數(shù)(F1A、FIB、F1C、...FlN)的程序代碼。
2.按照權(quán)利要求1所述的方法,其特征在于,選擇多個(gè)要清除的第一函數(shù)(F1A、F1B、FIC,...FIN)并將其由多個(gè)第二函數(shù)(F2A、F2B)代替。
3.按照權(quán)利要求1所述的方法,其特征在于,存儲器(SPl)包含自由的存儲區(qū)(FR1、FR2)。
4.按照權(quán)利要求1至3之一所述的方法,其特征在于,分別給作為要清除的而選擇的第一函數(shù)(F1A、F1B)的被占用的存儲區(qū)和自由的存儲區(qū)(FR1、FR2)配置唯一的段名。
5.按照權(quán)利要求1至4之一所述的方法,其特征在于,由對要清除的第一函數(shù)(F1A、FlB)的存儲區(qū)的地址和大小的分析確定各個(gè)連續(xù)的存儲區(qū)并將所述各個(gè)存儲區(qū)的大小和地址存儲在信息結(jié)構(gòu)(1ST)中。
6.按照權(quán)利要求4或5所述的方法,其特征在于,在信息結(jié)構(gòu)(1ST)中存儲段名。
7.按照權(quán)利要求1至5之一所述的方法,其特征在于,借助計(jì)算機(jī)系統(tǒng)(⑶I)在產(chǎn)生第二函數(shù)(F2A、F2B)的程序代碼之前對于要清除的第一函數(shù)(F1A、F1B)的每個(gè)存儲區(qū)和/或?qū)τ诿總€(gè)自由的存儲區(qū)產(chǎn)生空的子系統(tǒng)(SUB1、SUB2)并將其配置給所述存儲區(qū),并且將子系統(tǒng)(SUB1、SUB2)與所述存儲區(qū)的配置關(guān)系存儲在信息結(jié)構(gòu)(1ST)中和/或子系統(tǒng)(SUB1、SUB2)中。
8.按照權(quán)利要求7所述的方法,其特征在于,將第二函數(shù)(F2A、F2B)配置給空的子系統(tǒng)(SUB2)。
9.按照權(quán)利要求7或權(quán)利要求8所述的方法,其特征在于,給所述空的子系統(tǒng)(SUB1、SUB2)配置元信息并將所述元信息存儲在信息結(jié)構(gòu)(1ST)中和/或子系統(tǒng)(SUB1、SUB2)中。
10.按照權(quán)利要求7至9之一所述的方法,其特征在于,多個(gè)子系統(tǒng)(SUB1、SUB2)借助程序調(diào)用相互關(guān)聯(lián)并將所述關(guān)聯(lián)關(guān)系存儲在信息結(jié)構(gòu)(1ST)中和/或子系統(tǒng)(SUB1、SUB2) 中。
11.按照權(quán)利要求7至10之一所述的方法,其特征在于,對于每個(gè)子系統(tǒng)(SUB1、SUB2)產(chǎn)生C文件形式的單獨(dú)的程序代碼。
12.按照權(quán)利要求1至11之一所述的方法,其特征在于,對于第二函數(shù)(F2A、F2B)借助編譯器(Cl)產(chǎn)生二進(jìn)制的程序代碼,并且只要存在元信息,則將所述元信息加入所述二進(jìn)制的程序代碼中。
13.按照上述權(quán)利要求之一所述的方法,其特征在于,只要配置給第一函數(shù)(F1A、F1B、FIC,...FIN)的存儲區(qū)超過預(yù)定的最小大小,則在計(jì)算機(jī)系統(tǒng)(⑶I)中顯示所配置的存儲區(qū)。
14.按照上述權(quán)利要求之一所述的方法,其特征在于,借助測試程序檢查,所選擇的第一函數(shù)(F1A、F1B)的存儲區(qū)對于第二函數(shù)(F2A、F2B)的大小是否足夠。
15.按照上述權(quán)利要求之一所述的方法,其特征在于,借助試探式的方法實(shí)施存儲區(qū)的檢查并且通過使用的程序段的數(shù)量和/或類型確定第二函數(shù)(F2A、F2B)的存儲器需求。
16.按照上述權(quán)利要求之一所述的方法,其特征在于,在產(chǎn)生第二函數(shù)(F2A、F2B)的二進(jìn)制的程序代碼時(shí),在將第二函數(shù)F2A、F2B)的二進(jìn)制程序代碼分配到多個(gè)存儲區(qū)上時(shí),將根據(jù)所述分配將適當(dāng)?shù)霓D(zhuǎn)移指令嵌入程序代碼中。
17.按照上述權(quán)利要求之一所述的方法,其特征在于,在配置第二函數(shù)之后,在計(jì)算機(jī)系統(tǒng)中顯不剩余的存儲區(qū)。
18.按照上述權(quán)利要求之一所述的方法,其特征在于,將第二函數(shù)的二進(jìn)制程序代碼寫入配置的存儲區(qū)中。
19.按照上述權(quán)利要求之一所述的方法,其特征在于,在存儲器(SPl)中,在所選擇的第一函數(shù)(F1A、F1B)的轉(zhuǎn)移地址的目標(biāo)地址上存儲返回指令。
【專利摘要】本發(fā)明涉及一種影響控制程序的方法,控制程序具有第一函數(shù),設(shè)有存儲器,它具有第一函數(shù)的子程序的存儲區(qū),控制程序是二進(jìn)制代碼,在控制程序的代碼中調(diào)用第一函數(shù)的轉(zhuǎn)移地址,轉(zhuǎn)移地址指向與調(diào)用關(guān)聯(lián)的子程序存儲地址,子程序?yàn)槎M(jìn)制代碼序列,在子程序代碼序列結(jié)尾有返回指令,檢查控制程序代碼中函數(shù)調(diào)用并確定與此關(guān)聯(lián)的轉(zhuǎn)移地址和返回指令地址并由結(jié)果確定子程序存儲區(qū)的大小,顯示單元顯示第一函數(shù)的標(biāo)志符和第一函數(shù)的存儲區(qū)大小和地址,它是計(jì)算機(jī)系統(tǒng)的一部分并借此選擇要清除的第一函數(shù)并將所選第一函數(shù)的大小和地址存儲在信息結(jié)構(gòu)中,解除所選第一函數(shù)的調(diào)用和/或用第二函數(shù)代替第一函數(shù),由其程序代碼覆蓋所選第一函數(shù)的程序代碼。
【IPC分類】G05B19-04
【公開號】CN104570787
【申請?zhí)枴緾N201410407642
【發(fā)明人】A·羅爾夫斯邁爾, T·胡弗納格爾
【申請人】帝斯貝思數(shù)字信號處理和控制工程有限公司
【公開日】2015年4月29日
【申請日】2014年8月19日
【公告號】EP2869145A1, US20150120011