陣列超過Bank RAM 的大小!
|
||||
---|---|---|---|---|
高級會員
|
我參考 W401 的第四,五兩章,宣告以下的兩個陣列:
#pragma udata abc = 0x100 int A[9][16]; int B[9][16]; #pragma udata 但有以下的錯誤訊息: MPLINK 4.11, Linker Copyright (c) 2007 Microchip Technology Inc. Error - section 'abc' can not fit the absolute section. Section 'abc' start=0x00000100, length=0x00000240 Errors : 1 Link step failed. BUILD FAILED: Fri Jul 18 14:56:37 2008 請問要怎麼修改,才能讓 compiler 接受超過一個 Bank 的大小並宣告陣列呢?
發表於: 2008/7/18 15:01
|
|||
|
Re: 請問使用 CAN 的 Function 為何會 Reset?
|
||||
---|---|---|---|---|
高級會員
|
感謝版主的回覆幫忙!!
果然是 Watch Dog Timer 的問題!! 關掉就 OK 了!!
發表於: 2008/7/15 16:48
|
|||
|
Re: 請問使用 CAN 的 Function 為何會 Reset?
|
||||
---|---|---|---|---|
高級會員
|
參照:
我只有一塊APP023,但我有8塊APP023-1的PIM板,我有自己作 CAN 的介面,用於相互傳輸!! 只有一塊 CAN node 要怎樣玩? Message 傳送出去後沒有node 回 ACK,128 次後就會進到 Error Passive,錯誤超過 255 次就會進入 Bus Off Mode <== 不過這也蠻奇怪的,照理說只有一塊 CAN node 在傳,應該在第255 次就會進入Bus Off Mode,但我卻是進入Reset,再重頭開始傳輸,這可真是奇怪事!!! Watch-Dog Timer 嗎? 嗯.....我試試看!!!
發表於: 2008/7/15 15:23
|
|||
|
Re: 請問使用 CAN 的 Function 為何會 Reset?
|
||||
---|---|---|---|---|
高級會員
|
參照:
請問要怎麼檢查? 我的程式中沒有設定到 Reset, 實驗板- APP023 x1 , APP023-1 x8
發表於: 2008/7/15 14:18
|
|||
|
請問使用 CAN 的 Function 為何會 Reset?
|
||||
---|---|---|---|---|
高級會員
|
我用的是 APP023 + PIC 18F8680
CAN 的 Code 是CAN202 Workshop 的範例,如下: CANInitialize( 2,10,6,6,3, CAN_CONFIG_LINE_FILTER_OFF & CAN_CONFIG_SAMPLE_ONCE & CAN_CONFIG_VALID_STD_MSG & CAN_CONFIG_PHSEG2_PRG_ON ) ; CANSetOperationMode(CAN_OP_MODE_CONFIG) ; CANSetMask(CAN_MASK_B1, RXB0_MASK, CAN_CONFIG_STD_MSG ) ; CANSetMask(CAN_MASK_B2, RXB1_MASK, CAN_CONFIG_STD_MSG ) ; CANSetFilter(CAN_FILTER_B1_F1, RX_Filter0 , CAN_CONFIG_STD_MSG) ; CANSetFilter(CAN_FILTER_B1_F2, RX_Filter1 , CAN_CONFIG_STD_MSG) ; CANSetFilter(CAN_FILTER_B2_F1,RX_Filter2 , CAN_CONFIG_STD_MSG) ; CANSetFilter(CAN_FILTER_B2_F2,RX_Filter3 , CAN_CONFIG_STD_MSG) ; CANSetFilter(CAN_FILTER_B2_F3,RX_Filter4 , CAN_CONFIG_STD_MSG) ; CANSetFilter(CAN_FILTER_B2_F4, RX_Filter5 , CAN_CONFIG_STD_MSG) ; CANSetOperationMode(CAN_OP_MODE_LOOP) ; .................. 一開始都很正常的傳送,但當傳送了幾百筆資料後就會讓 PIC 18F8680 Reset!! 請問為何會這樣呢!!
發表於: 2008/7/14 23:15
|
|||
|
請問單晶片為何會自動 Reset ?
|
||||
---|---|---|---|---|
高級會員
|
目前使用的是APP023 開發板,上面的單晶片是 PIC 18F8680!
測試的是 CAN 的傳輸! 測試結果 ==> 傳輸及接收都正常 問題: 當APP023 傳送第250左右筆 CAN 訊息時, PIC 18F8680 會自動 Reset, Why? ==> 我好像查出來了....似乎是 Function 的問題..... 看來我無法相信 Function 了.....還是老老實實的設定暫存器吧!!!
發表於: 2008/6/7 0:10
|
|||
|
Re: 請問這是什麼錯誤訊息?
|
||||
---|---|---|---|---|
高級會員
|
嗯嗯.....
原來是超過一個 BANK RAM 的大小!! 用 #pragma 指定其BANK的起始位址,並將陣列分開宣告。 ==> 嗯......請問....該怎麼做?
發表於: 2008/6/2 16:52
|
|||
|
請問這是什麼錯誤訊息?
|
||||
---|---|---|---|---|
高級會員
|
Error - section '.udata_main.o' can not fit the section. Section '.udata_main.o' length=0x000002c3
Errors : 1 我只是加了 int A[9][16], B[9][16]; 兩個陣列的宣告而已! // int A[9][16], B[9][16]; ==> compiler 就過了 why?
發表於: 2008/5/31 16:52
|
|||
|
請問 CAN 中的 Receive Buffer
|
||||
---|---|---|---|---|
高級會員
|
請問兩個問題:
1. 何種情況會用到 RXB1,只靠 RXB0 也有無法即時處理的情況發生嗎? 2. 為何 RXB0 跟 RXB1 的 Filter 個數不同,有何用義嗎?
發表於: 2008/5/4 10:16
|
|||
|