• slider image 442
  • slider image 477
  • slider image 479
  • slider image 480
  • slider image 481
  • slider image 482
:::


Browsing this Thread:   1 Anonymous Users






Re: codeoffset 問題
#6
資深會員
資深會員


查看用戶資訊
如果您只單純將Application做code offset到0x600, 也不和Bootloader Project combine在一起的話, 那就要在您的Application自行remap Reset Vector到0x600.

請問您是怎麼Remap中斷的?

發表於: 2020/6/4 17:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: codeoffset 問題
#5
初級會員
初級會員


查看用戶資訊
先回到我初始的問題, 先不要和 bootloader 挷一起問好了


單純的application(無bootloader), 有用到中斷
設定了 codeoffset (如0x600)後,
中斷就不能用了
在沒設offset 前 中斷是OK的

有無什麼方法 讓offset 後, 中斷能正常使用???

發表於: 2020/6/4 15:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: codeoffset 問題
#4
資深會員
資深會員


查看用戶資訊
您先根據Bootloader User Guide的說明, 將Bootloader和Application透過MPLAB X IDE的loadables功能合併再一起後, 透過燒錄器燒錄.

先測試看看有沒有正確從Bootloader jump到 Application.

可以用燒錄器同時debug兩個project.

發表於: 2020/6/4 10:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: codeoffset 問題
#3
初級會員
初級會員


查看用戶資訊
Bootloader project 有設定 ROM Range: 0-6FF 嗎? => 有
已有參考 該文件的做法了

你意思是要
1. 先將Bootloader project 有設定 ROM Range: 0-6FF
2. APPLICATION 設OFFSET 到0x700
3. 將Bootloader 及 APPLICATION 燒進 PIC16F18345


當程式 跑在 APPLICATION 時, 在APPLICATION 的
void __interrupt() INTERRUPT_InterruptManager (void)
就能使用...

有I2C 的中斷, 就可以跑到這段CODE 嗎???

發表於: 2020/6/4 9:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: codeoffset 問題
#2
資深會員
資深會員


查看用戶資訊
請問一下您的Bootloader project有設定ROM Range: 0-6FF嗎?

您可以參考一下下面Bootloader Generator User Guide.

http://ww1.microchip.com/downloads/en/DeviceDoc/40001779B.pdf

Attach file:



jpg  (0.00 KB)


發表於: 2020/6/4 9:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


codeoffset 問題
#1
初級會員
初級會員


查看用戶資訊
MCU: PIC16F18345

我設定 CODEODDSET=0x700 之後

下I2c 就跑不到 這裡..

void __interrupt() INTERRUPT_InterruptManager (void)
{
// interrupt handler
if(INTCONbits.PEIE == 1)
{
if(PIE1bits.BCL1IE == 1 && PIR1bits.BCL1IF == 1)
{
MSSP1_InterruptHandler();
}
else if(PIE1bits.SSP1IE == 1 && PIR1bits.SSP1IF == 1)
{
MSSP1_InterruptHandler();
if (1==SSP1STATbits.D_nA && 0==SSP1STATbits.R_nW )
{
if (i2c1RdData==0xAA)
{
enterBootLoader=1;
}


請問 設定完 codeoffset 後,
Reset_Vector 就移到 0x700??
Interrupt_Vector 也會同步移到 0x704 ??

若是的話.. 是不是還需什麼設定, 才能讓
"void __interrupt() INTERRUPT_InterruptManager (void)"
工作正常???

發表於: 2020/6/3 17:47
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------