I am trying to gain access to the filename of files I read and write to the sdCard, without GUI intervention. These files will have application configuration data in them, or be used for data-logging.
I don't see any way to do this without customising CircleOS. So, I have rebuilt CircleOS from source, and re-programmed my EvoPrimer successfully.
However, I can't access my new CircleOS function within my user application. The user application fails to compile :
Running: ARM Compiler
"C:\Program Files\Raisonance\Ride\arm-gcc\bin\arm-none-eabi-gcc.exe" -MD -D_STM32F107VCT6_EVO_ -D_STM3x_ -D_STM32x_ -mthumb -mcpu=cortex-m3 "E:\Subversion\Firmware\Babybear\EvoPrimer\trunk\src\Application.c" -o "E:\Subversion\Firmware\Babybear\EvoPrimer\trunk\objdebug\Application.o" -I ".\Include" -I ".\Libraries\CMSIS\CM3\CoreSupport" -I ".\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x" -I ".\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\gcc_ride7" -I ".\Libraries\STM32_USB-FS-Device_Driver\inc" -I ".\Libraries\STM32F10x_StdPeriph_Driver\inc" -I "C:\Program Files\Raisonance\Ride\Lib\ARM\CircleOS" -c -fsigned-char -D OPEN4 -D USE_STDPERIPH_DRIVER -D USE_STM3210E_EVAL -D STM32F10X_HD -g -ffunction-sections -Winline -mlittle-endian
..\EvoPrimer\trunk\src\Application.c: In function 'dataLogging_Handler':
..\EvoPrimer\trunk\src\Application.c:644:57: error: macro "FS_SetSDCardCurrentPath" passed 1 arguments, but takes just 0
..\EvoPrimer\trunk\src\Application.c:644:17: error: 'FS_SetSDCardCurrentPath' undeclared (first use in this function)
..\EvoPrimer\trunk\src\Application.c:644:17: note: each undeclared identifier is reported only once for each function it appears in
Build failed
To rebuild CircleOS :
1. I added the new function in fs.c/fs.h.
2. I updated circle_api.h to contain :
#define FS_SET_SD_CURRENT_PATH_ID (FS_ID+14) /* Get the current path of the SDCard*/
&
#define FS_SetSDCardCurrentPath() (u32) (((tCircleFunc1)(Circle_API [FS_SET_SD_CURRENT_PATH_ID])) ((u8) (a))) /* void FS_SetSDCardCurrentPath (u8 *pathName);*/
3. I updated circle_api.c to contain :
( tCircleFunc0 )FS_SetSDCardCurrentPath,
then rebuilt CircleOS.
The updated circle_api.h is pointed to within the user application project setup.
Can anyone help explain the application compilation error, or point out anything I've done wrongly in rebuilding CircleOS?