Discussion:
Need infos on Nuttx
(too old to reply)
Michel
2012-10-25 21:12:15 UTC
Permalink
Hello,

I just discovered Nuttx and I am very impressed by the work. Congratulation!

I plan to use it for my project. Can you please give me some information on the following points:
-is there any roadmap for Nuttx?
-Nuttx tcp/ip stack:does the packet size small like with uip or big like lwip?
-Nuttx tcp/ip stack: I saw noticed driver for CC1101. It is applicable for the CC2420 chip for 802.14.5?
-how to connect a Wifi module?
-is there a way to get dll-style dynamic code? I would like to download piece of code over the air


In advance, thank you
Michel
Gregory N
2012-10-25 21:49:04 UTC
Permalink
Hi, Michel,
Post by Michel
I just discovered Nuttx and I am very impressed by the work. Congratulation!
Thanks. I hope it serves you will. I am committed to helping people get started. So please feel free to ask as many questions as you like.
Post by Michel
-is there any roadmap for Nuttx?
Not really. It has already achieved most of its original goals. At present, I just add support for new architectures if people provide me some hardware or just add new OS features if I am inspired.

If you have some ideas about directions that you would like to see it evolve, that would be a good thing to share.
Post by Michel
-Nuttx tcp/ip stack:does the packet size small like with uip or big like lwip?
You can use any packet size that you like by setting the configuration variable CONFIG_NET_BUFSIZE (of course if that is greater than 1500+ your driver will need to change to support huge packets).

The packet size is configurable in uIP too, but all of the examples use tiny packets. I am very conservative and most of my examples have tiny packet sizes too. But that is only because I set CONFIG_NET_BUFSIZE to a small number.
Post by Michel
-Nuttx tcp/ip stack: I saw noticed driver for CC1101. It is applicable for the CC2420 chip for 802.14.5?
I really don't know very much about this driver because it was contributed. I did not write and have never used it. Sorry, I can't answer that one.
Post by Michel
-how to connect a Wifi module?
Are you talking about an 802.11 WiFi module? By module, do you mean those self-contained modules that include the 802.11 stack. The ones that I am familiar with have a standard UART interface. I have not used those but I am pretty sure that would be a pretty easy thing to implement.

If you are talking about a 802.11 WiFI device that requires a 802.11 stack in NuttX, then nothing like that exists now. I helped some people in the past working on an RTL8187 USB WiFi. That code is partially tested and is in misc/drivers/rtl8187. However, in order to make that work, you would need to integrate an 802.11 stack.
Post by Michel
-is there a way to get dll-style dynamic code? I would like to download piece of code over the air
Yes, there are two ways.

First, there is the NuttX binary format, NXFLAT as described here: http://nuttx.org/Documentation/NuttXNxFlat.html and http://nuttx.org/doku.php?id=wiki:vfs:nxflat . Also, search the messages in this forum. There was quite a bit of discussion a couple of months ago.

NXFLAT is optimized for working with XIP images in FLASH.

The second way is to use partially linked ELF files. The NuttX dynamic linker will load the ELF file in RAM and link it to the FLASH code. That sounds like a more appropriate format for excecutables received over a netwok.

This ELF loader, however, is currently under development. I am testing as I speak and hope to have the first working version released in a couple of days (the non-working version is already in SVN).

Greg
Michel
2012-10-25 22:28:26 UTC
Permalink
Hello Gregory,

Thank you for your fast response!

Concerning the roadmap, for my project, I would be interested by the addition of middleware features like publish/subscribe. If you are interested by the idea, I can give more explanation.

About the wifi module: I am thinking about new generation of WiFi chips like the TI CC3000 that already integrates the 802.11 stack.
See: http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_for_MCU.
For example, the Tiwi-SL modules integrates the CC3000 chip.

The MCU (host controller) "just have" to manage the TCP/IP stack and SPI connection to the CC3000. See the second post of:
http://e2e.ti.com/support/low_power_rf/f/851/t/208684.aspx
that provide some code for the STM32 for that purpose.

I continue my list of questions :-)
-is the TCP/IP stack IPV6?
-are USB hubs supported?


Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I just discovered Nuttx and I am very impressed by the work. Congratulation!
Thanks. I hope it serves you will. I am committed to helping people get started. So please feel free to ask as many questions as you like.
Post by Michel
-is there any roadmap for Nuttx?
Not really. It has already achieved most of its original goals. At present, I just add support for new architectures if people provide me some hardware or just add new OS features if I am inspired.
If you have some ideas about directions that you would like to see it evolve, that would be a good thing to share.
Post by Michel
-Nuttx tcp/ip stack:does the packet size small like with uip or big like lwip?
You can use any packet size that you like by setting the configuration variable CONFIG_NET_BUFSIZE (of course if that is greater than 1500+ your driver will need to change to support huge packets).
The packet size is configurable in uIP too, but all of the examples use tiny packets. I am very conservative and most of my examples have tiny packet sizes too. But that is only because I set CONFIG_NET_BUFSIZE to a small number.
Post by Michel
-Nuttx tcp/ip stack: I saw noticed driver for CC1101. It is applicable for the CC2420 chip for 802.14.5?
I really don't know very much about this driver because it was contributed. I did not write and have never used it. Sorry, I can't answer that one.
Post by Michel
-how to connect a Wifi module?
Are you talking about an 802.11 WiFi module? By module, do you mean those self-contained modules that include the 802.11 stack. The ones that I am familiar with have a standard UART interface. I have not used those but I am pretty sure that would be a pretty easy thing to implement.
If you are talking about a 802.11 WiFI device that requires a 802.11 stack in NuttX, then nothing like that exists now. I helped some people in the past working on an RTL8187 USB WiFi. That code is partially tested and is in misc/drivers/rtl8187. However, in order to make that work, you would need to integrate an 802.11 stack.
Post by Michel
-is there a way to get dll-style dynamic code? I would like to download piece of code over the air
Yes, there are two ways.
First, there is the NuttX binary format, NXFLAT as described here: http://nuttx.org/Documentation/NuttXNxFlat.html and http://nuttx.org/doku.php?id=wiki:vfs:nxflat . Also, search the messages in this forum. There was quite a bit of discussion a couple of months ago.
NXFLAT is optimized for working with XIP images in FLASH.
The second way is to use partially linked ELF files. The NuttX dynamic linker will load the ELF file in RAM and link it to the FLASH code. That sounds like a more appropriate format for excecutables received over a netwok.
This ELF loader, however, is currently under development. I am testing as I speak and hope to have the first working version released in a couple of days (the non-working version is already in SVN).
Greg
Gong Darcy
2012-10-26 01:41:54 UTC
Permalink
hi Greg and Michel,
Your discussion I am also interested.
I Wifi 802.11/802.15 protocol stack.
I learned new the Wifi chip will be low to around $ 1.50. RT-THREAD working
group has begun to WIFI chip integrated into their platform. This is the
future of the Internet of Things technology trends, will ZIGBEE impact.

I Nuttx the completion of high precision / high real degree of task have
questions? Can you do it?

darcy
Post by Michel
**
Hello Gregory,
Thank you for your fast response!
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
About the wifi module: I am thinking about new generation of WiFi chips
like the TI CC3000 that already integrates the 802.11 stack.
See: http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_for_MCU.
For example, the Tiwi-SL modules integrates the CC3000 chip.
The MCU (host controller) "just have" to manage the TCP/IP stack and SPI
http://e2e.ti.com/support/low_power_rf/f/851/t/208684.aspx
that provide some code for the STM32 for that purpose.
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
-are USB hubs supported?
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I just discovered Nuttx and I am very impressed by the work.
Congratulation!
Post by Gregory N
Thanks. I hope it serves you will. I am committed to helping people get
started. So please feel free to ask as many questions as you like.
Post by Gregory N
Post by Michel
I plan to use it for my project. Can you please give me some
-is there any roadmap for Nuttx?
Not really. It has already achieved most of its original goals. At
present, I just add support for new architectures if people provide me some
hardware or just add new OS features if I am inspired.
Post by Gregory N
If you have some ideas about directions that you would like to see it
evolve, that would be a good thing to share.
Post by Gregory N
Post by Michel
-Nuttx tcp/ip stack:does the packet size small like with uip or big
like lwip?
Post by Gregory N
You can use any packet size that you like by setting the configuration
variable CONFIG_NET_BUFSIZE (of course if that is greater than 1500+ your
driver will need to change to support huge packets).
Post by Gregory N
The packet size is configurable in uIP too, but all of the examples use
tiny packets. I am very conservative and most of my examples have tiny
packet sizes too. But that is only because I set CONFIG_NET_BUFSIZE to a
small number.
Post by Gregory N
Post by Michel
-Nuttx tcp/ip stack: I saw noticed driver for CC1101. It is applicable
for the CC2420 chip for 802.14.5?
Post by Gregory N
I really don't know very much about this driver because it was
contributed. I did not write and have never used it. Sorry, I can't answer
that one.
Post by Gregory N
Post by Michel
-how to connect a Wifi module?
Are you talking about an 802.11 WiFi module? By module, do you mean
those self-contained modules that include the 802.11 stack. The ones that I
am familiar with have a standard UART interface. I have not used those but
I am pretty sure that would be a pretty easy thing to implement.
Post by Gregory N
If you are talking about a 802.11 WiFI device that requires a 802.11
stack in NuttX, then nothing like that exists now. I helped some people in
the past working on an RTL8187 USB WiFi. That code is partially tested and
is in misc/drivers/rtl8187. However, in order to make that work, you would
need to integrate an 802.11 stack.
Post by Gregory N
Post by Michel
-is there a way to get dll-style dynamic code? I would like to
download piece of code over the air
Post by Gregory N
Yes, there are two ways.
http://nuttx.org/Documentation/NuttXNxFlat.html and
http://nuttx.org/doku.php?id=wiki:vfs:nxflat . Also, search the messages
in this forum. There was quite a bit of discussion a couple of months ago.
Post by Gregory N
NXFLAT is optimized for working with XIP images in FLASH.
The second way is to use partially linked ELF files. The NuttX dynamic
linker will load the ELF file in RAM and link it to the FLASH code. That
sounds like a more appropriate format for excecutables received over a
netwok.
Post by Gregory N
This ELF loader, however, is currently under development. I am testing
as I speak and hope to have the first working version released in a couple
of days (the non-working version is already in SVN).
Post by Gregory N
Greg
Michel
2012-10-26 09:59:46 UTC
Permalink
Hello Greg,
Hello Darcy,

I agree with you. My opinion is the future of embedded OS is in internet of things capabalities. It means, the OS have to communicate over IP (network layer) with different kind of underlying communication protocols at MAC level. 802.15.4 or 802.11 for example.

Darcy,which WiFi chip is integrated by the RT-THREAD group?
Greg, I saw discussions about the Nuttx IP stack. Why did you decide to write your own IP stack rather than integrating something already existing like lwip?


Regards,
Michel
Post by Gong Darcy
hi Greg and Michel,
Your discussion I am also interested.
I Wifi 802.11/802.15 protocol stack.
I learned new the Wifi chip will be low to around $ 1.50. RT-THREAD working
group has begun to WIFI chip integrated into their platform. This is the
future of the Internet of Things technology trends, will ZIGBEE impact.
I Nuttx the completion of high precision / high real degree of task have
questions? Can you do it?
darcy
Post by Michel
**
Hello Gregory,
Thank you for your fast response!
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
About the wifi module: I am thinking about new generation of WiFi chips
like the TI CC3000 that already integrates the 802.11 stack.
See: http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_for_MCU.
For example, the Tiwi-SL modules integrates the CC3000 chip.
The MCU (host controller) "just have" to manage the TCP/IP stack and SPI
http://e2e.ti.com/support/low_power_rf/f/851/t/208684.aspx
that provide some code for the STM32 for that purpose.
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
-are USB hubs supported?
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I just discovered Nuttx and I am very impressed by the work.
Congratulation!
Post by Gregory N
Thanks. I hope it serves you will. I am committed to helping people get
started. So please feel free to ask as many questions as you like.
Post by Gregory N
Post by Michel
I plan to use it for my project. Can you please give me some
-is there any roadmap for Nuttx?
Not really. It has already achieved most of its original goals. At
present, I just add support for new architectures if people provide me some
hardware or just add new OS features if I am inspired.
Post by Gregory N
If you have some ideas about directions that you would like to see it
evolve, that would be a good thing to share.
Post by Gregory N
Post by Michel
-Nuttx tcp/ip stack:does the packet size small like with uip or big
like lwip?
Post by Gregory N
You can use any packet size that you like by setting the configuration
variable CONFIG_NET_BUFSIZE (of course if that is greater than 1500+ your
driver will need to change to support huge packets).
Post by Gregory N
The packet size is configurable in uIP too, but all of the examples use
tiny packets. I am very conservative and most of my examples have tiny
packet sizes too. But that is only because I set CONFIG_NET_BUFSIZE to a
small number.
Post by Gregory N
Post by Michel
-Nuttx tcp/ip stack: I saw noticed driver for CC1101. It is applicable
for the CC2420 chip for 802.14.5?
Post by Gregory N
I really don't know very much about this driver because it was
contributed. I did not write and have never used it. Sorry, I can't answer
that one.
Post by Gregory N
Post by Michel
-how to connect a Wifi module?
Are you talking about an 802.11 WiFi module? By module, do you mean
those self-contained modules that include the 802.11 stack. The ones that I
am familiar with have a standard UART interface. I have not used those but
I am pretty sure that would be a pretty easy thing to implement.
Post by Gregory N
If you are talking about a 802.11 WiFI device that requires a 802.11
stack in NuttX, then nothing like that exists now. I helped some people in
the past working on an RTL8187 USB WiFi. That code is partially tested and
is in misc/drivers/rtl8187. However, in order to make that work, you would
need to integrate an 802.11 stack.
Post by Gregory N
Post by Michel
-is there a way to get dll-style dynamic code? I would like to
download piece of code over the air
Post by Gregory N
Yes, there are two ways.
http://nuttx.org/Documentation/NuttXNxFlat.html and
http://nuttx.org/doku.php?id=wiki:vfs:nxflat . Also, search the messages
in this forum. There was quite a bit of discussion a couple of months ago.
Post by Gregory N
NXFLAT is optimized for working with XIP images in FLASH.
The second way is to use partially linked ELF files. The NuttX dynamic
linker will load the ELF file in RAM and link it to the FLASH code. That
sounds like a more appropriate format for excecutables received over a
netwok.
Post by Gregory N
This ELF loader, however, is currently under development. I am testing
as I speak and hope to have the first working version released in a couple
of days (the non-working version is already in SVN).
Post by Gregory N
Greg
Gong Darcy
2012-10-26 12:13:09 UTC
Permalink
hi Michel,

I do not know what chip solution.Present their plans.Two months ago, and
they met with developers in Beijing.They told me that.
They are perfect USB stack support (nearing completion. Released in the
rt-thread 1.1.0). According to my understanding. Should be early next year,
will support USB Wifi card. Chinese online selling USB 802.11n 150Mbps Wifi
card cheap about $ 2.2-$ 2.4.

darcy
Post by Michel
**
Hello Greg,
Hello Darcy,
I agree with you. My opinion is the future of embedded OS is in internet
of things capabalities. It means, the OS have to communicate over IP
(network layer) with different kind of underlying communication protocols
at MAC level. 802.15.4 or 802.11 for example.
Darcy,which WiFi chip is integrated by the RT-THREAD group?
Greg, I saw discussions about the Nuttx IP stack. Why did you decide to
write your own IP stack rather than integrating something already existing
like lwip?
Regards,
Michel
Post by Gong Darcy
hi Greg and Michel,
Your discussion I am also interested.
I Wifi 802.11/802.15 protocol stack.
I learned new the Wifi chip will be low to around $ 1.50. RT-THREAD
working
Post by Gong Darcy
group has begun to WIFI chip integrated into their platform. This is the
future of the Internet of Things technology trends, will ZIGBEE impact.
I Nuttx the completion of high precision / high real degree of task have
questions? Can you do it?
darcy
Post by Michel
**
Hello Gregory,
Thank you for your fast response!
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
About the wifi module: I am thinking about new generation of WiFi chips
like the TI CC3000 that already integrates the 802.11 stack.
See: http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_for_MCU.
For example, the Tiwi-SL modules integrates the CC3000 chip.
The MCU (host controller) "just have" to manage the TCP/IP stack and
SPI
Post by Gong Darcy
Post by Michel
http://e2e.ti.com/support/low_power_rf/f/851/t/208684.aspx
that provide some code for the STM32 for that purpose.
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
-are USB hubs supported?
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I just discovered Nuttx and I am very impressed by the work.
Congratulation!
Post by Gregory N
Thanks. I hope it serves you will. I am committed to helping people
get
Post by Gong Darcy
Post by Michel
started. So please feel free to ask as many questions as you like.
Post by Gregory N
Post by Michel
I plan to use it for my project. Can you please give me some
-is there any roadmap for Nuttx?
Not really. It has already achieved most of its original goals. At
present, I just add support for new architectures if people provide me
some
Post by Gong Darcy
Post by Michel
hardware or just add new OS features if I am inspired.
Post by Gregory N
If you have some ideas about directions that you would like to see it
evolve, that would be a good thing to share.
Post by Gregory N
Post by Michel
-Nuttx tcp/ip stack:does the packet size small like with uip or big
like lwip?
Post by Gregory N
You can use any packet size that you like by setting the
configuration
Post by Gong Darcy
Post by Michel
variable CONFIG_NET_BUFSIZE (of course if that is greater than 1500+
your
Post by Gong Darcy
Post by Michel
driver will need to change to support huge packets).
Post by Gregory N
The packet size is configurable in uIP too, but all of the examples
use
Post by Gong Darcy
Post by Michel
tiny packets. I am very conservative and most of my examples have tiny
packet sizes too. But that is only because I set CONFIG_NET_BUFSIZE to
a
Post by Gong Darcy
Post by Michel
small number.
Post by Gregory N
Post by Michel
-Nuttx tcp/ip stack: I saw noticed driver for CC1101. It is
applicable
Post by Gong Darcy
Post by Michel
for the CC2420 chip for 802.14.5?
Post by Gregory N
I really don't know very much about this driver because it was
contributed. I did not write and have never used it. Sorry, I can't
answer
Post by Gong Darcy
Post by Michel
that one.
Post by Gregory N
Post by Michel
-how to connect a Wifi module?
Are you talking about an 802.11 WiFi module? By module, do you mean
those self-contained modules that include the 802.11 stack. The ones
that I
Post by Gong Darcy
Post by Michel
am familiar with have a standard UART interface. I have not used those
but
Post by Gong Darcy
Post by Michel
I am pretty sure that would be a pretty easy thing to implement.
Post by Gregory N
If you are talking about a 802.11 WiFI device that requires a 802.11
stack in NuttX, then nothing like that exists now. I helped some
people in
Post by Gong Darcy
Post by Michel
the past working on an RTL8187 USB WiFi. That code is partially tested
and
Post by Gong Darcy
Post by Michel
is in misc/drivers/rtl8187. However, in order to make that work, you
would
Post by Gong Darcy
Post by Michel
need to integrate an 802.11 stack.
Post by Gregory N
Post by Michel
-is there a way to get dll-style dynamic code? I would like to
download piece of code over the air
Post by Gregory N
Yes, there are two ways.
http://nuttx.org/Documentation/NuttXNxFlat.html and
http://nuttx.org/doku.php?id=wiki:vfs:nxflat . Also, search the
messages
Post by Gong Darcy
Post by Michel
in this forum. There was quite a bit of discussion a couple of months
ago.
Post by Gong Darcy
Post by Michel
Post by Gregory N
NXFLAT is optimized for working with XIP images in FLASH.
The second way is to use partially linked ELF files. The NuttX
dynamic
Post by Gong Darcy
Post by Michel
linker will load the ELF file in RAM and link it to the FLASH code.
That
Post by Gong Darcy
Post by Michel
sounds like a more appropriate format for excecutables received over a
netwok.
Post by Gregory N
This ELF loader, however, is currently under development. I am
testing
Post by Gong Darcy
Post by Michel
as I speak and hope to have the first working version released in a
couple
Post by Gong Darcy
Post by Michel
of days (the non-working version is already in SVN).
Post by Gregory N
Greg
Gregory Nutt
2012-10-26 01:58:24 UTC
Permalink
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I sometimes tinker with it.  But there is a lot more to be done.  If I were strongly motivated, I could probably finish the IPv6 support in a week or two.  But it is not ready yet.
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.

Greg
Michel
2012-10-26 10:57:09 UTC
Permalink
Hello Greg,

Finally you got an implicit roadmap/to do list:
-IPV6
-USB hub support
-ELF loader

Something else in mind? What about middleware features as I suggested?

Do you have list of commercial and non commercial project that uses Nuttx?


Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I sometimes tinker with it.  But there is a lot more to be done.  If I were strongly motivated, I could probably finish the IPv6 support in a week or two.  But it is not ready yet.
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Gong Darcy
2012-10-26 12:25:52 UTC
Permalink
hi Michel,

Seems, Greg is a person of their own maintenance code of nuttx. I see that
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the completion
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.

darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I suggested?
Do you have list of commercial and non commercial project that uses Nuttx?
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I sometimes
tinker with it. But there is a lot more to be done. If I were strongly
motivated, I could probably finish the IPv6 support in a week or two. But
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Michel
2012-10-26 12:53:28 UTC
Permalink
Hello Darcy,

Thank you for your help!

For now, I just beginning my project and I am making my wish list to choose an appropriate embedded OS. Wireless communication is only one, but important, part of what I need.

As I said to Greg, features offered by Nuttx are really amazing and far from what I have seen with popular embedded RTOS like freeRtos, ecos, µcos and others.

I don't know too much about rt-thread and unfortunately everything is in Chinese, so I cannot evaluate. Would you please send me more information or links in English or French :-) ?
Is it a Nuttx branch?


Regards,
Michel
Post by Gong Darcy
hi Michel,
Seems, Greg is a person of their own maintenance code of nuttx. I see that
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the completion
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I suggested?
Do you have list of commercial and non commercial project that uses Nuttx?
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I sometimes
tinker with it. But there is a lot more to be done. If I were strongly
motivated, I could probably finish the IPv6 support in a week or two. But
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Gong Darcy
2012-10-26 13:19:42 UTC
Permalink
hi Michel

the rtt(rt-thread) English Forum
http://www.rt-thread.org/phpBB3/viewforum.php?f=18<http://www.rt-thread.org/phpBB3/viewforum.php?f=18>

I agree with you, nuttx is a very good platform. I'm more looking forward
to nuttx.
But now do not know much of the outside nuttx.

darcy
Post by Michel
**
Hello Darcy,
Thank you for your help!
For now, I just beginning my project and I am making my wish list to
choose an appropriate embedded OS. Wireless communication is only one, but
important, part of what I need.
As I said to Greg, features offered by Nuttx are really amazing and far
from what I have seen with popular embedded RTOS like freeRtos, ecos, µcos
and others.
I don't know too much about rt-thread and unfortunately everything is in
Chinese, so I cannot evaluate. Would you please send me more information or
links in English or French :-) ?
Is it a Nuttx branch?
Regards,
Michel
Post by Gong Darcy
hi Michel,
Seems, Greg is a person of their own maintenance code of nuttx. I see
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I suggested?
Do you have list of commercial and non commercial project that uses
Nuttx?
Post by Gong Darcy
Post by Michel
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I
sometimes
Post by Gong Darcy
Post by Michel
tinker with it. But there is a lot more to be done. If I were strongly
motivated, I could probably finish the IPv6 support in a week or two.
But
Post by Gong Darcy
Post by Michel
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Michel
2012-10-26 16:11:58 UTC
Permalink
hi Darcy,

Thank you for the pointer. I'll check it.
Why do you prefer to use lwip rather than Nuttx tcp/ip stack?

regards
michel
Post by Gong Darcy
hi Michel
the rtt(rt-thread) English Forum
http://www.rt-thread.org/phpBB3/viewforum.php?f=18<http://www.rt-thread.org/phpBB3/viewforum.php?f=18>
I agree with you, nuttx is a very good platform. I'm more looking forward
to nuttx.
But now do not know much of the outside nuttx.
darcy
Post by Michel
**
Hello Darcy,
Thank you for your help!
For now, I just beginning my project and I am making my wish list to
choose an appropriate embedded OS. Wireless communication is only one, but
important, part of what I need.
As I said to Greg, features offered by Nuttx are really amazing and far
from what I have seen with popular embedded RTOS like freeRtos, ecos, µcos
and others.
I don't know too much about rt-thread and unfortunately everything is in
Chinese, so I cannot evaluate. Would you please send me more information or
links in English or French :-) ?
Is it a Nuttx branch?
Regards,
Michel
Post by Gong Darcy
hi Michel,
Seems, Greg is a person of their own maintenance code of nuttx. I see
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I suggested?
Do you have list of commercial and non commercial project that uses
Nuttx?
Post by Gong Darcy
Post by Michel
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I
sometimes
Post by Gong Darcy
Post by Michel
tinker with it. But there is a lot more to be done. If I were strongly
motivated, I could probably finish the IPv6 support in a week or two.
But
Post by Gong Darcy
Post by Michel
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Gong Darcy
2012-10-26 16:25:12 UTC
Permalink
hi Mike,

The nothing special preferences on LWIP.Nuttx TCP / IP stack is working.
I'm a newbie. In my times of difficulties. I assume that UIP problem.
Now I only will LWIP port of Nuttx as a homework to exercise their own
ability.

darcy
Post by Michel
**
hi Darcy,
Thank you for the pointer. I'll check it.
Why do you prefer to use lwip rather than Nuttx tcp/ip stack?
regards
michel
Post by Gong Darcy
hi Michel
the rtt(rt-thread) English Forum
http://www.rt-thread.org/phpBB3/viewforum.php?f=18<
http://www.rt-thread.org/phpBB3/viewforum.php?f=18>
Post by Gong Darcy
I agree with you, nuttx is a very good platform. I'm more looking forward
to nuttx.
But now do not know much of the outside nuttx.
darcy
Post by Michel
**
Hello Darcy,
Thank you for your help!
For now, I just beginning my project and I am making my wish list to
choose an appropriate embedded OS. Wireless communication is only one,
but
Post by Gong Darcy
Post by Michel
important, part of what I need.
As I said to Greg, features offered by Nuttx are really amazing and far
from what I have seen with popular embedded RTOS like freeRtos, ecos,
µcos
Post by Gong Darcy
Post by Michel
and others.
I don't know too much about rt-thread and unfortunately everything is
in
Post by Gong Darcy
Post by Michel
Chinese, so I cannot evaluate. Would you please send me more
information or
Post by Gong Darcy
Post by Michel
links in English or French :-) ?
Is it a Nuttx branch?
Regards,
Michel
Post by Gong Darcy
hi Michel,
Seems, Greg is a person of their own maintenance code of nuttx. I see
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the
code. And
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am
very
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
happy to join, and to provide all the support I can offer.
darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I
suggested?
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
Do you have list of commercial and non commercial project that uses
Nuttx?
Post by Gong Darcy
Post by Michel
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I
sometimes
Post by Gong Darcy
Post by Michel
tinker with it. But there is a lot more to be done. If I were
strongly
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
motivated, I could probably finish the IPv6 support in a week or
two.
Post by Gong Darcy
Post by Michel
But
Post by Gong Darcy
Post by Michel
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Michel
2012-10-26 16:33:58 UTC
Permalink
Hello Darcy,

ok, I better understand.

If you are also interested by lwip + WiFi you should take a look at the CC3000 reference I gave on past posts.
But of course the $1.50 WiFi chip is a very good deal...


Michel
Post by Gong Darcy
hi Mike,
The nothing special preferences on LWIP.Nuttx TCP / IP stack is working.
I'm a newbie. In my times of difficulties. I assume that UIP problem.
Now I only will LWIP port of Nuttx as a homework to exercise their own
ability.
darcy
Post by Michel
**
hi Darcy,
Thank you for the pointer. I'll check it.
Why do you prefer to use lwip rather than Nuttx tcp/ip stack?
regards
michel
Post by Gong Darcy
hi Michel
the rtt(rt-thread) English Forum
http://www.rt-thread.org/phpBB3/viewforum.php?f=18<
http://www.rt-thread.org/phpBB3/viewforum.php?f=18>
Post by Gong Darcy
I agree with you, nuttx is a very good platform. I'm more looking forward
to nuttx.
But now do not know much of the outside nuttx.
darcy
Post by Michel
**
Hello Darcy,
Thank you for your help!
For now, I just beginning my project and I am making my wish list to
choose an appropriate embedded OS. Wireless communication is only one,
but
Post by Gong Darcy
Post by Michel
important, part of what I need.
As I said to Greg, features offered by Nuttx are really amazing and far
from what I have seen with popular embedded RTOS like freeRtos, ecos,
µcos
Post by Gong Darcy
Post by Michel
and others.
I don't know too much about rt-thread and unfortunately everything is
in
Post by Gong Darcy
Post by Michel
Chinese, so I cannot evaluate. Would you please send me more
information or
Post by Gong Darcy
Post by Michel
links in English or French :-) ?
Is it a Nuttx branch?
Regards,
Michel
Post by Gong Darcy
hi Michel,
Seems, Greg is a person of their own maintenance code of nuttx. I see
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the
code. And
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am
very
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
happy to join, and to provide all the support I can offer.
darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I
suggested?
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
Do you have list of commercial and non commercial project that uses
Nuttx?
Post by Gong Darcy
Post by Michel
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I
sometimes
Post by Gong Darcy
Post by Michel
tinker with it. But there is a lot more to be done. If I were
strongly
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
motivated, I could probably finish the IPv6 support in a week or
two.
Post by Gong Darcy
Post by Michel
But
Post by Gong Darcy
Post by Michel
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Gong Darcy
2012-10-26 17:04:45 UTC
Permalink
Hi Mike,
I RTT them done and open source.see if I can put that drive port to
nuttx.
They are the first step is to support USB WIFI card.
Darcy
Post by Michel
**
Hello Darcy,
ok, I better understand.
If you are also interested by lwip + WiFi you should take a look at the
CC3000 reference I gave on past posts.
But of course the $1.50 WiFi chip is a very good deal...
Michel
Post by Gong Darcy
hi Mike,
The nothing special preferences on LWIP.Nuttx TCP / IP stack is working.
I'm a newbie. In my times of difficulties. I assume that UIP problem.
Now I only will LWIP port of Nuttx as a homework to exercise their own
ability.
darcy
Post by Michel
**
hi Darcy,
Thank you for the pointer. I'll check it.
Why do you prefer to use lwip rather than Nuttx tcp/ip stack?
regards
michel
Post by Gong Darcy
hi Michel
the rtt(rt-thread) English Forum
http://www.rt-thread.org/phpBB3/viewforum.php?f=18<
http://www.rt-thread.org/phpBB3/viewforum.php?f=18>
Post by Gong Darcy
I agree with you, nuttx is a very good platform. I'm more looking
forward
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
to nuttx.
But now do not know much of the outside nuttx.
darcy
Post by Michel
**
Hello Darcy,
Thank you for your help!
For now, I just beginning my project and I am making my wish list
to
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
choose an appropriate embedded OS. Wireless communication is only
one,
Post by Gong Darcy
Post by Michel
but
Post by Gong Darcy
Post by Michel
important, part of what I need.
As I said to Greg, features offered by Nuttx are really amazing
and far
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
from what I have seen with popular embedded RTOS like freeRtos,
ecos,
Post by Gong Darcy
Post by Michel
µcos
Post by Gong Darcy
Post by Michel
and others.
I don't know too much about rt-thread and unfortunately everything
is
Post by Gong Darcy
Post by Michel
in
Post by Gong Darcy
Post by Michel
Chinese, so I cannot evaluate. Would you please send me more
information or
Post by Gong Darcy
Post by Michel
links in English or French :-) ?
Is it a Nuttx branch?
Regards,
Michel
Post by Gong Darcy
hi Michel,
Seems, Greg is a person of their own maintenance code of nuttx.
I see
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the
code. And
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am
very
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
happy to join, and to provide all the support I can offer.
darcy
Post by Michel
**
Hello Greg,
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I
suggested?
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
Do you have list of commercial and non commercial project that
uses
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
Nuttx?
Post by Gong Darcy
Post by Michel
Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
I continue my list of questions :-)
-is the TCP/IP stack IPV6?
No, there are some bits and pieces of IPv6 in the stack and I
sometimes
Post by Gong Darcy
Post by Michel
tinker with it. But there is a lot more to be done. If I were
strongly
Post by Gong Darcy
Post by Michel
Post by Gong Darcy
Post by Michel
motivated, I could probably finish the IPv6 support in a week
or
Post by Gong Darcy
Post by Michel
two.
Post by Gong Darcy
Post by Michel
But
Post by Gong Darcy
Post by Michel
it is not ready yet.
Post by Gregory N
Post by Michel
-are USB hubs supported?
No, there is no USB hub support yet.
Greg
Gregory N
2012-10-26 13:30:11 UTC
Permalink
Hi, Darcy,
Post by Gong Darcy
Seems, Greg is a person of their own maintenance code of nuttx. I see that
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the completion
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
Yes, I am the only developer on NuttX. That is not to say that other people have not made substantial contributions. But I wrote by far the bulk of the code. And no one does maintenance other than me and people that discover bugs and submit fixes.

I would like to open up NuttX development more. But (1) I have not met anyone else that has been willing to make a commitment like that and (2) I am not fully comfortable with opening up the repository. I think I will always need to be the "gate keeper": The single point for review, approval, and incorporation of changes.

So if we would like to distribute the development over a group of geographically separate people, then I think that we would need to do work as Linux does: Individual development "centers" for different RTOS features that submit changes upstream for incorporation into the "main line". If we want to go that direction, git would be a big help.

I've actually made this proposition a few times, but no one has taken me up on it. So I think that this model is now (and probably always will be): Only me as the developer and various people with interests drifting in and out of the develop process based upon their personal interests.

I think that is fine too. I am flexible. But it does not pass the "Bus Test." The Bus Test is: "What happens to NuttX if I get hit by a bus tomorrow."

Greg
Michel
2012-10-26 16:06:46 UTC
Permalink
Greg, Darcy,

Regarding baseline management of Nuttx I don't think the decision process is a problem.
At the risk of being provocative, Nuttx is not popular...
By popular I mean there is no buzz nor advertising on the web like forums annoucements, google ranking...
Taking my personal experience, for few months I was looking for a RTOS like Nuttix. I discovered it by accident by Googling the words: posix freertos...

I think this would be a first step to gather more developers in order to protect the Nuttx community from bus drivers! :-)


Regards
Michel
Post by Gregory N
Hi, Darcy,
Post by Gong Darcy
Seems, Greg is a person of their own maintenance code of nuttx. I see that
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the completion
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
Yes, I am the only developer on NuttX. That is not to say that other people have not made substantial contributions. But I wrote by far the bulk of the code. And no one does maintenance other than me and people that discover bugs and submit fixes.
I would like to open up NuttX development more. But (1) I have not met anyone else that has been willing to make a commitment like that and (2) I am not fully comfortable with opening up the repository. I think I will always need to be the "gate keeper": The single point for review, approval, and incorporation of changes.
So if we would like to distribute the development over a group of geographically separate people, then I think that we would need to do work as Linux does: Individual development "centers" for different RTOS features that submit changes upstream for incorporation into the "main line". If we want to go that direction, git would be a big help.
I've actually made this proposition a few times, but no one has taken me up on it. So I think that this model is now (and probably always will be): Only me as the developer and various people with interests drifting in and out of the develop process based upon their personal interests.
I think that is fine too. I am flexible. But it does not pass the "Bus Test." The Bus Test is: "What happens to NuttX if I get hit by a bus tomorrow."
Greg
Gregory Nutt
2012-10-26 17:05:42 UTC
Permalink
Hi, Michel,
Post by Michel
Regarding baseline management of Nuttx I don't think the decision process is a problem.
At the risk of being provocative, Nuttx is not popular...
By popular I mean there is no buzz nor advertising on the web like forums annoucements, google ranking...
Taking my personal experience, for few months I was looking for a RTOS like Nuttix. I discovered it by accident by Googling the words: posix freertos...
I try not to concern myself with popularity.  And I certainly don't do any of kind of marketing activities that would make NuttX more popular.  But it is hard not to concerned.  I think that all engineers are competitive and of course it would be cool if NuttX were the most popular ROTS.  But I try not to get caught up in that.

I created NuttX just because I wanted to.  I have written embedded RTOSs for many years and just wanted the freedom to write the one I wanted.  So I do this for fun not money or popularity.  So it does not target any demographic that would support popularity.  In fact, I think NuttX is best suited only for a smaller niche audience:  Somewhere between the tiny OSs like FreeRTOS and ChibiOS and the big OSs like Linux.  Among the middle-size RTOSs, it is still smaller than RTEMS, VxWorks, and Integrity;  probably larger than RT-Thread; perhaps an open source alternative to uC/OS.

NuttX is too complex for the typical one-electronic-engineer projects and probably too small for higher end software developments.
Post by Michel
I think this would be a first step to gather more developers in order to protect the Nuttx community from bus drivers! :-) 
Anyone who wants to participate is welcome.

Greg
Michel
2012-10-27 00:22:55 UTC
Permalink
Hello Greg,

I did not meant you have to be popular and NuttiX have to be the most popular RTOS. I just react to what you said, to quote you: "I've actually made this proposition a few times, but no one has taken me up on it". If you don't spread enough the existence of NuttiX, you'll have less chance to find appropriates motivated candidates to follow you. I know, I know, this is not what you are looking for... ;-)

I don't think NuttiX is only suited for small niche audience. More and more medium-sized intelligent devices appears on the market: quadcopters,intelligent toys,augmented reality cameras,Google's Sunglasses,health equipments. And the better is coming with the web of things area where objects of everyday life communicates together. These kind of devices are too complex to be used with tiny OSs, and Android or Linux are too heavy for this usage. But Nuttix fits well this BIG niche.

Sure, NuttiX seems too complex for electronic-engineer and too small for higher end software developments...but...this is not the question. NuttiX has the advantage to bridge the gap between low level electronics and higher end software developments.
Again I take my personal experience. I am not an eletronic guy, I am rather software oriented. In this context NuttiX presents real advantages because it hides me electronic stuff and wires. With Nuttix, electronic-engineers offers to software oriented people the occasion to focus on end-user application developments.

Again this is only my opinion and I hope I'll demonstrate you these ideas with my project...


Regards,
Michel
Post by Gregory N
Hi, Michel,
Post by Michel
Regarding baseline management of Nuttx I don't think the decision process is a problem.
At the risk of being provocative, Nuttx is not popular...
By popular I mean there is no buzz nor advertising on the web like forums annoucements, google ranking...
Taking my personal experience, for few months I was looking for a RTOS like Nuttix. I discovered it by accident by Googling the words: posix freertos...
I try not to concern myself with popularity.  And I certainly don't do any of kind of marketing activities that would make NuttX more popular.  But it is hard not to concerned.  I think that all engineers are competitive and of course it would be cool if NuttX were the most popular ROTS.  But I try not to get caught up in that.
I created NuttX just because I wanted to.  I have written embedded RTOSs for many years and just wanted the freedom to write the one I wanted.  So I do this for fun not money or popularity.  So it does not target any demographic that would support popularity.  In fact, I think NuttX is best suited only for a smaller niche audience:  Somewhere between the tiny OSs like FreeRTOS and ChibiOS and the big OSs like Linux.  Among the middle-size RTOSs, it is still smaller than RTEMS, VxWorks, and Integrity;  probably larger than RT-Thread; perhaps an open source alternative to uC/OS.
NuttX is too complex for the typical one-electronic-engineer projects and probably too small for higher end software developments.
Post by Michel
I think this would be a first step to gather more developers in order to protect the Nuttx community from bus drivers! :-) 
Anyone who wants to participate is welcome.
Greg
Freddie Chopin
2012-10-27 08:24:09 UTC
Permalink
Post by Michel
Sure, NuttiX seems too complex for electronic-engineer and too small for
higher end software developments...but...this is not the question.
Actually I think that what's the most complex is the process of setting
up a toolchain under systems that are not Unix (and Cygwin is not a good
choice either). I'll try to follow the approach of PX4 project - they
used msys in Windows, which seems a better solution.

The other problem is lack of results about NuttX on the web - there are
only some totally crappy movies about the GUI, probably done for
debugging or sth? I'm talking about things like forum posts around the
web, blogs about projects using it, some tutorials, etc. Currently it's
only PX4 and nothing (?) more.

But this will probably change over time, the sooner it happens, the
sooner NuttX will gain some momentum. And I think "momentum" is a good
thing!

The first impression I had about NuttX was that it MUST use LOTS of RAM,
which is not true as Gregory explained. Flash is cheap and that's not a
problem - if I'm concerned for the features it gives it can use 64kB and
I'm OK with that. It would be a good idea to show some nice metrics on
the first site of the project, something like:
"Application doing data acquisition via ADC with really-high-frequency,
storing that on SD card with FAT file system, command shell on UART - X
kB of Flash, Y kB of RAM (Y1 static, Y2 dynamic)."
"Application doing something else ..."
"Application working as a webserver with page that allows to control
some digital inputs/outputs ..."

4\/3!!
Michel
2012-10-27 10:34:47 UTC
Permalink
Hello All, Hello Greg,

I totally agree with Freddie. This is what I meant by technical buzz or "advertising".
And for sure, the IDE part is crucial for non-electronic developers.

Greg, by the way, would you start a new discussion group named nuttx-users for example to discuss about the usage and vision of nuttx?
This would be a first step towards users experience share. And it avoids to polluate the current list with non technical discussions.


Regards
Michel
Post by Freddie Chopin
Post by Michel
Sure, NuttiX seems too complex for electronic-engineer and too small for
higher end software developments...but...this is not the question.
Actually I think that what's the most complex is the process of setting
up a toolchain under systems that are not Unix (and Cygwin is not a good
choice either). I'll try to follow the approach of PX4 project - they
used msys in Windows, which seems a better solution.
The other problem is lack of results about NuttX on the web - there are
only some totally crappy movies about the GUI, probably done for
debugging or sth? I'm talking about things like forum posts around the
web, blogs about projects using it, some tutorials, etc. Currently it's
only PX4 and nothing (?) more.
But this will probably change over time, the sooner it happens, the
sooner NuttX will gain some momentum. And I think "momentum" is a good
thing!
The first impression I had about NuttX was that it MUST use LOTS of RAM,
which is not true as Gregory explained. Flash is cheap and that's not a
problem - if I'm concerned for the features it gives it can use 64kB and
I'm OK with that. It would be a good idea to show some nice metrics on
"Application doing data acquisition via ADC with really-high-frequency,
storing that on SD card with FAT file system, command shell on UART - X
kB of Flash, Y kB of RAM (Y1 static, Y2 dynamic)."
"Application doing something else ..."
"Application working as a webserver with page that allows to control
some digital inputs/outputs ..."
4\/3!!
Freddie Chopin
2012-10-27 11:10:24 UTC
Permalink
Post by Michel
Greg, by the way, would you start a new discussion group named
nuttx-users for example to discuss about the usage and vision of nuttx?
This would be a first step towards users experience share. And it avoids
to polluate the current list with non technical discussions.
I don't think such list is needed now - most of the time messages would
be going to the main list anyway. The same situation is with OpenOCD's
list which I'm participating in - there's a "user" list that's almost
empty compared to the old - "devel" list. I think that something more
user-friendly (and modern) as a forum would attract users better than a
mailing list.

4\/3!!
Michel
2012-10-27 13:13:26 UTC
Permalink
Freddie,

You said the same thing. The only difference is the presentation format: user-friendly forum VS mailing list. I would go further and ask for full joomla-like portal for Nuttx...but this is too early.

The first step is to do a little on the presentation format and rather focus on nuttx future from the user point of view.

Anyway, you are welcome to go ahead if you want to setup a full portal with forums on Nuttx ...


Michel
Post by Freddie Chopin
Post by Michel
Greg, by the way, would you start a new discussion group named
nuttx-users for example to discuss about the usage and vision of nuttx?
This would be a first step towards users experience share. And it avoids
to polluate the current list with non technical discussions.
I don't think such list is needed now - most of the time messages would
be going to the main list anyway. The same situation is with OpenOCD's
list which I'm participating in - there's a "user" list that's almost
empty compared to the old - "devel" list. I think that something more
user-friendly (and modern) as a forum would attract users better than a
mailing list.
4\/3!!
Gregory N
2012-10-27 13:16:18 UTC
Permalink
Post by Freddie Chopin
Post by Michel
Greg, by the way, would you start a new discussion group named
nuttx-users for example to discuss about the usage and vision of nuttx?
This would be a first step towards users experience share. And it avoids
to polluate the current list with non technical discussions.
I don't think such list is needed now - most of the time messages would
be going to the main list anyway. The same situation is with OpenOCD's
list which I'm participating in - there's a "user" list that's almost
empty compared to the old - "devel" list. I think that something more
user-friendly (and modern) as a forum would attract users better than a
mailing list.
I actually prefer mailing lists to forums. Most forums are "pull" technology. I have to keep going to the website and checking to see what has changed. Unless I can setup email notifications. But then it is basically a mailing list anyway.

I do like forums that are divided into different topics. Perhaps a forum with email subscriptions would meet all of the needs? I could probably put a forum at http://nuttx.org (although I prefer Yahoo! because it is free. The amount of storage over time can get huge.).

If you get too much Yahoo! mail, you can select to get the mails in one daily digest.

Another communication resource that is never used by anyone (other than me) is the NuttX Wiki at http://www.nuttx.org/doku.php?id=wiki. That is open for anyone to use.

Greg
Michel
2012-10-27 13:31:44 UTC
Permalink
Keep it simple: Yahoo! mailing list
Post by Gregory N
Post by Freddie Chopin
Post by Michel
Greg, by the way, would you start a new discussion group named
nuttx-users for example to discuss about the usage and vision of nuttx?
This would be a first step towards users experience share. And it avoids
to polluate the current list with non technical discussions.
I don't think such list is needed now - most of the time messages would
be going to the main list anyway. The same situation is with OpenOCD's
list which I'm participating in - there's a "user" list that's almost
empty compared to the old - "devel" list. I think that something more
user-friendly (and modern) as a forum would attract users better than a
mailing list.
I actually prefer mailing lists to forums. Most forums are "pull" technology. I have to keep going to the website and checking to see what has changed. Unless I can setup email notifications. But then it is basically a mailing list anyway.
I do like forums that are divided into different topics. Perhaps a forum with email subscriptions would meet all of the needs? I could probably put a forum at http://nuttx.org (although I prefer Yahoo! because it is free. The amount of storage over time can get huge.).
If you get too much Yahoo! mail, you can select to get the mails in one daily digest.
Another communication resource that is never used by anyone (other than me) is the NuttX Wiki at http://www.nuttx.org/doku.php?id=wiki. That is open for anyone to use.
Greg
Freddie Chopin
2012-10-27 13:35:49 UTC
Permalink
I actually prefer mailing lists to forums. Most forums are "pull"
technology. I have to keep going to the website and checking to see what
has changed. Unless I can setup email notifications. But then it is
basically a mailing list anyway.
I do like forums that are divided into different topics. Perhaps a forum
with email subscriptions would meet all of the needs? I could probably
put a forum at http://nuttx.org (although I prefer Yahoo! because it is
free. The amount of storage over time can get huge.).
You're right, you need to visit the forums to actually see what's going
on, but I think that nowadays most people (especially new users) prefer
forums to mailing lists...

About the storage, if you lower the limit for attachments to posts (or
disable them completely, suggesting somewhere to use some free hosting
for huge files), then forums don't eat that much - it's just the engine
and the database, maybe a few dozen MBs with a lots of posts...
Another communication resource that is never used by anyone (other than
me) is the NuttX Wiki at http://www.nuttx.org/doku.php?id=wiki. That is
open for anyone to use.
BTW - I saw that documentation for the graphics system is in Doxygen
now, but do you plan to (or have nothing agains) switching NuttX core to
Doxygen? Doxygen is nice to generate new docs, but it's also nice
because you also HAVE to have the documentation with the sourcecode. I
could provide some patches to the source tree...

4\/3!!
Gregory N
2012-10-27 14:10:33 UTC
Permalink
Post by Freddie Chopin
BTW - I saw that documentation for the graphics system is in Doxygen
now, but do you plan to (or have nothing agains) switching NuttX core to
Doxygen? Doxygen is nice to generate new docs, but it's also nice
because you also HAVE to have the documentation with the sourcecode. I
could provide some patches to the source tree...
No. No plans now. That would be a really painful job to do manually at this point. I can think of much more pleasant ways to spend a few weeks of my time.

But this is one of the reasons that I try to keep the format and style of all files identical. Sometime in the future, I might be able to write a tool that converts everything to a Doxygen format. Writing a tool is much more enjoyable than days-and-days of file editing.

A requirement for such to tool to work is absolute consistency in file formats. Perhaps the first step would be to write a file format analyzer to detect deviations for the standard file format?

Greg
Gregory N
2012-10-27 13:39:49 UTC
Permalink
Post by Freddie Chopin
The other problem is lack of results about NuttX on the web - there are
only some totally crappy movies about the GUI, probably done for
debugging or sth? I'm talking about things like forum posts around the
web, blogs about projects using it, some tutorials, etc. Currently it's
only PX4 and nothing (?) more.
But this will probably change over time, the sooner it happens, the
sooner NuttX will gain some momentum. And I think "momentum" is a good
thing!
We saw the result of this recently. Because there is very little supporting information available for NuttX, Wikipedia decided that NuttX was not "notable" and removed the page. :(

Wikipedia wanted to see those kinds of references and also some published use of NuttX in academia.
Post by Freddie Chopin
The first impression I had about NuttX was that it MUST use LOTS of RAM,
which is not true as Gregory explained. Flash is cheap and that's not a
problem - if I'm concerned for the features it gives it can use 64kB and
I'm OK with that. It would be a good idea to show some nice metrics on
"Application doing data acquisition via ADC with really-high-frequency,
storing that on SD card with FAT file system, command shell on UART - X
kB of Flash, Y kB of RAM (Y1 static, Y2 dynamic)."
"Application doing something else ..."
"Application working as a webserver with page that allows to control
some digital inputs/outputs ..."
I started doing something like that a long time ago: http://www.nuttx.org/Documentation/NuttX.html#footprint . As you can see by the targets, that is very old and probably out of data.

This would be a good topic for the NuttX Wiki: http://www.nuttx.org/doku.php?id=wiki. It would be good to have the measured size of every configuration there.

Greg
Freddie Chopin
2012-10-27 16:02:07 UTC
Permalink
We saw the result of this recently. Because there is very little
supporting information available for NuttX, Wikipedia decided that NuttX
was not "notable" and removed the page. :(
Wikipedia wanted to see those kinds of references and also some
published use of NuttX in academia.
That's sad, I actually wondered about lack of NuttX page on Wikipedia
and considered adding one...
http://www.nuttx.org/Documentation/NuttX.html#footprint . As you can see
by the targets, that is very old and probably out of data.
I saw that (;
http://www.nuttx.org/doku.php?id=wiki. It would be good to have the
measured size of every configuration there.
I will remember and when I'll have an app that actually does something
other than wastes CPU cycles, I'll provide such info and create the
entry in this wiki (if it won't already exist). BTW - good to know that
Wiki is free to edit (;

4\/3!!
Freddie Chopin
2012-10-27 08:13:51 UTC
Permalink
Post by Gregory Nutt
NuttX is too complex for the typical one-electronic-engineer projects
and probably too small for higher end software developments.
I hope it's not, as I'm alone in this project...

4\/3!!
Gong Darcy
2012-10-26 16:36:55 UTC
Permalink
hi Greg,

My idea is:
I plan to in December or January next year. Chinese began to write the blog
and the establishment of the BBS forum. The tutorial introduces nuttx as
well use nuttx to. As much as possible to establish an interest in
discussion groups. This more people involvement in nuttx perfect.

I've mentioned in the mail before design hardware schematics. Seems a
little bit (imitating others). A little later, I will open.

darcy
Post by Gregory N
**
Hi, Darcy,
Post by Gong Darcy
Seems, Greg is a person of their own maintenance code of nuttx. I see
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
Yes, I am the only developer on NuttX. That is not to say that other
people have not made substantial contributions. But I wrote by far the bulk
of the code. And no one does maintenance other than me and people that
discover bugs and submit fixes.
I would like to open up NuttX development more. But (1) I have not met
anyone else that has been willing to make a commitment like that and (2) I
am not fully comfortable with opening up the repository. I think I will
always need to be the "gate keeper": The single point for review, approval,
and incorporation of changes.
So if we would like to distribute the development over a group of
geographically separate people, then I think that we would need to do work
as Linux does: Individual development "centers" for different RTOS features
that submit changes upstream for incorporation into the "main line". If we
want to go that direction, git would be a big help.
I've actually made this proposition a few times, but no one has taken me
Only me as the developer and various people with interests drifting in and
out of the develop process based upon their personal interests.
I think that is fine too. I am flexible. But it does not pass the "Bus
Test." The Bus Test is: "What happens to NuttX if I get hit by a bus
tomorrow."
Greg
Gong Darcy
2012-10-27 05:39:28 UTC
Permalink
Hi Greg,
I understand what you mean.I now have more ideas.But I do not want to
prematurely say it.Because I think that qualifications and ability.
I just want one thing. A Chinese exchange platform is to be established as
soon as possible. China has a large number of electronic engineers. I
believe there will be a lot of people after in across Nuttx the threshold,
and fell in love with it! While most people are not open enough. But there
will be more people to improve and test nuttx.

darcy
Post by Gregory N
**
Hi, Darcy,
Post by Gong Darcy
Seems, Greg is a person of their own maintenance code of nuttx. I see
that
Post by Gong Darcy
things can be a lot on his todo list.
rt-thread project team has 4-6 people in the maintenance of the code. And
do some engineering. By contrast Greg too tired.
Completed some work to get our own. If you are interested in the
completion
Post by Gong Darcy
of USB Wifi the the 2.4G of RF (802.15), LWIP port of Nuttx. I am very
happy to join, and to provide all the support I can offer.
Yes, I am the only developer on NuttX. That is not to say that other
people have not made substantial contributions. But I wrote by far the bulk
of the code. And no one does maintenance other than me and people that
discover bugs and submit fixes.
I would like to open up NuttX development more. But (1) I have not met
anyone else that has been willing to make a commitment like that and (2) I
am not fully comfortable with opening up the repository. I think I will
always need to be the "gate keeper": The single point for review, approval,
and incorporation of changes.
So if we would like to distribute the development over a group of
geographically separate people, then I think that we would need to do work
as Linux does: Individual development "centers" for different RTOS features
that submit changes upstream for incorporation into the "main line". If we
want to go that direction, git would be a big help.
I've actually made this proposition a few times, but no one has taken me
Only me as the developer and various people with interests drifting in and
out of the develop process based upon their personal interests.
I think that is fine too. I am flexible. But it does not pass the "Bus
Test." The Bus Test is: "What happens to NuttX if I get hit by a bus
tomorrow."
Greg
Gregory N
2012-10-26 13:14:46 UTC
Permalink
Hi, Michel,
Post by Michel
-IPV6
-USB hub support
-ELF loader
Something else in mind? What about middleware features as I suggested?
The ELF loader will be finished soon .. maybe today if I get time.

I keep all of the known bugs and things-to-do in a file called TODO in the top-level nuttx/ directory. IPv6 is already there. I'll add USB hub support.

I probably should use an online bug/feature tracking tool, but I don't because there is only me working on the project (there is a bug tracker on SourceForge. Sometimes people report bugs there, but I don't use it personally).
Post by Michel
Do you have list of commercial and non commercial project that uses Nuttx?
There is a short list of open-source uses in the Links at nuttx.org.

But most commercial projects do not advertise their RTOS selections nor do they inform me of the products that they work on. I would love to know myself. I do NuttX contracting on the side (nx-engineering.com), so I know that there quite a few because I have worked on several. But it would be a misuse of trust for me to discuss those products (especially products under development).

So cannot really help you there.

Greg
Freddie Chopin
2012-10-27 08:28:25 UTC
Permalink
Post by Michel
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
That would be something great! PX4 project has that implemented somehow
(in C++), so maybe - if license permits - it could be ported to NuttX in
no time?

The other thing that would be nice to have is IPC via events (event
flags) - or maybe this is achievable right now?

4\/3!!
Freddie Chopin
2012-10-27 08:38:36 UTC
Permalink
Post by Freddie Chopin
Post by Michel
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
That would be something great! PX4 project has that implemented somehow
(in C++), so maybe - if license permits - it could be ported to NuttX in
no time?
https://pixhawk.ethz.ch/px4/dev/shared_object_communication

4\/3!!
Michel
2012-10-27 10:59:08 UTC
Permalink
Yes! it could be a good start.

I am looking for P/S framework that can also proceed over the network: some objects are local and others are shared between other devices over the network.
Something more related to the DDS (Data Distribution Service) standard for example. Unfortunately I did not find any open source code of DDS embedded to adapt.
Post by Freddie Chopin
Post by Freddie Chopin
Post by Michel
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
That would be something great! PX4 project has that implemented somehow
(in C++), so maybe - if license permits - it could be ported to NuttX in
no time?
https://pixhawk.ethz.ch/px4/dev/shared_object_communication
4\/3!!
Gregory N
2012-10-27 13:22:16 UTC
Permalink
Post by Michel
I am looking for P/S framework that can also proceed over the network: some objects are local and others are shared between other devices over the network.
Something more related to the DDS (Data Distribution Service) standard for example. Unfortunately I did not find any open source code of DDS embedded to adapt.
I have a network broker that I wrote some years ago and I been tinkering with it recently. It supports HTTPs channel that you can publish on and/or subscribe to. It was really intended to be a component of a VPN but currently it sounds more like what you are talking about.

I still might get that released sometime in the future.

Greg
Michel
2012-10-27 13:28:55 UTC
Permalink
Greg,

In the same way I am thinking about the Redis product (see http://redis.io/) that have P/S features (see: http://redis.io/topics/pubsub).

Many Redis http clients are available for differents languages (see: http://redis.io/clients)

It would be interesting to adapt the C client of Redis for Nuttx....


Michel
Post by Gregory N
Post by Michel
I am looking for P/S framework that can also proceed over the network: some objects are local and others are shared between other devices over the network.
Something more related to the DDS (Data Distribution Service) standard for example. Unfortunately I did not find any open source code of DDS embedded to adapt.
I have a network broker that I wrote some years ago and I been tinkering with it recently. It supports HTTPs channel that you can publish on and/or subscribe to. It was really intended to be a component of a VPN but currently it sounds more like what you are talking about.
I still might get that released sometime in the future.
Greg
Gregory N
2012-10-27 13:34:13 UTC
Permalink
Post by Freddie Chopin
Post by Michel
Concerning the roadmap, for my project, I would be interested by the
addition of middleware features like publish/subscribe. If you are
interested by the idea, I can give more explanation.
That would be something great! PX4 project has that implemented somehow
(in C++), so maybe - if license permits - it could be ported to NuttX in
no time?
The other thing that would be nice to have is IPC via events (event
flags) - or maybe this is achievable right now?
The discussion of middleware layers and core OS IPCs are really different topics. Middleware code would go in the apps/ directory and does not have to conform with any standard.

OS IPC logic would go in the nuttx/ directory and any exposed user interfaces would have to conform to published standards. With only a few exceptions, all NuttX application interfaces correspond to some standard: POSIX/ANSI being the golden standard and Linux/OSX being the second in line. There are a few cases where I need RTOS functionality not supported by OS standards and in those cases I try to model the required interfaces after common RTOSs (examples: task spawning, pre-emption controls). But that is a last resort.

Under POSIX, I think that the mechanism for event IPC would real-time signals. Use sigqueue() to sent an event:

http://pubs.opengroup.org/onlinepubs/7908799/xsh/sigqueue.html

and catch the event in a signal handler registered with sigaction():

http://pubs.opengroup.org/onlinepubs/7908799/xsh/sigaction.html

event information is provided in union sigval which is reported in the siginfo_t:

http://pubs.opengroup.org/onlinepubs/7908799/xsh/signal.h.html

Would that do what you want?

Greg
Freddie Chopin
2012-10-27 15:58:45 UTC
Permalink
Post by Gregory N
The discussion of middleware layers and core OS IPCs are really
different topics. Middleware code would go in the apps/ directory and
does not have to conform with any standard.
OS IPC logic would go in the nuttx/ directory and any exposed user
interfaces would have to conform to published standards. With only a few
exceptions, all NuttX application interfaces correspond to some
standard: POSIX/ANSI being the golden standard and Linux/OSX being the
second in line. There are a few cases where I need RTOS functionality
not supported by OS standards and in those cases I try to model the
required interfaces after common RTOSs (examples: task spawning,
pre-emption controls). But that is a last resort.
Under POSIX, I think that the mechanism for event IPC would real-time
http://pubs.opengroup.org/onlinepubs/7908799/xsh/sigqueue.html
http://pubs.opengroup.org/onlinepubs/7908799/xsh/sigaction.html
http://pubs.opengroup.org/onlinepubs/7908799/xsh/signal.h.html
Would that do what you want?
Hmm... I'm not sure... The mechanism available in ChibiOS/RT is nice -
http://chibios.sourceforge.net/html/group__events.html - it allows you
to send event flags "somewhere" - the sender does not need to know who
will get them (if anyone), the receiver does not need to know who sends
the event. There may be multiple recipients of single event. That's why
this mechanism is actually a simplier version of publish/subscribe. With
signals you have to explicitly specify the recipient (with pid), so I
guess it's not better for simple things than a regular mailbox.

As I've said somewhere else, I'm actually an electronics engineer, and
mechanisms like POSIX signals are unknown for me (for now), so I can be
wrong completely on the subject... Signals are not present in any other
RTOS I know and you can easily find opionions that signals make no sense
for embedded, but I don't know them (signals) good enough to verify such
statement.

4\/3!!
Gregory N
2012-10-27 16:32:14 UTC
Permalink
Post by Freddie Chopin
Hmm... I'm not sure... The mechanism available in ChibiOS/RT is nice -
http://chibios.sourceforge.net/html/group__events.html - it allows you
to send event flags "somewhere" - the sender does not need to know who
will get them (if anyone), the receiver does not need to know who sends
the event. There may be multiple recipients of single event. That's why
this mechanism is actually a simplier version of publish/subscribe. With
signals you have to explicitly specify the recipient (with pid), so I
guess it's not better for simple things than a regular mailbox.
As I've said somewhere else, I'm actually an electronics engineer, and
mechanisms like POSIX signals are unknown for me (for now), so I can be
wrong completely on the subject... Signals are not present in any other
RTOS I know and you can easily find opionions that signals make no sense
for embedded, but I don't know them (signals) good enough to verify such
statement.
With NuttX, I decided to restrict myself to only standardized OS APIs. It is the fundamental motivation for NuttX and what makes it unique. The idea is to be a tiny Linux-compatible OS for MCUs.

Life would be simpler if my rules allow me to just make up OS interfaces as my particular need motivates me. But the don't.

If you want multiple threads to wait for event, then wake them all when the event occurs, I think that the standard way to do that is with a condition variable. See:

http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_cond_signal.html

NuttX also supports barriers which is kind of the opposite thing. It will block until all threads hit the barrier:

http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_barrier_wait.html

Greg
Michel
2012-10-27 17:16:32 UTC
Permalink
I think what was asked is related to POSIX shared memory that can be used by several processes or threads.

The middleware P/S I would need could be built on top of shared memory in network context: memory is shared over the network
Post by Gregory N
Post by Freddie Chopin
Hmm... I'm not sure... The mechanism available in ChibiOS/RT is nice -
http://chibios.sourceforge.net/html/group__events.html - it allows you
to send event flags "somewhere" - the sender does not need to know who
will get them (if anyone), the receiver does not need to know who sends
the event. There may be multiple recipients of single event. That's why
this mechanism is actually a simplier version of publish/subscribe. With
signals you have to explicitly specify the recipient (with pid), so I
guess it's not better for simple things than a regular mailbox.
As I've said somewhere else, I'm actually an electronics engineer, and
mechanisms like POSIX signals are unknown for me (for now), so I can be
wrong completely on the subject... Signals are not present in any other
RTOS I know and you can easily find opionions that signals make no sense
for embedded, but I don't know them (signals) good enough to verify such
statement.
With NuttX, I decided to restrict myself to only standardized OS APIs. It is the fundamental motivation for NuttX and what makes it unique. The idea is to be a tiny Linux-compatible OS for MCUs.
Life would be simpler if my rules allow me to just make up OS interfaces as my particular need motivates me. But the don't.
http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_cond_signal.html
http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_barrier_wait.html
Greg
Gregory N
2012-10-27 17:40:38 UTC
Permalink
Post by Michel
I think what was asked is related to POSIX shared memory that can be used by several processes or threads.
The middleware P/S I would need could be built on top of shared memory in network context: memory is shared over the network
NuttX uses a flat memory model. With most MCUs, you don't have any option because they don't have MMUs. But even when used with microprocessors that have MMUs, NuttX maintains a flat address space using the MMU only for cache control*.

An MMU or MPU could be used to protect memory regions** but, in general, all memory is unprotected and can be accessed by any task. So, in this sense, all memory is shared.

NuttX does support a very limited mmap() (at nuttx/fs/mmap), but that is only used for (simulated) file mapping. I suppose for portability, it could be extended so it could malloc "shared" memory as well.

Greg

*There is nothing to prevent implementing a process model, but there has just never been a need.

**If protection is needed, NuttX supports a kernel build that separates memory into supervisor and user spaces. In that case, you would have to trap into the NuttX kernel. All of the pieces are in place, but it would take some integration effort to get this working.
Michel
2012-10-27 19:49:12 UTC
Permalink
Very very very interesting to have separation of memory into supervisor and user spaces.
This is a way to have more Linux-compatible OS for MCUs.

Do you think integration effort to get this working are big?


Michel
Post by Gregory N
Post by Michel
I think what was asked is related to POSIX shared memory that can be used by several processes or threads.
The middleware P/S I would need could be built on top of shared memory in network context: memory is shared over the network
NuttX uses a flat memory model. With most MCUs, you don't have any option because they don't have MMUs. But even when used with microprocessors that have MMUs, NuttX maintains a flat address space using the MMU only for cache control*.
An MMU or MPU could be used to protect memory regions** but, in general, all memory is unprotected and can be accessed by any task. So, in this sense, all memory is shared.
NuttX does support a very limited mmap() (at nuttx/fs/mmap), but that is only used for (simulated) file mapping. I suppose for portability, it could be extended so it could malloc "shared" memory as well.
Greg
*There is nothing to prevent implementing a process model, but there has just never been a need.
**If protection is needed, NuttX supports a kernel build that separates memory into supervisor and user spaces. In that case, you would have to trap into the NuttX kernel. All of the pieces are in place, but it would take some integration effort to get this working.
Gregory N
2012-10-27 22:59:05 UTC
Permalink
Post by Michel
Very very very interesting to have separation of memory into supervisor and user spaces.
This is a way to have more Linux-compatible OS for MCUs.
Do you think integration effort to get this working are big?
Someone was building this "kernel build" in this list. Here is the email thread: http://tech.groups.yahoo.com/group/nuttx/message/1183 (there might be some other threads). I do not think that they finished successfully. My understanding is that it built correctly, but the trap handling logic that gets you from user to kernel model needs a re-design (I think that is in the top level TODO list).

Then I suspect when you start using a NuttX kernel, there will be many places where the existing code violates the strict kernel/user API division. I know that NSH has a few.

I suspect that I could get it working in a week or so. It would probably take longer for someone who is not up to speed.

Greg

Michael Smith
2012-10-27 18:28:05 UTC
Permalink
Post by Michel
I think what was asked is related to POSIX shared memory that can be used by several processes or threads.
The middleware P/S I would need could be built on top of shared memory in network context: memory is shared over the network
P/S is actually a technique used to avoid the need for distributed lock management, which is otherwise required for the sort of shared memory you're talking about.

= Mike
Michel
2012-10-27 19:03:46 UTC
Permalink
Conceptually correct...but in terms of underlying implementation, the thread/process receive signals that an object is published, it then read its attributes somewhere in the shared memory...

Again, for professional standard real time P/S, take a look at the DDS (Data Distribution Service) standard from the OMG:
http://en.wikipedia.org/wiki/Data_distribution_service
Most commercial RTOS, like vxworks, offers this kind of framework for realtime P/S.

Commercial products like CoreDX (http://www.twinoakscomputing.com/coredx/) offers DDS for embedded systems.
OpenSplice and OpenDDS are open source versions of DDS. I don't know if embedded version exists.


Michel
Post by Michael Smith
Post by Michel
I think what was asked is related to POSIX shared memory that can be used by several processes or threads.
The middleware P/S I would need could be built on top of shared memory in network context: memory is shared over the network
P/S is actually a technique used to avoid the need for distributed lock management, which is otherwise required for the sort of shared memory you're talking about.
= Mike
Michael Smith
2012-10-27 20:02:59 UTC
Permalink
Post by Michel
Conceptually correct...but in terms of underlying implementation, the thread/process receive signals that an object is published, it then read its attributes somewhere in the shared memory...
That's not necessarily the case at all, and certainly not for distributed P/S systems where subscriber access latency is more important than publication notification latency.
Post by Michel
http://en.wikipedia.org/wiki/Data_distribution_service
Most commercial RTOS, like vxworks, offers this kind of framework for realtime P/S.
The article you linked actually specifically describes sample push (delivery) from the publisher to the subscriber, rather than the sample pull from shared memory that you're talking about.

= Mike
Freddie Chopin
2012-10-27 18:13:50 UTC
Permalink
Post by Gregory N
With NuttX, I decided to restrict myself to only standardized OS APIs.
It is the fundamental motivation for NuttX and what makes it unique. The
idea is to be a tiny Linux-compatible OS for MCUs.
Life would be simpler if my rules allow me to just make up OS interfaces
as my particular need motivates me. But the don't.
If you want multiple threads to wait for event, then wake them all when
the event occurs, I think that the standard way to do that is with a
http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_cond_signal.html
NuttX also supports barriers which is kind of the opposite thing. It
http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_barrier_wait.html
As I said - I'm not really familiar with this stuff (more of an
electronic's guy), so I don't know what can be achieved (;

However - there are still some nice event flag features like waiting for
ANDed combination of flags or when any event from group happens. Can
such things be done with signals or pthread mechanisms in NuttX?

4\/3!!
Michael Smith
2012-10-27 18:32:52 UTC
Permalink
Post by Freddie Chopin
However - there are still some nice event flag features like waiting for
ANDed combination of flags or when any event from group happens. Can
such things be done with signals or pthread mechanisms in NuttX?
You can build all sorts of things if you put your mind to it.

For example, I recently built a simple ORB / PubSub system that uses the NuttX character device API. Subscribers use poll() to wait for publications, meaning that they can also wait for other peripherals at the same time.

Merging all of your wakeup sources into a single API is actually very helpful; this is why the *BSD folks are so hot on kqueue for example. For NuttX, poll() is the obvious choice. It's flexible enough to permit per-client state (this is how I implement per-subscriber rate limiting in the ORB, for example), scales tolerably well, and is pretty easy to implement and debug.

= Mike
Gregory Nutt
2012-10-27 18:41:28 UTC
Permalink
Post by Freddie Chopin
However - there are still some nice event flag features like waiting for
ANDed combination of flags or when any event from group happens. Can
such things be done with signals or pthread mechanisms in NuttX?
No, but the general capability there, it is just not in the OS.  Nor do I think it belongs in the OS. For example, here is logic that waits for the AND of three events then wakes up all waiting threads:

#define EVENT1 (1 << 0)
#define EVENT2 (1 << 1)
#define EVENT3 (1 << 2)
#define ALLEVENTS (EVENT1 | EVENT2 | EVENT2)

static pthread_mutex_t g_mutex;
static pthread_cond_t  g_cond;

int post_event(unsigned int event)
{
  static unsigned int posted = 0;
  int tmp;
  int ret;

  /* Get exclusive acces to the 'posted' variable */

  ret = pthread_mutex_lock(&g_mutex);
  if (ret == 0)
    {
      /* OR in the new events */
 
      posted |= event;

      /* Check if we have the AND of all events */

      if ((posted & ALLEVENTS) == ALLEVENTS)
       {
         /* Wake up all threads waiting on this condition */

         ret = pthread_cond_broadcast(&g_cond);
         posted = 0;
       }

      /* Release the mutex. */

      tmp = pthread_mutex_unlock(&g_mutex);
      if (tmp != 0 && ret == 0)
        {
          ret = tmp;
        }
    }

  return ret;
}

Pretty simple stuff. Obviously you can extend this at will to wait for any combination of events.  That is the advantage of this approach:  The OS provides the basic building blocks, you use them to create the behavior that you want.  That makes a more sense than expecting an RTOS to guess every combination of everything that you would want to do.  That is much more consistent with the standard OS interface philosophy.

Greg
Freddie Chopin
2012-10-27 19:44:23 UTC
Permalink
No, but the general capability there, it is just not in the OS. Nor do
I think it belongs in the OS. For example, here is logic that waits for
...
Pretty simple stuff. Obviously you can extend this at will to wait for
any combination of events. That is the advantage of this approach: The
OS provides the basic building blocks, you use them to create the
behavior that you want. That makes a more sense than expecting an RTOS
to guess every combination of everything that you would want to do.
That is much more consistent with the standard OS interface philosophy.
Great! Thank you for your example and explanation. Being a noob in
POSIX, pthreads and stuff like that I just don't see the possibilities
(; Of course I agree that if there are blocks to build other
communication mechanism, than it's all you need.

Thx again!

4\/3!!
Freddie Chopin
2012-10-27 19:44:29 UTC
Permalink
No, but the general capability there, it is just not in the OS. Nor do
I think it belongs in the OS. For example, here is logic that waits for
...
Pretty simple stuff. Obviously you can extend this at will to wait for
any combination of events. That is the advantage of this approach: The
OS provides the basic building blocks, you use them to create the
behavior that you want. That makes a more sense than expecting an RTOS
to guess every combination of everything that you would want to do.
That is much more consistent with the standard OS interface philosophy.
Great! Thank you for your example and explanation. Being a noob in
POSIX, pthreads and stuff like that I just don't see the possibilities
(; Of course I agree that if there are blocks to build other
communication mechanism, than it's all you need.

Thx again!

4\/3!!
Gong Darcy
2012-10-26 03:04:03 UTC
Permalink
hi Greg,
NXFLAT and ELF is not running to be the code is loaded into memory inside?

I hope that the code (such as CGI-BIN) Save and run inside the SPI FLASH.
The STM32F107 not support memory expansion. SD card driver does not work.
I want to use STM32F103 the. But enc28j60 also problems. I will first
be able to run the first cloud the controller do well (do wget json
analysis). Go take a look at the problem of the F103's enc28j60 and
F10xx the ADC DMA.

darcy
Post by Gregory N
Post by Michel
-is there a way to get dll-style dynamic code? I would like to download piece of code over the air
Yes, there are two ways.
First, there is the NuttX binary format, NXFLAT as described here: http://nuttx.org/Documentation/NuttXNxFlat.html and http://nuttx.org/doku.php?id=wiki:vfs:nxflat . Also, search the messages in this forum. There was quite a bit of discussion a couple of months ago.
NXFLAT is optimized for working with XIP images in FLASH.
The second way is to use partially linked ELF files. The NuttX dynamic linker will load the ELF file in RAM and link it to the FLASH code. That sounds like a more appropriate format for excecutables received over a netwok.
This ELF loader, however, is currently under development. I am testing as I speak and hope to have the first working version released in a couple of days (the non-working version is already in SVN).
Greg
Gregory N
2012-10-26 13:03:57 UTC
Permalink
Hi, Darcy,
Post by Gong Darcy
NXFLAT and ELF is not running to be the code is loaded into memory inside?
Both of these formats execute files from a file system -- SD, SPI FLASH, NOR/NAND FLASH, rotating disk, ... the media does not matter.

ELF code must always be fully loaded into memory and relocated so that it is "bound" to the base FLASH code.

NXFLAT can work in two different modes: (1) If the file system supports XIP, NXFLAT can operate XIP with the .text section inside the file system and the .data/.bss section in RAM. But ROMFS is the only XIP capable file system and then only if ROMFS uses random-access memory (like NOR FLASH or RAM),

(2) The other mechanism to to copy the NXFLAT image fully to RAM and relocate it. In this case, ELF is probably better because it is more simple and has fewer limitation.

In either case, NXFLAT supports sharing of the .text section. If you wanted multiple copies of a binary running, then NXFLAT would be the better choice.
Post by Gong Darcy
I hope that the code (such as CGI-BIN) Save and run inside the SPI FLASH.
Yes, that should work.
Post by Gong Darcy
The STM32F107 not support memory expansion. SD card driver does not work.
I want to use STM32F103 the. But enc28j60 also problems. I will first
be able to run the first cloud the controller do well (do wget json
analysis). Go take a look at the problem of the F103's enc28j60 and
F10xx the ADC DMA.
This is the ENC28J60 on the fire-stm32v2, correct? What is the problem? It worked fine for me. I did have to raise the CS pin on the W25x16 FLASH because the same CS signal goes to both the W25x16 and to the ENC28J60.

Is there some other problem with the ENC28J60?

Greg
Alan Carvalho de Assis
2012-10-27 11:17:44 UTC
Permalink
Hi Freddie,

On 10/27/12, Freddie Chopin <freddie_chopin-***@public.gmane.org> wrote:
sic...
Post by Freddie Chopin
The other problem is lack of results about NuttX on the web - there are
only some totally crappy movies about the GUI, probably done for
debugging or sth? I'm talking about things like forum posts around the
web, blogs about projects using it, some tutorials, etc. Currently it's
only PX4 and nothing (?) more.
Sorry, these crap movies were done by me. It was at youtube just to
share project status with other guys from Osmocom project (nuttx-bb).
I didn't realize it could be a negative advertising for NuttX. Thank
you for, one way or another, show me it.

I just removed it and I think it will disappear from youtube in few minutes.
Post by Freddie Chopin
But this will probably change over time, the sooner it happens, the
sooner NuttX will gain some momentum. And I think "momentum" is a good
thing!
Yes, it starts with you. Please go ahead, do your project with NuttX
and then share your findings. Put it on your blog, talk about it on
OpenOCD ml (I know you from there, I think) and put support to it on
OpenOCD (it has support to eCos and FreeRTOS).

I do that (sometimes in the wrong way, as you show me), but please
don't get me wrong, I'm not angry or upset with you. Soon or latter
NuttX will become one of most used RTOS in the world, because its
quality. Then don't stress about how many people are using it now.

Number of people using it is just a consequence, everything happens in
its own time.

Linux started this same way and today it is used for many hundred
millions of people (thanks to Android, of course).
Post by Freddie Chopin
The first impression I had about NuttX was that it MUST use LOTS of RAM,
which is not true as Gregory explained. Flash is cheap and that's not a
problem - if I'm concerned for the features it gives it can use 64kB and
I'm OK with that. It would be a good idea to show some nice metrics on
"Application doing data acquisition via ADC with really-high-frequency,
storing that on SD card with FAT file system, command shell on UART - X
kB of Flash, Y kB of RAM (Y1 static, Y2 dynamic)."
"Application doing something else ..."
"Application working as a webserver with page that allows to control
some digital inputs/outputs ..."
Yes it is not memory hungry as many people think. Greg show it is
possible to run a very minimal system on AVR with just 2/4KB, but
without using many features (no network, no usb, etc).

I hope you start to use NuttX on you project soon and if there is
something I can do, please count on me.

Best Regards,

Alan
Freddie Chopin
2012-10-27 11:39:26 UTC
Permalink
Post by Alan Carvalho de Assis
Sorry, these crap movies were done by me. It was at youtube just to
share project status with other guys from Osmocom project (nuttx-bb).
I didn't realize it could be a negative advertising for NuttX. Thank
you for, one way or another, show me it.
I just removed it and I think it will disappear from youtube in few minutes.
...
I do that (sometimes in the wrong way, as you show me), but please
don't get me wrong, I'm not angry or upset with you. Soon or latter
NuttX will become one of most used RTOS in the world, because its
quality. Then don't stress about how many people are using it now.
Probably I've used a wrong word. To show what I meant I'll provide a
better example.

A hypothetical user finds out about NuttX. He/she wants to know
something more, so starts googling around. He/she sees some videos -
great! - clicks them, and the video shows a graphics function which
places one line every 2 seconds... I figured out it was done as a
"debugging" or "demo of mechanism used", but if someone is not very much
info digging (or maybe does not speak english that well, so only
understands "nuttx" from the title) he/she might be under impression
that NuttX is a nice system to run on Cortex-A15 quad core @ 2GHz each,
because in this demo it looks as the resources are 100x too slow to run
it...

Sorry about poor choice of words (;

Regards,
FCh
Continue reading on narkive:
Loading...