RTEMS 5 how to run "hello" example

Joel Sherrill joel at rtems.org
Tue Mar 16 19:07:32 UTC 2021


On Tue, Mar 16, 2021 at 1:40 PM Olga Syrbachova <syrba4eva28 at gmail.com>
wrote:

> Thank you very much for your reply and for your concern!
>
> Actually I'd like to create my own application and test some mechanisms,
> provided by RTEMS. This is a part of my Bachelor Thesis. I'd like,
> for example, to create two/three tasks and make them communicate with each
> other via queues, schedule them by priority etc. I have some experience
> with FreeRTOS. It is run via Visual Studio, which is quite simple. And now
> with RTEMS I am a bit frustrated and don't know where to start. That's why
> I followed the tutorial on the Website. "Hello World" program worked just
> fine, so I decided to try some more complicated applications before I start
> with my own, that's why I decided to build "ticker" with waf. Unfortunately
> I didn't find any helpful (for me) tutorial on how to create applications
> in RTEMS. I mean I can handle writing the App's code, but I don't get it
> how to compile and run it. So I was just going to do the same as in the
> tutorial, but with my own application. Is it the right way to proceed or is
> there another way ?
>

The tests in RTEMS are just that tests. They depend on things that
shouldn't be installed or used by user applications.

I would recommend cloning rtems-examples and going from one of those. There
is a directory with variations on ticker and I suspect the base one is a
better one to start from.

If you want to write POSIX code, one of the POSIX examples there would
serve you ok

--joel


>
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virenfrei.
> www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
> <#m_-8462729502950921950_m_6778778117170402098_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> On Tue, 16 Mar 2021 at 16:29, Vijay Kumar Banerjee <vijay at rtems.org>
> wrote:
>
>> On Tue, Mar 16, 2021 at 4:07 AM Olga Syrbachova <syrba4eva28 at gmail.com>
>> wrote:
>> >
>> > Thank you very much for your reply!
>> >
>> > I've added
>> > includes =
>> '/home/olga/development/rtems/rtems-5/testsuites/support/include/tmacros.h',
>> >
>> It takes the relative address to the directory where the header file
>> is. For example, if you're building from the
>> "/home/olga/development/rtems" directory the includes argument would
>> be:
>>
>> `includes = './rtems-5/testsuites/support/include/'`
>>
>> BTW, your first email at the start of the thread says that you just
>> want to run the samples, the samples get built as a part of the rtems
>> and you'll be able to see the *.exe files in the build directory. Is
>> there any reason that you're trying to build it in a separate
>> directory with waf? Experimenting with the build system is a good
>> reason though, just making sure that we're not pushing you in the
>> wrong direction and your objective is indeed to try waf on your own
>> and not just running RTEMS hello app.
>>
>> Best regards,
>> Vijay
>>
>>
>> > it still says "No such file or directory". I'm pretty sure the path is
>> write, though there is now another path to "tmacros.h" (the first one
>> below), it's a folder named "tmacros.h" and it's empty.
>> > olga at olga-H270M-DS3H:~$ locate tmacros.h
>> >
>> /home/olga/development/app/ticker/build/sparc-rtems5-erc32/$HOME/developement/rtems/rtems-5/testsuites/support/include/tmacros.h
>> >
>> /home/olga/development/rtems/rtems-5/testsuites/support/include/tmacros.h
>> >
>> >
>> > On Mon, 15 Mar 2021 at 21:00, Vijay Kumar Banerjee <vijay at rtems.org>
>> wrote:
>> >>
>> >> On Mon, Mar 15, 2021 at 1:53 PM Olga Syrbachova <syrba4eva28 at gmail.com>
>> wrote:
>> >> >
>> >> > Sure! https://github.com/syrba4eva/RTEMS/blob/main/wscript
>> >>
>> >> Thanks. In this line:
>> https://github.com/syrba4eva/RTEMS/blob/main/wscript#L33
>> >> After cflags parameter, add "includes", for example:
>> >>
>> >> bld(features = 'c cprogram',
>> >>       target = 'ticker.exe',
>> >>       cflags = '-g -O2',
>> >>       includes='. .. ./original/path/to/tmacros.h',
>> >>       source = ['init.c', 'tasks.c'])
>> >>
>> >> you don't need to copy tmacros.h or any headers from rtems, just add
>> >> the path to includes.
>> >>
>> >>
>> >> Best regards,
>> >> Vijay
>> >>
>> >> >
>> >> > On Mon, 15 Mar 2021 at 20:36, Vijay Kumar Banerjee <vijay at rtems.org>
>> wrote:
>> >> >>
>> >> >> On Mon, Mar 15, 2021 at 1:30 PM Olga Syrbachova <
>> syrba4eva28 at gmail.com> wrote:
>> >> >> >
>> >> >> > Thank you very much for your reply!
>> >> >> > Unfortunately I'm still a bit confused and don't quite understand
>> what to do. Where do I need to modify the "include" parameter? In the
>> wscript file from the "hello" example there is no "include" parameter. I
>> also tried to find a tutorial on how to write a wscript, but didn't find
>> any (Could you suggest any please?). So I tried to copy the file
>> "tmacros.h" from testsuites/support/include to app/ticker. Now after
>> running ./waf I get an error, which tells me that "buffer_test_io.h" wasn't
>> found. When I copied it to my app/ticker directory it didn't work and I
>> still have the same error.
>> >> >> >
>> >> >> Would it be possible for you to paste your wscript somewhere (like
>> >> >> gist.github.com) and share it here so that we can have a look and
>> help
>> >> >> you with that?
>> >> >>
>> >> >> Best regards,
>> >> >> Vijay
>> >> >>
>> >> >> > Waf: Entering directory
>> `/home/olga/development/app/ticker/build/sparc-rtems5-erc32'
>> >> >> > [1/3] Compiling tasks.c
>> >> >> > [2/3] Compiling init.c
>> >> >> > In file included from ../../system.h:17:0,
>> >> >> >                  from ../../init.c:15:
>> >> >> > ../../tmacros.h:32:10: fatal error: buffer_test_io.h: No such
>> file or directory
>> >> >> >  #include <buffer_test_io.h>
>> >> >> >           ^~~~~~~~~~~~~~~~~~
>> >> >> > compilation terminated.
>> >> >> >
>> >> >> > In file included from ../../system.h:17:0,
>> >> >> >                  from ../../tasks.c:22:
>> >> >> > ../../tmacros.h:32:10: fatal error: buffer_test_io.h: No such
>> file or directory
>> >> >> >  #include <buffer_test_io.h>
>> >> >> >           ^~~~~~~~~~~~~~~~~~
>> >> >> > compilation terminated.
>> >> >> >
>> >> >> > Waf: Leaving directory
>> `/home/olga/development/app/ticker/build/sparc-rtems5-erc32'
>> >> >> > Build failed
>> >> >> >  -> task in 'ticker.exe' failed with exit status 1 (run with -v
>> to display more information)
>> >> >> >  -> task in 'ticker.exe' failed with exit status 1 (run with -v
>> to display more information)
>> >> >> >
>> >> >> > On Mon, 15 Mar 2021 at 16:21, Vijay Kumar Banerjee <
>> vijay at rtems.org> wrote:
>> >> >> >>
>> >> >> >> Hi Olga,
>> >> >> >>
>> >> >> >>
>> >> >> >> On Mon, Mar 15, 2021 at 8:29 AM Olga Syrbachova <
>> syrba4eva28 at gmail.com> wrote:
>> >> >> >> >
>> >> >> >> > Thank you very much for your reply!
>> >> >> >> >
>> >> >> >> > I've built the RTEMS Kernel for erc32. Then I followed this
>> tutorial https://docs.rtems.org/branches/master/user/start/app.html to
>> build a "Hello World" application and it works just fine. Then I've tried
>> to create another application following the steps in the tutorial.
>> >> >> >> > 1. In $HOME/development/app/ I created a directory "ticker".
>> >> >> >> > 2. cd ticker
>> >> >> >> > 3. curl https://waf.io/waf-2.0.19 > waf
>> >> >> >> >     chmod +x waf
>> >> >> >> >     git init
>> >> >> >> >     git submodule add git://git.rtems.org/rtems_waf.git
>> rtems_waf
>> >> >> >> > 4. I've copied the files "init.c", "tasks.c", "system.h" from
>> testsuites/samples
>> >> >> >> > 5. In the "wscript" I've changed the lines 32 and 34 to target
>> = 'ticker.exe', source = ['init.c', 'tasks.c']
>> >> >> >> > 6. ./waf configure --rtems=$HOME/development/rtems/5
>> --rtems-bsp=sparc/erc32
>> >> >> >> > 7. and running ./waf next, I get an error. It looks like the
>> file "tmacros.h", which is included in "system.h", cannot be found.
>> >> >> >> >
>> >> >> >> You have changed the "target" and "source" parameters in your
>> wscript.
>> >> >> >> You'd also need to modify the "include" parameter and add
>> relative
>> >> >> >> path to tmacros.h. For multiple headers, you'll have to add the
>> paths
>> >> >> >> as a string with space-separated values or a list like this:
>> >> >> >> `includes='./ ../ ./path/to/include/'`
>> >> >> >>
>> >> >> >>
>> >> >> >> > What am I doing wrong? Is the way to run other examples
>> exactly the same as to run a "Hello World" example?
>> >> >> >> The other examples will also follow a similar wscript structure
>> but
>> >> >> >> hello world is the simple one with fewer includes so it's a good
>> place
>> >> >> >> to start if you're trying to learn how to make a separate
>> project with
>> >> >> >> RTEMS applications using waf.
>> >> >> >>
>> >> >> >>
>> >> >> >> Best regards,
>> >> >> >> Vijay
>> >> >> >> > _______________________________________________
>> >> >> >> > users mailing list
>> >> >> >> > users at rtems.org
>> >> >> >> > http://lists.rtems.org/mailman/listinfo/users
>>
>
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virenfrei.
> www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
> <#m_-8462729502950921950_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> _______________________________________________
> users mailing list
> users at rtems.org
> http://lists.rtems.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20210316/cb91deef/attachment-0001.html>


More information about the users mailing list