Dear Dharam,
Thanks for your quick reply and your suggestion has shed a light on my
understanding of the porting the gRPC.
I think the compiler I'm using now is a problem. At the beginning, I
follow the steps defined in README file in gRPC to cross-compile the
project, I found the step is to build the whole project on the Host as
there are some
Dharam Kumar於 2019年9月12日星期四 UTC-7上午5時05分23秒寫道:
>
> Sorry, I didn't get your name :) . But here is my take on your questions -
>
> 1. I was using gcc compiler - so I didn't see any problem with lack of
> c++/c11 library features. Most compilers support features like 'atomic' -
> check if your compiler offers it or not.
> Overall, I think it is good to have, if not essential, to have c++/c11
> support in your compiler. It will save a lot of hard-work for you.
> For example - atomic operation can be emulated in software if your
> compiler does not support by default - but that's additional amount of
> work and it will make the system slower.
>
> 2. I think ThreadX does provide a thin posix implementation(check
> their sample apps/examples etc). Having said that, you may not have to do
> the same. You can always add 'ThreadX implementation'
> to what all grpc OS(posix) interface requires. For example - Queue,
> Threads, semaphores, mutexes, most of basic constructs are already
> available in ThreadX.
>
> 3. No, grpc may require some of these features. So, you've to review
> what you can implement and what you have to disable.
> For example - if GPR_LINUX_ENV is all about setting
> environment(key-value pair), setenv(...), getenv(...) from a linux-host
> perspective. Think of how you can achieve the same
> on your system. See if you can implement and fulfill these API
> requirements on your system. If you'are able to do that, you don't have to
> disable GPR_LINUX_ENV - as a result - all the code/test-apps/examples etc
> will continue to work. Alternative is to come with your own,
> GPR_THREADX_ENV flag and replace it with GPR_LINUX_ENV across the library
> -
> but that might be more intrusive and you may miss things.
>
> Idea is to really see what gets you closer to a working piece of grpc
> library. Like most of porting exercises - it is always good to have a new
> implementation of the interface
> rather than having a new interface itself.
>
>
>
>
> ------------------------------
> *From:* [email protected] <javascript:> <[email protected]
> <javascript:>> on behalf of [email protected] <javascript:> <[email protected]
> <javascript:>>
> *Sent:* Thursday, September 12, 2019 3:36 PM
> *To:* grpc.io <[email protected] <javascript:>>
> *Subject:* Re: [grpc-io] Re: gRPC for embedded systems( for example -
> RTOS like ThreadX, FreeRTOS etc. )
>
> Hello Dharam,
> I'm lucky to see your mail when I'm planning to put grpc to embedded
> device running ThreadX.
> But it's not easy for me since grpc does not provide any options for
> embedded device running RTOS.
>
> I have following questions and I'm looking forward to your reply.
>
> 1. The compiler I'm using is DS-5 ARM compiler 6.02 armclang which
> has unsupported features such as -stdlib=libstdc++, and use of C11 library
> feature.
> so there're many compiling issues like atomic is not supported, no type
> named 'memory_order' in namespace 'std'.
> Did you see these compiling issue like these? what compiler are you
> using for compiling grpc? If atomic is not supported, is it possible to
> compile and run gprc?
>
> 2. As POSIX APIs are not supported in ThreadX. So these posix-APIs
> need to be implemented by my own?
>
> 3. When adding options for THREADX in port_platform.h, I disable many
> features such as GPR_LINUX_LOG, GPR_SUPPORT_CHANNEL_FROM_FD, GPR_LINUX_ENV
> and GPR_POSIX_TMPFILE
> But I'm not sure if grpc can work properly as these features are
> disabled. Any suggestions?
>
> Thanks!
>
> Dharam Kumar於 2019年8月21日星期三 UTC-7上午3時22分48秒寫道:
>
> Hello Jaehong,
> I've been able to put grpc framework on wiced rtos APIs
> <https://www.cypress.com/products/wiced-software>. Basically, Wiced SDK
> from Cypress provides abstracted RTOS/Networking APIs which is underneath
> implemented by different rtos/network stacks. For example -
> Expresslogic's ThreadX/NetX, FreeRTOS/lwip etc. I was able to get threads
> running, start grpc core service, create grpc endpoints(tcp) etc...
>
> Please note that grpc library does not support embedded TLS stacks like
> mbed-tls(from ARM). Also, default grpc transports module(chttp2?)might be
> too heavy for your embedded platform. So, you may have to work on these
> aspect. So be remindful of how "embedded" you can go. For example - it
> probably won't work on a board/platform with 256KB of RAM.
>
> In nutshell, putting grpc framework is totally possible.
> ...@Nicolas Noble - I'm not sure about the grpc being intertwined with
> posix part - as i recollect there are pretty good grpc abstractions for
> different platforms(windows, unix, posix etc.) - i just built on that and
> was able to get the grpc core up and running.
>
> Br,
> Dharam
>
> ------------------------------
> *From:* [email protected] <[email protected]> on behalf of
> Nicolas Noble <[email protected]>
> *Sent:* Wednesday, August 21, 2019 12:31 AM
> *To:* jaehong park <[email protected]>
> *Cc:* grpc.io <[email protected]>
> *Subject:* Re: [grpc-io] Re: gRPC for embedded systems( for example -
> RTOS like ThreadX, FreeRTOS etc. )
>
> We have no plans for that, and the current codebase is way too intertwined
> with posix to ever work on FreeRTOS / lwip. A full third party
> implementation of grpc would be needed for that at this point.
>
> On Tue, Aug 20, 2019 at 10:23 AM jaehong park <[email protected]> wrote:
>
> Hello Dharam,
>
> I'm having a similar project like below question.
> (III.Any effort in community in bringing gRPC for embedded devices(for
> RTOSes) ? )
> Do you have any progress this issue?
>
> Could you let me know where I can find the answer for this?
>
> Thanks,
> Jaehong
>
>
>
> On Tuesday, January 23, 2018 at 9:39:07 PM UTC-8, [email protected]
> wrote:
>
>
> Hello folks,
> I'm working on a project where we are planning to create a Google
> Assistant service instance on embedded/deeply embedded devices( non-linux,
> ARM processors running RTOS like ThreadX, FreeRTOS etc. )
> Our system has support for building executables for c/c++ etc. but it is
> not same as linux( for example - no posix availability ).
> Of course, like RTOSes these days, we have wrappers for providing
> OS/Networking functionality for applications/libraries to use.
>
> My questions are:
>
> i. How fit gRPC is for embedded devices? I can see abstraction for
> different platforms in "port_platform.h" file used to build grpc-core with
> options given in the file.
> My first thought is it should be doable if I adapt port_platform.h
> and build grpc-core with the capabilities provided by our system.
>
> ii. How deep gRPC's love is for posix? If any platform/devices does not
> provide any posix-like high level APIs, will gRPC still work as expected?
> How straight-forward such a task is going to be?
>
> iii. Any effort in community in bringing gRPC for embedded devices(for
> RTOSes) ? Would not it be great to have a tiny(and limited) gRPC library
> which can be
> easily integrated to embedded devices ? And such a thing supported by
> gRPC community/authors ?
>
> I understand that I can get most of the answers from reading the code
> itself(which I'm doing btw).
> But it would be nice to know insights/perspective of gRPC authors and
> community folks who understands gRPC better than me.
>
> Open for suggestions/feedback.
>
> Best regards,
> Dharam
>
> --
> You received this message because you are subscribed to the Google Groups "
> grpc.io" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/5a72e682-031f-415b-830f-7818810f434f%40googlegroups.com
>
> <https://groups.google.com/d/msgid/grpc-io/5a72e682-031f-415b-830f-7818810f434f%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "grpc.io" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/grpc-io/A0PlDMi2an8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/CAEvr0PEr7TM5m3JUtP04Jgc3tZj6zSx%2BmfRdGJNh5hwsB0HH6Q%40mail.gmail.com
>
> <https://groups.google.com/d/msgid/grpc-io/CAEvr0PEr7TM5m3JUtP04Jgc3tZj6zSx%2BmfRdGJNh5hwsB0HH6Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> This message and any attachments may contain confidential information from
> Cypress or its subsidiaries. If it has been received in error, please
> advise the sender and immediately delete this message.
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "grpc.io" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/grpc-io/A0PlDMi2an8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected] <javascript:>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/4d301f1c-04fd-43a2-9e1c-3061329a0a5b%40googlegroups.com
>
> <https://groups.google.com/d/msgid/grpc-io/4d301f1c-04fd-43a2-9e1c-3061329a0a5b%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> This message and any attachments may contain confidential information from
> Cypress or its subsidiaries. If it has been received in error, please
> advise the sender and immediately delete this message.
>
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/341677b4-7152-4906-a5c9-2ca1ba92f2a4%40googlegroups.com.