『壹』 keil5軟體stm32_eval錯誤
設置一下就可以。
找到位置後,首先修改左下角的CPUDLL和DialogDLL,CPUDLL:SARMCM3.DLL。DialogDLL:DARMSTM.DLL。Dialog後的Parameter填寫你自己設置的晶元型號,注意只用填前11位編號,CPUDLL中不變。右側和左側的內容保持一致即可。
『貳』 用keil5 STM32F107系列晶元編譯一個指令時提示錯誤為 A1105E: Area directive missing 怎麼解決
STM32調試過程中常見的問題及解決方法 一、 在「Debug選項卡」下設置好模擬器的類型後,下載程序時卻提示「No ULINK Device found.」
解決辦法: Keil MDK默認使用ULINK模擬器下載程序,在「Project --->Option for Target 'xxx' --->Utilities選項卡」下把編程所使用的模擬器改為相應的類型即可。
二、 編譯工程時提示如下信息:
main.axf: Error: L6218E: Undefined symbol __BASEPRICONFIG (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __GetBASEPRI (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __RESETFAULTMASK (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __RESETPRIMASK (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __SETFAULTMASK (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __SETPRIMASK (referred from stm32f10x_nvic.o).
解決辦法:工程缺少「cortexm3_macro.s」文件,把cortexm3_macro.s和STM3210x.s全部添加到工程即可。
三、調試器不能連接到STM32的問題與解決辦法
很多人都碰到過調試器不能連接到STM32的問題,不管是IAR的J-Link還是Keil的ULink,或者是ST的ST-Link。出現這個問題時,調試軟體會提示不能建立與Cortex-M3的連接,或提示不能下載程序,或提示找不到要調試的設備等。
這樣的問題都是發生在調試那些可以在CPU不幹預的時候自動運行的模塊、或在調試低功耗模式的程序的時候。所謂「可以在CPU不幹預的時候自動運行的模塊」包括:DMA、定時器、連續轉換模式下的ADC、看門狗等模塊。
--------------------------------------------------------------------------------
這個問題的根源是:
1. 調試器需要在RAM內執行一段程序,對Flash進行擦寫操作,如果不停止這些自動運行的模塊,它們會干擾程序在RAM中的執行,致使下載失敗。比如DMA模塊被配置為不停地拷貝一段數據區,而調試器剛好需要使用DMA數據傳輸的目標區域,這時DMA的操作將會與調試器的操作發生沖突。再比如,如果啟動了看門狗而沒有執行硬體復位,則在下次調試器需要下載程序時,看門狗超時將觸發晶元復位,導致下載操作失敗。
2. 低功耗是通過停止CPU的時鍾而實現,JTAG調試是通過與CPU的通信實現,停止了CPU的時鍾致使調試器會失去與CPU的通信。
『叄』 在keil5新建stm32工程時遇到的問題
可能是你文件覆蓋的時候沒有清除原來的輸出文件,一般是把輸出文件全部刪除,然後點開
Target->output,把裡面的Create Batch File的√去掉,保存後重新編譯就可以了
『肆』 Keil 編譯STM32 遇到異常怎麼解決
這個問題一般出現在移動庫,或者將兩個程序合並的時候報錯
原因是舊版的庫與新版的庫發生沖突了,沖突的原因是舊版和新版都定義了同一個東西,比如「s32」,於是就會發生重定義的報錯
解決這個問題的方法其實也不難,因為編寫程序的時候有一個防止重定義的宏,在新版的庫裡面添加這樣的一個宏就可以消除大部分的錯誤了
我們先找到從定義的地方,雙擊錯誤跟蹤到報錯的地方我們可以看到這里就是type定義的地方,看到上面有一個「#ifndef
__STM32F10x_TYPE_H」,這個就是舊版的宏,只要將這個宏在新版的相應位置定義一下就好
到新版的庫文件中,注意要消除只讀的設置,從錯誤來看,是「s32」發生了重定義,那麼就是說,新版的庫應該也是有「s32」的定義,於是用搜索功能,找到「s32」定義的地方
然後在這個定義的上方補充定義這個宏就可以解決一部分的問題了,添加這樣一段
#ifndef
__STM32F10x_TYPE_H//補充定義舊版的宏
#define
__STM32F10x_TYPE_H
#endif
#47-D:
incompatible
redefinition
of
macro
"SCS_BASE"
的錯誤解決方法也差不多,補充定義舊版宏即可解決大部分問題,這次是在core_cm3.c文件中,注意解鎖
『伍』 KEIL編程stm32程序,其中編譯有個錯誤
調用時,你作為char使用,而你定義的時候是const
void,所以你看看參數類型有沒有問題,或函數調用是不是錯誤賦值了。
『陸』 求助,keil 5無法加入stm32f4XX的庫
Keil μVision3 有兩個版本,Keil_C51 和keil_ARM (也叫RV MDK),你把兩個都裝了,就能同時編譯stm32和單片機51了。現在用的都是Keil μVision4了啊!
『柒』 Keil5在編譯stm32工程的時候出現下面的情況,怎麼解決
軟體和系統的兼容性問題,要麼重裝keil5。要麼換系統或者使用keil4。
『捌』 用keil5編寫stm32程序遇到的問題
rom地址和容量是根據晶元型號自動選擇的,你不能改變。
仔細看下在XXXX.s文件,里邊如何引導至main()地址的。
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
『玖』 問一個keil5的編譯錯誤的問題
提示指出了4個未定義的符號,在文件中無法識別到。
例如 stm32f4xx_it 中用到了 EXTI_ClearITPendingBit,但是從 stm32f4xx_it 這個模塊的角度而言,它查不到你在哪裡定義了這個符號,無法判斷這個符號究竟是什麼,也就無法進行連接。
一般而言都是包含關系有錯誤,或工程的搜尋路徑配置有問題。
『拾』 WIN8系統安裝STM32 ST-LINK Utility v3.9.0,KEIL無法編譯構建,燒錄軟體也不能連接HEX文件
1、插上STlink,檢查下你的設備管理器裡面有沒有驅動。
2、沒顯示驅動確認下線什麼是不是有問題,拔插下試試。驅動安裝了但是不是stlink驅動就安裝下對應的驅動。一半utility會安裝的
3、stlink utility 和 keil 是不能同時連接stlink 的,一個連上後,另一個連會報錯
4、有問題再說