自從完成redboot的啟動工作以來,一直有乙個問題困擾著我,只是由於影響不大,所以都沒有進行研究。這個問題就是在使用reset命令重啟的時候,總是會在「... resetting.」之後列印出亂碼,和前面在cs8900驅動中遇到的亂碼類似的。
今天有點閒工夫,於是決定解決這個問題,首先看了一下**,發現經過了好幾次的巨集替換,實際上在do_reset函式裡面最終呼叫的是\common\current\src\hal_if.c中的reset函式。reset函式採用了兩種方式來重啟系統,一種是呼叫平台提供的hal_platform_reset()函式;另一種就是簡單的goto到入口位址hal_platform_reset_entry處執行。
本來想通過加入while(1)死迴圈定位函式,然後用axd進行單步除錯來找到問題所在。先將死迴圈放到reset函式的起始位置,發現還沒有出現亂碼,但是單步執行卻沒有發生重啟;然後將死迴圈的位置往後挪,卻突然發現將死迴圈放到hal_platform_reset()之後,系統執行reset命令時竟然沒有出現亂碼並成功重啟了。
原文見:
Git 之 reset 命令解析
git reset 命令是git中最常用的命令,但也是最危險,最容易被誤用的命令。我們知道git在初始化時,會為我們預設建立乙個master分支,那這個master到底是什麼呢?其實它在.git目錄下對應了乙個引用檔案 git refs heads master檔案,而該檔案的內容便是該分支中最新的...
reset命令有3種方式
reset命令有3種方式 git reset mixed 此為預設方式,不帶任何引數的git reset,即使這種方式,它回退到某個版本,只保留原始碼,回退commit和index資訊 git reset soft 回退到某個版本,只回退了commit的資訊,不會恢復到index file一級。如果...
git倉庫恢復命令 reset
reset命令 git reset mixed預設方式,不帶任何引數的git reset,即時這種方式,它回退到某個版本,只保留原始碼,回退commit和index資訊 git reset soft回退到某個版本,只回退了commit的資訊,不會恢復到index file一級。如果還要提交,直接co...