在main.c 中使用這個函數(shù)正常,移植的lorawan 的RTC回調函數(shù)里會調用AES128加密,跟蹤后發(fā)現(xiàn),中斷回調執(zhí)行uint8_t LL_Encrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *encryptData ); 函數(shù)后死機。
請問有什么辦法可以解決?
RTC使用可以參考:
CH573RTC - SweetTea_lllpc - 博客園 (cnblogs.com)
AES128加密參考:
求助:CH571單獨使用硬件AES模塊的初始化問題。 - 沁恒微電子社區(qū) (wch.cn)
接口函數(shù)都有,無需移植其他的代碼。
@TECH_Lpc?我的問題不是RTC的使用或者AES128的使用。
我的問題是在中斷里調用 AES128?加密解密會死機。。。
初始化函數(shù)不要放在中斷服務函數(shù)里面調用,直接初始化的時候調用就可以了。
同時這是庫函數(shù),協(xié)議棧已有,調用使用即可。
@TECH_Lpc? ?我的問題是?我需要在?中斷中調用?uint8_t LL_Encrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *encryptData );? 這個函數(shù)。
你的回答是讓我不要在中斷中用。。。
問題是我必須要再中斷中用啊。。。。
用類似OS的模式,中斷里放Pending標記,在主循環(huán)里處理。中斷里盡量少放操作,尤其是耗時的。
1、中斷中可以置標志處理事件,函數(shù)內容不建議放在中斷中處理,因為中斷要求快進快出,放一個庫函數(shù)在中斷中,我們也無法確定執(zhí)行時間和異常情況;
2、通過tmos任務或者while循環(huán),查看中斷的標志是否置位,如果置位成功,將執(zhí)行tmos/while中的AES代碼;