Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

請教大家一個問題

我現在在莫斯科app程式的時候做boot程序,如果boot程式和app程式都沒有使用中斷的情況下可以正常截圖,但是boot程式或app程式有涉及使用中斷的話就會進入到debug, boot或app程式單獨運行時沒有問題。

調試狀態下會卡在下圖位置:

wqh98_0-1713532731467.png

wqh98_1-1713532740694.png

我想知道應該在哪個位置設置或少設置什麼位置。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/BootLoader-%E5%92%8C-Application%E9%97%AE%E9%A2%98/td-p/743243

1 解決方案
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

嗨,

我看了你的lsl文件,boot和app的中斷服務表確實是重疊的,定義的位址是一樣的,因此會發生覆蓋。

boot和app的INTVEC和TRAPVEC位址需要不一樣,而且要隔開,建議隔開的位址最少10k

#define LCF_INTVEC0_START   0x801F4000
#define LCF_INTVEC1_START   0x801F5000
#define LCF_INTVEC2_START   0x801F3000

#define LCF_TRAPVEC0_START  0x80000100
#define LCF_TRAPVEC1_START  0x801F6200
#define LCF_TRAPVEC2_START  0x801F6000

 

在原始文章中檢視解決方案

0
7 回應
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

boot和app程序,單獨運行並使用中斷是沒有問題的嗎?

兩者結合使用時,中斷部分可以檢查維護表是否正確改變。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/BootLoader-%E5%92%8C-Application%E9%97%AE%E9%A2%98/m-p/743502

0
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

對,單獨運行的時候是沒有問題的,在app的lsl文件中已經更改了相關地址,關於引導表我應該查看哪一部分呢? 0x80100020。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/BootLoader-%E5%92%8C-Application%E9%97%AE%E9%A2%98/m-p/743647

0
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

現在發現boot和app程式裡面只有一個可以停用,這取決於使用AURIX ™ Development Studio第二次下載的檔案。中使用中斷,如果在上電運行時boot程式中使用中斷則整個程式都會卡住,因為這個沒辦法調試,所以不知道卡在哪裡。軟體下載boot程序,在boot中使用中斷沒有問題,調試發現在APP中使用中斷進入debug,如下圖:

wqh98_0-1713943869773.pngwqh98_1-1713943894552.png

能看到的是進入debug之前的位址是0x800013B8

wqh98_2-1713943945464.png

這個該怎麼去理解?

0
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

嗨,

聽起來好像中斷作業表沒有分配好,我猜測是你bootloader和app的中斷作業表地址重疊了,所以會出現第二次燒錄後,之前的中斷不能使用了。

你可以把bootloader和app的連結檔都發出來。

0
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

感謝回复,以下是boot程式的lsl檔案和app程式的lsl檔案。

0
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

嗨,

我看了你的lsl文件,boot和app的中斷服務表確實是重疊的,定義的位址是一樣的,因此會發生覆蓋。

boot和app的INTVEC和TRAPVEC位址需要不一樣,而且要隔開,建議隔開的位址最少10k

#define LCF_INTVEC0_START   0x801F4000
#define LCF_INTVEC1_START   0x801F5000
#define LCF_INTVEC2_START   0x801F3000

#define LCF_TRAPVEC0_START  0x80000100
#define LCF_TRAPVEC1_START  0x801F6200
#define LCF_TRAPVEC2_START  0x801F6000

 

0
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

謝謝,確實是這樣的問題,以後將app和boot程式的INTVEC和TRAPVEC放到不同的扇區,問題就解決了。

0