René's URL Explorer Experiment


Title: Problems with xMessageBufferReceive. · feilipu/Arduino_FreeRTOS_Library · Discussion #128 · GitHub

Open Graph Title: Problems with xMessageBufferReceive. · feilipu/Arduino_FreeRTOS_Library · Discussion #128

X Title: Problems with xMessageBufferReceive. · feilipu/Arduino_FreeRTOS_Library · Discussion #128

Description: Problems with xMessageBufferReceive.

Open Graph Description: As a pedagogical exercise, I wrote an app with one task that blink a led and push some string in a Message buffer. (task1) Messages from the Message Buffer are sent over serial from another task (t...

X Description: As a pedagogical exercise, I wrote an app with one task that blink a led and push some string in a Message buffer. (task1) Messages from the Message Buffer are sent over serial from another task (t...

Opengraph URL: https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"QAPage","mainEntity":{"@type":"Question","name":"Problems with xMessageBufferReceive.","text":"\u003cp dir=\"auto\"\u003eAs a pedagogical exercise, I wrote an app with one task that blink a led and push some string in a Message buffer. (task1)\u003cbr\u003e\nMessages from the Message Buffer are sent over serial from another task (task2).\u003cbr\u003e\nI further used a binary semaphore and a mutex for regulating the access to the Message Buffer and the Serial.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eMy problem is that everything get stuck when I use xMessageBufferReceive().\u003cbr\u003e\nBelow a reproducible code, where I marked the non working part.\u003cbr\u003e\nIf you comment that section and uncomment e.g. the line above ( /* Serial.println(\"TEST\"); */) you will see that everything works.\u003cbr\u003e\nWhat I am doing wrong?\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"#include \u0026quot;FreeRTOSVariant.h\u0026quot;\n#include \u0026quot;HardwareSerial.h\u0026quot;\n#include \u0026quot;portable.h\u0026quot;\n#include \u0026quot;projdefs.h\u0026quot;\n#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;message_buffer.h\u0026gt;\n#include \u0026lt;semphr.h\u0026gt;\n\n// Global variables: semaphore and message buffer\n/* Create a message buffer to send data to the serial*/\nconst size_t MESSAGE_SIZE = 100;\nMessageBufferHandle_t xMessageBuffer = xMessageBufferCreate(MESSAGE_SIZE);\n\n/* Create a semaphore to control access to the message buffer */\n// TODO: do we really need static?\nstatic SemaphoreHandle_t xSemaphoreMessageBuffer = xSemaphoreCreateBinary();\nstatic SemaphoreHandle_t xSemaphoreSerialPort = xSemaphoreCreateMutex();\n\n// Task functions prototypes\nvoid task_blink(void *pVParameters);\nvoid task_serial(void *pVParameters);\n\nvoid setup() {\n\n  // initialize serial communication at 9600 bits per second:\n  const unsigned int BAUDRATE = 9600;\n  Serial.begin(BAUDRATE);\n\n  // TODO: is it really needed?\n  while (!Serial) {\n    ; // wait for serial port to connect. Needed for native USB, on LEONARDO,\n  }\n\n  // Release all the semaphore at the very beginning.\n  xSemaphoreGive(xSemaphoreMessageBuffer);\n  xSemaphoreGive(xSemaphoreSerialPort);\n\n  // Task: Blink\n  const size_t STACK_SIZE_BLINK = 128;\n  const uint8_t PRIORITY_BLINK = 2;\n  TaskHandle_t xTaskHandleBlink;\n\n  xTaskCreate(task_blink, \u0026quot;Blink\u0026quot;, STACK_SIZE_BLINK, NULL, PRIORITY_BLINK,\n              \u0026amp;xTaskHandleBlink);\n\n  // Task: Serial\n  const size_t STACK_SIZE_SERIAL = 128;\n  const uint8_t PRIORITY_SERIAL = 2;\n  TaskHandle_t xTaskHandleSerial;\n\n  xTaskCreate(task_serial, \u0026quot;Serial\u0026quot;, STACK_SIZE_SERIAL, NULL, PRIORITY_SERIAL,\n              \u0026amp;xTaskHandleSerial);\n}\n// Skip loop. OBS! IdleTask cannot be used!\nvoid loop() {}\n\n// Task implementation\nvoid task_blink(void *pVParameters) // This is a task.\n{\n  (void)pVParameters;\n  const int TASK_PERIOD = 1000;\n\n  // initialize digital LED_BUILTIN on pin 13 as an output.\n  pinMode(LED_BUILTIN, OUTPUT);\n  static uint8_t counter = 0;\n  const size_t MAX_COUNT = 2;\n\n  // Condition for sending a message over the serial port\n  boolean isMessageBufferSemaphoreTaken;\n  boolean isMessageShortEnough;\n\n  while (true) {\n    static bool led_state = false;\n    // send something every MAX_COUNT*TASK_PERIOD seconds.\n\n    if (!led_state) {\n      digitalWrite(LED_BUILTIN, HIGH);\n      led_state = true;\n    } else {\n      digitalWrite(LED_BUILTIN, LOW);\n      led_state = false;\n    }\n\n    char message[] = \u0026quot;dog\u0026quot;;\n    if (counter == MAX_COUNT) {\n\n      // Debug\n      /* Serial.print(\u0026quot;Available space in message buffer: \u0026quot;); */\n      /* Serial.println(xMessageBufferSpacesAvailable((xMessageBuffer))); */\n\n      // Check if you can send a message\n      isMessageBufferSemaphoreTaken =\n          xSemaphoreTake(xSemaphoreMessageBuffer, 1000 / portTICK_PERIOD_MS) ==\n          pdTRUE;\n      isMessageShortEnough =\n          xMessageBufferSpacesAvailable((xMessageBuffer)) \u0026gt; strlen(message);\n\n      if (isMessageBufferSemaphoreTaken \u0026amp;\u0026amp; isMessageShortEnough) {\n        xMessageBufferSend(xMessageBuffer, message, sizeof(message), 0);\n        /* Serial.println(\u0026quot;Message sent!\u0026quot;); */\n        xSemaphoreGive(xSemaphoreMessageBuffer);\n      }\n      counter = 0;\n    } else {\n      counter++;\n    }\n\n    // Task Schedule\n    const TickType_t X_DELAY = TASK_PERIOD / portTICK_PERIOD_MS;\n    vTaskDelay(X_DELAY); // one tick delay (15ms)\n  }\n}\n\nvoid task_serial(void *pVParameters) // This is a task.\n{\n  (void)pVParameters;\n  const uint8_t TASK_PERIOD = 200;\n  uint8_t received_data[MESSAGE_SIZE];\n  size_t received_bytes;\n  received_bytes = 0;\n\n  boolean isMessageBufferSemaphoreTaken;\n  boolean isSerialSemaphoreTaken;\n  boolean isMessageBufferEmpty;\n\n  while (true) {\n    // Conditions for writing on the serial\n\n    isSerialSemaphoreTaken =\n        xSemaphoreTake(xSemaphoreSerialPort, 1000 / portTICK_PERIOD_MS) ==\n        pdTRUE;\n    isMessageBufferSemaphoreTaken =\n        xSemaphoreTake(xSemaphoreMessageBuffer, 1000 / portTICK_PERIOD_MS) ==\n        pdTRUE;\n    isMessageBufferEmpty = xMessageBufferIsEmpty(xMessageBuffer) == pdTRUE;\n\n    if (isSerialSemaphoreTaken) {\n      if (isMessageBufferSemaphoreTaken) {\n        if (!isMessageBufferEmpty) {\n          /* Serial.println(\u0026quot;TEST\u0026quot;); */\n\n          /* ------------- BEGIN NON-WORKING PART!!! -----------*/\n          received_bytes = xMessageBufferReceive(xMessageBuffer, received_data,\n                                                 sizeof(received_data), 0);\n          Serial.println(received_bytes);\n          /* ------------- END NON-WORKING PART!!! -----------*/\n        }\n        xSemaphoreGive(xSemaphoreMessageBuffer);\n        /* Serial.println(\u0026quot;(serial) Semaphore MessageBuffer released.\u0026quot;); */\n      }\n      xSemaphoreGive(xSemaphoreSerialPort);\n      /* Serial.println(\u0026quot;(serial) Semaphore serial port released.\u0026quot;); */\n    }\n\n    // TODO: Task Schedule\n    const TickType_t X_DELAY = TASK_PERIOD / portTICK_PERIOD_MS;\n    vTaskDelay(X_DELAY); // one tick delay (15ms)\n  }\n}\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode class=\"notranslate\"\u003e#include \"FreeRTOSVariant.h\"\n#include \"HardwareSerial.h\"\n#include \"portable.h\"\n#include \"projdefs.h\"\n#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;message_buffer.h\u0026gt;\n#include \u0026lt;semphr.h\u0026gt;\n\n// Global variables: semaphore and message buffer\n/* Create a message buffer to send data to the serial*/\nconst size_t MESSAGE_SIZE = 100;\nMessageBufferHandle_t xMessageBuffer = xMessageBufferCreate(MESSAGE_SIZE);\n\n/* Create a semaphore to control access to the message buffer */\n// TODO: do we really need static?\nstatic SemaphoreHandle_t xSemaphoreMessageBuffer = xSemaphoreCreateBinary();\nstatic SemaphoreHandle_t xSemaphoreSerialPort = xSemaphoreCreateMutex();\n\n// Task functions prototypes\nvoid task_blink(void *pVParameters);\nvoid task_serial(void *pVParameters);\n\nvoid setup() {\n\n  // initialize serial communication at 9600 bits per second:\n  const unsigned int BAUDRATE = 9600;\n  Serial.begin(BAUDRATE);\n\n  // TODO: is it really needed?\n  while (!Serial) {\n    ; // wait for serial port to connect. Needed for native USB, on LEONARDO,\n  }\n\n  // Release all the semaphore at the very beginning.\n  xSemaphoreGive(xSemaphoreMessageBuffer);\n  xSemaphoreGive(xSemaphoreSerialPort);\n\n  // Task: Blink\n  const size_t STACK_SIZE_BLINK = 128;\n  const uint8_t PRIORITY_BLINK = 2;\n  TaskHandle_t xTaskHandleBlink;\n\n  xTaskCreate(task_blink, \"Blink\", STACK_SIZE_BLINK, NULL, PRIORITY_BLINK,\n              \u0026amp;xTaskHandleBlink);\n\n  // Task: Serial\n  const size_t STACK_SIZE_SERIAL = 128;\n  const uint8_t PRIORITY_SERIAL = 2;\n  TaskHandle_t xTaskHandleSerial;\n\n  xTaskCreate(task_serial, \"Serial\", STACK_SIZE_SERIAL, NULL, PRIORITY_SERIAL,\n              \u0026amp;xTaskHandleSerial);\n}\n// Skip loop. OBS! IdleTask cannot be used!\nvoid loop() {}\n\n// Task implementation\nvoid task_blink(void *pVParameters) // This is a task.\n{\n  (void)pVParameters;\n  const int TASK_PERIOD = 1000;\n\n  // initialize digital LED_BUILTIN on pin 13 as an output.\n  pinMode(LED_BUILTIN, OUTPUT);\n  static uint8_t counter = 0;\n  const size_t MAX_COUNT = 2;\n\n  // Condition for sending a message over the serial port\n  boolean isMessageBufferSemaphoreTaken;\n  boolean isMessageShortEnough;\n\n  while (true) {\n    static bool led_state = false;\n    // send something every MAX_COUNT*TASK_PERIOD seconds.\n\n    if (!led_state) {\n      digitalWrite(LED_BUILTIN, HIGH);\n      led_state = true;\n    } else {\n      digitalWrite(LED_BUILTIN, LOW);\n      led_state = false;\n    }\n\n    char message[] = \"dog\";\n    if (counter == MAX_COUNT) {\n\n      // Debug\n      /* Serial.print(\"Available space in message buffer: \"); */\n      /* Serial.println(xMessageBufferSpacesAvailable((xMessageBuffer))); */\n\n      // Check if you can send a message\n      isMessageBufferSemaphoreTaken =\n          xSemaphoreTake(xSemaphoreMessageBuffer, 1000 / portTICK_PERIOD_MS) ==\n          pdTRUE;\n      isMessageShortEnough =\n          xMessageBufferSpacesAvailable((xMessageBuffer)) \u0026gt; strlen(message);\n\n      if (isMessageBufferSemaphoreTaken \u0026amp;\u0026amp; isMessageShortEnough) {\n        xMessageBufferSend(xMessageBuffer, message, sizeof(message), 0);\n        /* Serial.println(\"Message sent!\"); */\n        xSemaphoreGive(xSemaphoreMessageBuffer);\n      }\n      counter = 0;\n    } else {\n      counter++;\n    }\n\n    // Task Schedule\n    const TickType_t X_DELAY = TASK_PERIOD / portTICK_PERIOD_MS;\n    vTaskDelay(X_DELAY); // one tick delay (15ms)\n  }\n}\n\nvoid task_serial(void *pVParameters) // This is a task.\n{\n  (void)pVParameters;\n  const uint8_t TASK_PERIOD = 200;\n  uint8_t received_data[MESSAGE_SIZE];\n  size_t received_bytes;\n  received_bytes = 0;\n\n  boolean isMessageBufferSemaphoreTaken;\n  boolean isSerialSemaphoreTaken;\n  boolean isMessageBufferEmpty;\n\n  while (true) {\n    // Conditions for writing on the serial\n\n    isSerialSemaphoreTaken =\n        xSemaphoreTake(xSemaphoreSerialPort, 1000 / portTICK_PERIOD_MS) ==\n        pdTRUE;\n    isMessageBufferSemaphoreTaken =\n        xSemaphoreTake(xSemaphoreMessageBuffer, 1000 / portTICK_PERIOD_MS) ==\n        pdTRUE;\n    isMessageBufferEmpty = xMessageBufferIsEmpty(xMessageBuffer) == pdTRUE;\n\n    if (isSerialSemaphoreTaken) {\n      if (isMessageBufferSemaphoreTaken) {\n        if (!isMessageBufferEmpty) {\n          /* Serial.println(\"TEST\"); */\n\n          /* ------------- BEGIN NON-WORKING PART!!! -----------*/\n          received_bytes = xMessageBufferReceive(xMessageBuffer, received_data,\n                                                 sizeof(received_data), 0);\n          Serial.println(received_bytes);\n          /* ------------- END NON-WORKING PART!!! -----------*/\n        }\n        xSemaphoreGive(xSemaphoreMessageBuffer);\n        /* Serial.println(\"(serial) Semaphore MessageBuffer released.\"); */\n      }\n      xSemaphoreGive(xSemaphoreSerialPort);\n      /* Serial.println(\"(serial) Semaphore serial port released.\"); */\n    }\n\n    // TODO: Task Schedule\n    const TickType_t X_DELAY = TASK_PERIOD / portTICK_PERIOD_MS;\n    vTaskDelay(X_DELAY); // one tick delay (15ms)\n  }\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","upvoteCount":1,"answerCount":4,"acceptedAnswer":{"@type":"Answer","text":"\u003cp dir=\"auto\"\u003eWithout looking in detail, using \u003ccode class=\"notranslate\"\u003eSerial.println()\u003c/code\u003e is an Arduino C++ trap. Expect to need over 512 bytes of stack to instantiate that class of functions, IIRC, and 128 bytes is nowhere near sufficient. Check other past issues here for more details.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003ePerhaps test and report if you could, please. Then we can look in more detail.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThere's a low level print function available as an option, IIRC.\u003c/p\u003e","upvoteCount":1,"url":"https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029867"}}}

route-pattern/_view_fragments/Voltron::DiscussionsFragmentsController/show/:user_id/:repository/:discussion_number/discussion_layout(.:format)
route-controllervoltron_discussions_fragments
route-actiondiscussion_layout
fetch-noncev2:d98745b0-9aee-53e6-4067-85d27dee52b1
current-catalog-service-hash9f0abe34da433c9b6db74bffa2466494a717b579a96b30a5d252e5090baea7be
request-idC07C:33DDB5:28433A:3A11BB:6A61E217
html-safe-nonce8e4c92918df824541da7ca7e11946bfef33f7008e679d42ba777986918c97076
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMDdDOjMzRERCNToyODQzM0E6M0ExMUJCOjZBNjFFMjE3IiwidmlzaXRvcl9pZCI6IjEwMTMyNzg2NjY2NDQ0NDQzOSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac63f6df6505a4a4c3d5398b7a4493b53f37833adbfd7ec97523814ceaac266e2f
hovercard-subject-tagdiscussion:6034443
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/discussions_fragments/discussion_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/Voltron::DiscussionsFragmentsController/show/feilipu/Arduino_FreeRTOS_Library/128/discussion_layout
twitter:imagehttps://opengraph.githubassets.com/6ac016d014f6829f00ba1d3f768109752bf210d934df9b624cacab47d0c6486a/feilipu/Arduino_FreeRTOS_Library/discussions/128
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/6ac016d014f6829f00ba1d3f768109752bf210d934df9b624cacab47d0c6486a/feilipu/Arduino_FreeRTOS_Library/discussions/128
og:image:altAs a pedagogical exercise, I wrote an app with one task that blink a led and push some string in a Message buffer. (task1) Messages from the Message Buffer are sent over serial from another task (t...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb2de8c74e5e61e893155ba46ee41bc66170c1644cb795adefa8386d490f7781c
turbo-cache-controlno-preview
go-importgithub.com/feilipu/Arduino_FreeRTOS_Library git https://github.com/feilipu/Arduino_FreeRTOS_Library.git
octolytics-dimension-user_id3955592
octolytics-dimension-user_loginfeilipu
octolytics-dimension-repository_id46898167
octolytics-dimension-repository_nwofeilipu/Arduino_FreeRTOS_Library
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id46898167
octolytics-dimension-repository_network_root_nwofeilipu/Arduino_FreeRTOS_Library
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
released1866027ded575df8a15c731dd8b9986c9483ceb
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeilipu%2FArduino_FreeRTOS_Library%2Fdiscussions%2F128
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeilipu%2FArduino_FreeRTOS_Library%2Fdiscussions%2F128
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fdiscussions_fragments%2Fdiscussion_layout&source=header-repo&source_repo=feilipu%2FArduino_FreeRTOS_Library
Reloadhttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Reloadhttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Reloadhttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
feilipu https://github.com/feilipu
Arduino_FreeRTOS_Libraryhttps://github.com/feilipu/Arduino_FreeRTOS_Library
Notifications https://github.com/login?return_to=%2Ffeilipu%2FArduino_FreeRTOS_Library
Fork 217 https://github.com/login?return_to=%2Ffeilipu%2FArduino_FreeRTOS_Library
Star 957 https://github.com/login?return_to=%2Ffeilipu%2FArduino_FreeRTOS_Library
Code https://github.com/feilipu/Arduino_FreeRTOS_Library
Issues 2 https://github.com/feilipu/Arduino_FreeRTOS_Library/issues
Pull requests 1 https://github.com/feilipu/Arduino_FreeRTOS_Library/pulls
Discussions https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions
Actions https://github.com/feilipu/Arduino_FreeRTOS_Library/actions
Projects https://github.com/feilipu/Arduino_FreeRTOS_Library/projects
Wiki https://github.com/feilipu/Arduino_FreeRTOS_Library/wiki
Security and quality 0 https://github.com/feilipu/Arduino_FreeRTOS_Library/security
Insights https://github.com/feilipu/Arduino_FreeRTOS_Library/pulse
Code https://github.com/feilipu/Arduino_FreeRTOS_Library
Issues https://github.com/feilipu/Arduino_FreeRTOS_Library/issues
Pull requests https://github.com/feilipu/Arduino_FreeRTOS_Library/pulls
Discussions https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions
Actions https://github.com/feilipu/Arduino_FreeRTOS_Library/actions
Projects https://github.com/feilipu/Arduino_FreeRTOS_Library/projects
Wiki https://github.com/feilipu/Arduino_FreeRTOS_Library/wiki
Security and quality https://github.com/feilipu/Arduino_FreeRTOS_Library/security
Insights https://github.com/feilipu/Arduino_FreeRTOS_Library/pulse
Answered https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029867
feilipuhttps://github.com/feilipu
ubaldot https://github.com/ubaldot
Q&Ahttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/categories/q-a
Problems with xMessageBufferReceive. https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#top
ubaldot https://github.com/ubaldot
Answered https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029867
feilipuhttps://github.com/feilipu
Return to tophttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#top
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
ubaldot https://github.com/ubaldot
Jan 6, 2024 https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussion-6034443
Give feedback.https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
feilipu https://github.com/feilipu
Jan 6, 2024 https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029867
View full answer https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029867
Oldest https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128?sort=old
Newest https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128?sort=new
Top https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128?sort=top
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
feilipu https://github.com/feilipu
Jan 6, 2024 https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029867
Give feedback.https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
ubaldothttps://github.com/ubaldot
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
ubaldot https://github.com/ubaldot
Jan 6, 2024 https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8029998
Give feedback.https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
ubaldot https://github.com/ubaldot
Jan 6, 2024 https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8030304
Give feedback.https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Please reload this pagehttps://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
feilipu https://github.com/feilipu
Jan 6, 2024 https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128#discussioncomment-8030732
Arduinohttps://github.com/arduino/ArduinoCore-avr
Adafruithttps://learn.adafruit.com/memories-of-an-arduino/optimizing-sram
Give feedback.https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
Sign up for freehttps://github.com/join?source=comment-repo
Sign in to commenthttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeilipu%2FArduino_FreeRTOS_Library%2Fdiscussions%2F128
🙏 Q&A https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/categories/q-a
https://github.com/ubaldot
https://github.com/feilipu
https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/128
https://github.com/settings/replies?return_to=1
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.