* [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).