請(qǐng)問 在__HIGH_CODE段內(nèi)調(diào)用浮點(diǎn)數(shù)除法運(yùn)算,浮點(diǎn)數(shù)除法部分也是放在__HIGH_CODE段嗎?
如果不是,如何把這個(gè)除法部分放入__HIGH_CODE段?
熱門產(chǎn)品 :
CH32V317: 互聯(lián)型青稞RISC-V MCU
請(qǐng)問 在__HIGH_CODE段內(nèi)調(diào)用浮點(diǎn)數(shù)除法運(yùn)算,浮點(diǎn)數(shù)除法部分也是放在__HIGH_CODE段嗎?
如果不是,如何把這個(gè)除法部分放入__HIGH_CODE段?
軟件除法的具體實(shí)現(xiàn),是由工具鏈提供的, 你可以看下對(duì)應(yīng)lst文件里面, 對(duì)應(yīng)的算除法運(yùn)算的地方,具體調(diào)用的了哪些函數(shù),
然后把這些函數(shù),以及其再調(diào)用的其他函數(shù)按照下面方式加到ld文件里面即可,如:
lst文件部分:
F:\wch\CH583EVT_1.6\EXAM\ch58x_div_high_code_test\obj/../src/Main.c:49?(discriminator?3) ????????a?=?a/i; 20000100: 4ab2???????????????? lw s5,12(sp) 20000102: 8522???????????????? mv a0,s0 20000104: 254d???????????????? jal 200007a6?20000106: 85aa???????????????? mv a1,a0 20000108: 8556???????????????? mv a0,s5 2000010a: 76a000ef?????????? jal ra,20000874?2000010e: c62a???????????????? sw a0,12(sp) F:\wch\CH583EVT_1.6\EXAM\ch58x_div_high_code_test\obj/../src/Main.c:50?(discriminator?3)
那我們就把這個(gè)
__divsf3__floatunsisf
函數(shù)加到ld文件里面的 highcode 里面
*(.text.__floatunsisf);*(.text.__divsf3);
如最終LD文件high code 部分:
.highcode?: { .?=?() PROVIDE(_highcode_vma_start?=?.) *(.vector) (*(SORT_NONE(.vector_handler))) *(.highcode) *(.highcode.*) *(.__floatunsisf) *(.__divsf3) *(.__clzsi2) *(.__clz_tab) *(.__addsf3) .?=?() PROVIDE(_highcode_vma_end?=?.) }?>RAM?AT>FLASH
還是看圖片吧