I am looking at the Rowley port of lwIP stack for SAM7 under: lwip_Demo_Rowley_ARM7 In the file ethernetif.c – under routine static struct pbuf *low_level_input(…), it creates and uses xRxSemaphore. It is not clear as to how this is being used? I am not able to see where any other task is trying to acquire this sema? Am I missing something on the use of sema’s? Thanks
It is declared static within the function so no other function can use it. It looks like it is just protecting access to the Ethernet peripheral to make it thread safe.
Thanks for the quick response. I am still confused – Since this is the only place where this is being used any other thread can still access it if it does not know that this is protected by this semaphore? Or is there something more to it that I need to read about. Thanks again
If the function is only ever called from one task then I would say the semaphore is not needed.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.