We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
hi guys,
i'm having a problem when compiling my program the error is as follow :
compiling SPI_STM32F4xx.c... C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\RTE_Driver\SPI_STM32F4xx.c(36): error: #5: cannot open source input file "cmsis_os.h": No such file or directory #include "cmsis_os.h" C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\RTE_Driver\SPI_STM32F4xx.c: 0 warnings, 1 error ".\Objects\untitled.axf" - 1 Error(s), 144 Warning(s). Target not created.
i really need help as soon as possible!!
So think about what that is actually telling you: either the file/directory doesn't exist at all or, if it does exist, it isn't in a location that the tools search...
It seems that you are missing the CMSIS RTOS component. Open Manage Run-Time Environment and select RTOS under CMSIS – RTOS(API).
yes i fixed yesterday thanks, i'm acually used to work with coocox and it's automatically added. But now i'm having this errors :
.\Objects\untitled.axf: Error: L6218E: Undefined symbol UB_LIS302_Read (referred from untitled.o). .\Objects\untitled.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f4xx_gpio.o).
Could you help me please?
in option for target (Alt + F7) in C/C++ you must add your header file path
i'm sorry, i'm new with keil could you tell me please what's this header file path and where can i find it?
C:\Keil\ARM\CMSIS\RTOS or C:\Keil\ARM\Pack\ARM\CMSIS\3.20.3\CMSIS\RTOS\Template or C:\Keil\ARM\Pack\ARM\CMSIS\3.20.3\CMSIS_RTX\INC
But note that he seems to have already solved his include issue. Now it's a linker issue.
i did as you told me but it still giving me error as follow :
".\Objects\untitled.axf" - 1 Error(s), 167 Warning(s).
Where is the body for the function UB_LIS302_Read()? If you haven't provided code or libraries for it, the linker isn't going to find it.
Sounds like you're got some other defines missing from your project.
Is USE_FULL_ASSERT used? Do you have the assert_param defined? Typically this might occur in stm32f4xx_conf.h with the body function for assert_failed() in main.c Suggest a review of the ST library templates.
actually, i'm happy that you brought that up because with coocox when you wanna add some driver like li302dl or any other driver all you have to do is just click on it and it's library or code is automatically generated which is not the case with keil because i didn't know how to add it so can you tell me please how to do it?
Well you'll need to track down where CooCox magically pulls it's files, then Right-Click "Add existing file to Group" to add it to your project. If you need to specify additional Include Paths for the compiler to search, you'd do that in the Options->C/C++ pane.
ok i'll try to do it wish me luck
"i'm new with keil could you tell me please what's this header file path"
It's not special to Keil; every toolchain needs some way to know where to find files referenced by #include - this is commonly known as the "Include Path" or "Search Path" or similar.
The specific details vary according to the particular tool - so you must learn to study the manuals
For Keil:
http://www.keil.com/support/man/docs/uv4/uv4_dg_adscc.htm
www.keil.com/.../armcc_chr1359124197463.htm