* [ECOS] STM32 Standard Peripheral Library in eCos
@ 2014-06-18 8:18 Oleg Uzenkov
2014-06-18 9:16 ` Jerzy Dyrda
0 siblings, 1 reply; 5+ messages in thread
From: Oleg Uzenkov @ 2014-06-18 8:18 UTC (permalink / raw)
To: ecos-discuss
Dear All,
I have a question regarding STM32 Standard Peripheral Library and using
this library with eCos.
Is there any way (a HAL wrapper or something) to interface drivers from
this library in application with eCos?
Do you reckon it is feasible to make an eCos port for a driver from this
library? I started doing so for SDIO but got overwhelmed with how much
staff needs rewriting in the eCos way.
There are some drivers like SDIO to interface SD card that are not
implemented in eCos yet, and it would great to have such support.
I would be grateful for any information on this.
Oleg
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] STM32 Standard Peripheral Library in eCos
2014-06-18 8:18 [ECOS] STM32 Standard Peripheral Library in eCos Oleg Uzenkov
@ 2014-06-18 9:16 ` Jerzy Dyrda
2014-06-18 9:39 ` Oleg Uzenkov
0 siblings, 1 reply; 5+ messages in thread
From: Jerzy Dyrda @ 2014-06-18 9:16 UTC (permalink / raw)
To: ecos-discuss; +Cc: Oleg Uzenkov
Hello Oleg,
On Wednesday 18 of June 2014 11:18:09 Oleg Uzenkov wrote:
> I have a question regarding STM32 Standard Peripheral Library and using
> this library with eCos.
>
> Is there any way (a HAL wrapper or something) to interface drivers from
> this library in application with eCos?
No. Writing ETH driver for STM32 I used STM32 Standard Peripheral Library
as a source of knowledge.
IMHO STM32 Standard Peripheral Library doesn't fit to any driver oriented OS but
due to fact that it exists some system just incorporate it as it i.e. agreed for its drawbacks.
> Do you reckon it is feasible to make an eCos port for a driver from this
> library? I started doing so for SDIO but got overwhelmed with how much
> staff needs rewriting in the eCos way.
>
> There are some drivers like SDIO to interface SD card that are not
> implemented in eCos yet, and it would great to have such support.
Please look at this discussion :
https://sourceware.org/ml/ecos-discuss/2014-06/msg00005.html
https://sourceware.org/ml/ecos-discuss/2014-06/msg00009.html
Best regards,
jerzy
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] STM32 Standard Peripheral Library in eCos
2014-06-18 9:16 ` Jerzy Dyrda
@ 2014-06-18 9:39 ` Oleg Uzenkov
2014-06-18 10:08 ` Jerzy Dyrda
0 siblings, 1 reply; 5+ messages in thread
From: Oleg Uzenkov @ 2014-06-18 9:39 UTC (permalink / raw)
To: ecos-discuss
Thanks Jerzy,
On 18.06.14 12:16, Jerzy Dyrda wrote:
> Hello Oleg,
>
> On Wednesday 18 of June 2014 11:18:09 Oleg Uzenkov wrote:
>
>> I have a question regarding STM32 Standard Peripheral Library and using
>> this library with eCos.
>>
>> Is there any way (a HAL wrapper or something) to interface drivers from
>> this library in application with eCos?
> No. Writing ETH driver for STM32 I used STM32 Standard Peripheral
> Library
> as a source of knowledge.
>
> IMHO STM32 Standard Peripheral Library doesn't fit to any driver
> oriented OS but
> due to fact that it exists some system just incorporate it as it i.e.
> agreed for its drawbacks.
Please, could you name some OS that incorporate it? I was looking for
any, out of curiosity, but could not find any, apart from RTX Real Time
Operating System (first time heard of it).
>
>> Do you reckon it is feasible to make an eCos port for a driver from this
>> library? I started doing so for SDIO but got overwhelmed with how much
>> staff needs rewriting in the eCos way.
>>
>> There are some drivers like SDIO to interface SD card that are not
>> implemented in eCos yet, and it would great to have such support.
> Please look at this discussion :
>
> https://sourceware.org/ml/ecos-discuss/2014-06/msg00005.html
> https://sourceware.org/ml/ecos-discuss/2014-06/msg00009.html
>
> Best regards,
> jerzy
>
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] STM32 Standard Peripheral Library in eCos
2014-06-18 9:39 ` Oleg Uzenkov
@ 2014-06-18 10:08 ` Jerzy Dyrda
2014-06-18 12:40 ` Oleg Uzenkov
0 siblings, 1 reply; 5+ messages in thread
From: Jerzy Dyrda @ 2014-06-18 10:08 UTC (permalink / raw)
To: Oleg Uzenkov; +Cc: ecos-discuss
Hello Oleg,
On Wednesday 18 of June 2014 12:39:04 Oleg Uzenkov wrote:
[snip]
> > IMHO STM32 Standard Peripheral Library doesn't fit to any driver
> > oriented OS but
> > due to fact that it exists some system just incorporate it as it i.e.
> > agreed for its drawbacks.
> Please, could you name some OS that incorporate it?
E.g. FreeRTOS.
> Does anyone know of any examples using MMC SPI driver in ecos to interface
> SD card (any platform)? I would appreciate any links or sample code.
#include <pkgconf/system.h>
#ifdef CYGPKG_DEVS_DISK_MMC
#include <pkgconf/io_fileio.h>
#include <pkgconf/fs_fat.h>
#endif
#include <cyg/infra/cyg_type.h>
#include <cyg/infra/testcase.h> // Test macros
#include <cyg/infra/cyg_ass.h> // Assertion macros
#include <cyg/infra/diag.h> // Diagnostic output
#include <fcntl.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
#include <dirent.h>
#include <stdio.h>
#include <cyg/hal/hal_arch.h> // CYGNUM_HAL_STACK_SIZE_TYPICAL
#include <cyg/hal/hal_if.h>
#include <cyg/kernel/kapi.h>
#include <string.h>
#include CYGHWR_MEMORY_LAYOUT_H
#ifdef CYGPKG_NET_LWIP
#include <lwip.h>
#endif // CYGPKG_NET_LWIP
#ifdef CYGPKG_DEVS_DISK_MMC
#include <cyg/fileio/fileio.h>
#include <cyg/fs/fatfs.h>
#endif
externC int hello_world(void);
void do_version (void);
#ifdef CYGPKG_DEVS_DISK_MMC
#ifdef CYGPKG_DEVS_SPI_CORTEXM_STM32
#include <cyg/io/spi_stm32.h>
CYG_DEVS_SPI_CORTEXM_STM32_DEVICE (
cyg_spi_mmc_dev0, 3, 0, false, 0, 0, 5000000, 1, 1, 1
);
#else
#error "Needed SPI connection to MMC card"
#endif
void checkcwd( const char *cwd )
{
static char cwdbuf[PATH_MAX];
char *ret;
ret = getcwd( cwdbuf, sizeof(cwdbuf));
if( ret == NULL ) diag_printf("Error getcwd\n");
if( strcmp( cwdbuf, cwd ) != 0 )
{
diag_printf( "cwdbuf %s cwd %s\n",cwdbuf, cwd );
diag_printf( "Current directory mismatch");
}
}
static void listdir( char *name, int statp, int numexpected, int *numgot )
{
int err;
DIR *dirp;
int num=0;
diag_printf("<INFO>: reading directory %s\n",name);
dirp = opendir( name );
if( dirp == NULL ) diag_printf("Can't opendir\n");
for(;;)
{
struct dirent *entry = readdir( dirp );
if( entry == NULL )
break;
num++;
diag_printf("<INFO>: entry %14s",entry->d_name);
#ifdef CYGPKG_FS_FAT_RET_DIRENT_DTYPE
diag_printf(" d_type %2x", entry->d_type);
#endif
if( statp )
{
char fullname[PATH_MAX];
struct stat sbuf;
if( name[0] )
{
strcpy(fullname, name );
if( !(name[0] == '/' && name[1] == 0 ) )
strcat(fullname, "/" );
}
else fullname[0] = 0;
strcat(fullname, entry->d_name );
err = stat( fullname, &sbuf );
if( err < 0 )
{
if( errno == ENOSYS )
diag_printf(" <no status available>");
else diag_printf( "stat=%d err=%x\n", stat, err );
}
else
{
diag_printf(" [mode %08x ino %08x nlink %d size %ld]",
sbuf.st_mode,sbuf.st_ino,sbuf.st_nlink,(long)sbuf.st_size);
}
#ifdef CYGPKG_FS_FAT_RET_DIRENT_DTYPE
if ((entry->d_type & S_IFMT) != (sbuf.st_mode & S_IFMT))
diag_printf("File mode's don't match between dirent and stat");
#endif
}
diag_printf("\n");
}
err = closedir( dirp );
if( err < 0 ) diag_printf( "stat=%d err=%x\n", stat, err );
if (numexpected >= 0 && num != numexpected)
diag_printf("Wrong number of dir entries\n");
if ( numgot != NULL )
*numgot = num;
}
#endif
int main(void)
{
#ifdef CYGPKG_DEVS_DISK_MMC
int existingdirents=-1;
diag_printf("Mounting MMC disk\n");
if (ENOERR != mount( "/dev/mmcdisk0/", "/disk", "fatfs" ))
diag_printf("MMC disk not mounted\n");
if (ENOERR != chdir( "/disk" ))
diag_printf("Changing directory to /disk failed\n");
checkcwd( "/disk" );
listdir( "/disk", true, -1, &existingdirents );
#endif
Best regards,
jerzy
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] STM32 Standard Peripheral Library in eCos
2014-06-18 10:08 ` Jerzy Dyrda
@ 2014-06-18 12:40 ` Oleg Uzenkov
0 siblings, 0 replies; 5+ messages in thread
From: Oleg Uzenkov @ 2014-06-18 12:40 UTC (permalink / raw)
To: ecos-discuss
Many thanks for your help, Jerzy!
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-06-18 12:40 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-18 8:18 [ECOS] STM32 Standard Peripheral Library in eCos Oleg Uzenkov
2014-06-18 9:16 ` Jerzy Dyrda
2014-06-18 9:39 ` Oleg Uzenkov
2014-06-18 10:08 ` Jerzy Dyrda
2014-06-18 12:40 ` Oleg Uzenkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).