發新話題
打印

M51內的函式

M51內的函式

不清楚是不是叫函式
因為我在做BOOTLOADER
在分割檔案的時候需要去看M51有那些需要保留那些是放在要UPDATA的區塊
其中有幾個是我的程式內沒有的
只有在M51上會發現
下面為我列出來的項目
希望能為我解答
謝謝

?C_C51STARTUP
?C_INITSEG
?C?LIB_CODE
?CO?MAIN

TOP

那些都是程式指標名字或程式檔名,該些名稱一般都會設定在:
IDE → Project → Tool Chain Integration → Linker (Command line 欄位裡)
目的是要讓 Compiler 能按照 Command line 語法去輸出正去的 Bootload 燒錄檔。
詳細請參考 Silicon Labs AN112 或 KEIL C51 Help file,會有詳細說明。
PS:第2~3項名稱應該是 User define,要確認你的 IDE project code 是否有,否則 Compiler 會找不到。

[ 本帖最後由 Stevenyang 於 2011-1-17 16:05 編輯 ]

TOP

?C_C51STARTUP
?C_INITSEG
?C?LIB_CODE
前面三個是當你是用"KeilC"寫程式..Compiler,前面是"C"的一些前導碼,當你不加STARTUP51.A51,KeilC會自動幫你加.前導程式是ASM語言,執行完才會跳到Main().
?CO?MAIN

不知你Bootload 做法是如何?不需要這麼麻煩吧!

TOP

因為我的bootloader跟我的主程式是放在一起的
但程式在更新的時候bootloader的code不能被清除掉
所以我才需要將bootloader與主程式分別放在兩塊flash
但其中就是如上述的m51內有這些函式我就不清楚這該不該被清除的
請版主給點意見
謝謝

TOP

你可以參考Steven 建議參考AN112 & AN112SW範例就可以了!
真得還是不了解,再跟我們Sale聯絡,我們有相關文件可以讓你參考.

TOP

這份我看過了
可能沒有看得很清楚
但他的範例程式我跑過了
也是拿那來改的
這邊不知版主是否有遇到一樣的問題
就是在範例程式跑的時候都可以
但我這邊的程式比較大
大約從0x1000~0x7400
是由電腦端傳送hex file給c8051
但資料量大的時候最後面都會有接收資料錯誤的發生
小量就不會

不知你們有沒有遇過這樣的事情

TOP

由於文件中並沒有提到
?C?LIB_CODE由自已所使用的一些lib越多則會使這個所需的空間越大。
那我想問的是?C?LIB_CODE這個是該放在bootloader的區塊裡還是要update的區塊裡呢?

另外?C_INITSEG也是該放在那個區塊才好?

TOP

發新話題