裸機程式設計的除法問題

2021-08-20 15:13:06 字數 534 閱讀 4375

當使用上述**,會在led3_change();這個位置卡住,也就是led3無法點亮或熄滅。

而在這些**之前,除法使用都是正常的;divide變數使用led燈檢測也是正常的結果;while迴圈被檢測可以進入;問題非常詭異!反覆**,測試**如下時,led出現反應,

也就是除法當中參與運算的,只有兩個變數,乙個立即數!取模運算也是如此。

這個情況發生在使用s3c2440開發板時出現,以前使用s5pv210時未曾見到。

哈哈哈,以上都是2023年所寫的草稿,今晚才想起來還有個坑,,,,

額,這是因為我當時並沒有使用教程所給的交叉編譯工具,所使用的的是none工具鏈,沒有庫可以使用,需要使用帶有glibc的工具鏈,並且要加入libfunc.s這個檔案,把除法和取模運算轉換為彙編**進行運算。

LwIP裸機ping問題

ping裝置的時候,時間會越來越長,從幾毫秒到幾百毫秒,有時候甚至無ping響應。這裡的原因在於,他使用了中斷的方式接收網絡卡資料報,在每次中斷中只讀取網絡卡的乙個資料報。如果一次中斷發生,而網絡卡內事實上可能存在有多個資料報,這樣如果唯讀乙個,最終導致網絡卡內資料報積壓,所以會出現ping延遲的現...

BigDecimal除法問題

bigdecimal做除法時,盡量使用divide bigdecimal divisor,intscale,introundingmode 這個方法 divisor 被除數 scale保留小數字數 roundingmode保留小數時採用的方法,一般使用bigdecimal.round up 四捨五入...

ARM裸機程式設計系列 buzzer

蜂鳴器控制很簡單只需要控制引腳輸出即可。通過原理圖檢視找到對應的gpio 下面是 start.s global start start 關閉看門狗 ldr r0,0xe2700000 mov r1,0 str r1,r0 設定棧,以便呼叫c函式 ldr sp,0x31000000 呼叫main bl...