首頁>
4
回覆列表
  • 1 # 用戶107712101627

    startup.a51的作用

    和匯編一樣,在C中定義的那些變量和數組的初始化就在startup.a51中進行,如果你在定義全局變量時帶有數值,如unsigned char

    data **=100;,那startup.a51中就會有相關的賦值。如果沒有=100,startup.a51就會把他清0。(startup.a51==變量的初始化)。

    這些初始化完畢後,還會設置SP指針。對非變量區域,如堆棧區,將不會有賦值或清零動作。

    有人喜歡改startup.a51,為了滿足自己一些想當然的愛好,這是不必要的,有可能錯誤的。比如掉電保護的時候想保存一些變量,

    但改startup.a51來實現是很笨的方法,實際只要利用非變量區域的特性,定義一個指針變量指向堆棧低部:0xff處就可實現。,

    為什麼還要去改?

    可以這麼說:任何時候都可以不需要改startup.a51,如果你明白它的特性。