eCos

eCos (embedded Configurable operating system) is an open source, royalty-free, real-time operating system intended for embedded systems and applications which need only one process with multiple threads. For more information look at Wikipedia or eCos homepage.

Plese help me with eCos testing and developing new eCos drivers. Patches are gratefully welcome.

Thanks, Michal Simek

How to compile eCos

  • choose build→templates
  • choose your board – the name for reference board corresponds with table at reference design page
  • choose package net for eCos, network support

Ecos template

  • choose proper location for your ecos project
    • sw/user-project folder is used for this purpose

Ecos saving folder

  • check your platform settings
    • in this reference design, you have to disable GPIO_2 periphery because it implements system reset functionality

Turn of GPIO_2

  • build your eCos Build→library
  • check your build output

Build output

  • if you have any problem with compilation, check your setting or contact me
  • your project folder contain some folders and file
    • ecos_install
    • ecos_build
    • ecos_mlt
    • ecos.ecc – project settings
  • currently you have prepared eCos libraries for your first application powered by eCos
    • for first application with eCos follow the manual
    • for useful application (e.g. shell) look at here
    • for test compiling look here

Problems

Unsupported fatal-warnings

  • find CYGPKG_INFRA_LDFLAGS_ADD option and remove this option from your setting
cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
  # Flavor: data
  user_value -Wl
  # value_source user
  # Default value: -Wl,--fatal-warnings
};

No build directory

make: *** /home/projects/ecos/sw/projects/RedBoot-gdb/redboot1_build: No such file or directory.  Stop.
  • Solution: Build→Generate build tree (CTRL+F3)
    • this re-creates folder structure in your project again

Know limitation

  • based on old source code - I have updated version but there is issue with eCos, RedBoot work well
  • weak driver support
  • vectors are placed by linker script directly to BRAM which break BIN file loading
  • CPU without MSR instruction is not handled correctly
  • weak optimalization on Microblaze version
  • based on older ecos version → update to latest version
  • acsupport/config.sub - missing Microblaze architecture
  • test, test, test
  • do not use printf in your application, this cased system crash, you can use diag_printf →seems that problem is with malloc or in serial driver
  • cpu handling is not clear, for example parameter –mcpu is filled from generic platfrom not from cpu
  • currentry is supported only one version of MB but this is base support which could be used for higher version
ecos/ecos/ecos.txt · Last modified: 2020/09/01 10:59 by 127.0.0.1
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0