回覆列表
  • 1 # 使用者5010666567480

    如果選是的話,工程中就添加了一個STARTUP.A51的檔案

    如果選no,就沒有,有的工程會需要那就得手動加上,在Keil\C51\LIB裡面,找到他複製到你的工程裡,在工程窗口裡右擊source group1,選add。。,加上STARTUP.A51

    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,如果你明白它的特性。

  • 中秋節和大豐收的關聯?
  • 牙齒疼痛是不是缺鈣?