
功能擴(kuò)展
【資料圖】
1、升級包可以做些加密功能。
2、結(jié)合pcan-view,擴(kuò)展實現(xiàn)CAN報文分析工具。
3、其實有一個很重要的功能就是TrustZone,實現(xiàn)權(quán)限訪問功能,對每個功能服務(wù)進(jìn)行分離和加密。
開發(fā)經(jīng)驗
在開發(fā)過程,遇到一些坑,分享給大家,防止掉坑里。
1、之前在rasc添加的組件不能刪除。
下面在rasc添加ThreadX,不只是RTOS,其他組件也出現(xiàn)這種情況。
當(dāng)去掉組件不使用,重新配置。但是組件還是顯示在軟件包,導(dǎo)致編譯
解決方式:經(jīng)過自己琢磨發(fā)現(xiàn),找到工程下buildinfo.gpdsc文件,刪除殘余的組件。
會有提示,點擊確認(rèn)就行,殘余的組件就沒有,可以順利編譯。
但是治不了根,當(dāng)你重新再配置,還會出現(xiàn)前面的情況,需要做同樣的操作,找到工程下buildinfo.gpdsc文件,刪除殘余的組件。可能需要做其他的配置。還有可以一種情況,在components下取消組件,在stacks還存在,比如TreadX,還在stacks中,直接Remove掉。
2、SD卡,F(xiàn)AT32文件系統(tǒng)的開發(fā)。
當(dāng)把較多變量和數(shù)組放在局部函數(shù)會導(dǎo)致,錯誤中斷
代碼例子
inttransfer_data_cm36(FIL*f_update){ UINTupdate_fnum=1;/*文件成功讀寫數(shù)量*/ BYTEupdate_ReadBuffer[64]={0};/*讀緩沖區(qū)*/u16index;u8send_transfer_flag=0;FRESULTupdate_res_sd=FR_OK;uint16_texit_crc=0xFFFF;if(update_fnum<1){}}
像這樣,運行直接Default_Handler嘗試改堆空間,也沒什么作用。
把這部分變量放到全局,就能成功運行。
staticUINTupdate_fnum=1;/*文件成功讀寫數(shù)量*/staticBYTEupdate_ReadBuffer[64]={0};/*讀緩沖區(qū)*/staticu16index;staticu8send_transfer_flag=0;staticFRESULTupdate_res_sd=FR_OK;staticuint16_texit_crc=0xFFFF;inttransfer_data_cm36(FIL*f_update){if(update_fnum<1){}}
3、CAN總線開發(fā),忘記取消過濾CANID
開發(fā)板的CAN收發(fā)器CANH和CANL絲印是反的,花了一些時間才發(fā)現(xiàn)。
SDK建議使用比較新的版本包括Keil5用比較新的,不然很可能出現(xiàn)些奇怪的問題。
編輯:黃飛
標(biāo)簽: