Title: Problems with multiple files build. · feilipu/Arduino_FreeRTOS_Library · Discussion #130 · GitHub
Open Graph Title: Problems with multiple files build. · feilipu/Arduino_FreeRTOS_Library · Discussion #130
X Title: Problems with multiple files build. · feilipu/Arduino_FreeRTOS_Library · Discussion #130
Description: Problems with multiple files build.
Open Graph Description: I am practicing in using multiple files in different locations, but my Arduino UNO rev3 freezes when I try to call functions located in an external file. Here is a minimum reproducible example: .sr...
X Description: I am practicing in using multiple files in different locations, but my Arduino UNO rev3 freezes when I try to call functions located in an external file. Here is a minimum reproducible example: .sr...
Opengraph URL: https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/130
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"QAPage","mainEntity":{"@type":"Question","name":"Problems with multiple files build.","text":"\u003cp dir=\"auto\"\u003eI am practicing in using multiple files in different locations, but my Arduino UNO rev3 freezes when I try to call functions located in an external file.\u003cbr\u003e\nHere is a minimum reproducible example:\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003e.src/main.cpp\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"#include \u0026quot;blink_main.h\u0026quot;\n#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;Arduino_FreeRTOS.h\u0026gt;\n#include \u0026lt;task.h\u0026gt;\n\n// Task parameters\nconst size_t STACK_SIZE_1000MS = 1024;\nconst uint8_t PRIORITY_1000MS = 2;\nTaskHandle_t xTaskHandle_1000ms;\nvoid task_1000ms(void * /*pVParameters*/);\n\nvoid setup() {\n\n const uint16_t BAUDRATE = 9600;\n Serial.begin(BAUDRATE);\n while (!Serial) {\n ;\n };\n\n // Task: 1000ms\n BaseType_t xReturned1000ms;\n xReturned1000ms = xTaskCreate(task_1000ms, \u0026quot;Task_1000ms\u0026quot;, STACK_SIZE_1000MS,\n NULL, PRIORITY_1000MS, \u0026amp;xTaskHandle_1000ms);\n\n if (xReturned1000ms != pdPASS) {\n char msg[] = \u0026quot;I cannot instantiate the 1000ms task.\u0026quot;;\n Serial.println(msg);\n }\n}\n\nvoid loop() {}\n\n// Task implementation\nvoid task_1000ms(void *pVParameters) {\n (void)pVParameters;\n\n /* Serial.println(\u0026quot;Check\u0026quot;); */\n blink_main_init();\n\n while (true) {\n // Do nothing\n // Task Schedule\n const TickType_t X_DELAY = 1000 / portTICK_PERIOD_MS;\n vTaskDelay(X_DELAY); // one tick delay (15ms)\n }\n}\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode class=\"notranslate\"\u003e#include \"blink_main.h\"\n#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;Arduino_FreeRTOS.h\u0026gt;\n#include \u0026lt;task.h\u0026gt;\n\n// Task parameters\nconst size_t STACK_SIZE_1000MS = 1024;\nconst uint8_t PRIORITY_1000MS = 2;\nTaskHandle_t xTaskHandle_1000ms;\nvoid task_1000ms(void * /*pVParameters*/);\n\nvoid setup() {\n\n const uint16_t BAUDRATE = 9600;\n Serial.begin(BAUDRATE);\n while (!Serial) {\n ;\n };\n\n // Task: 1000ms\n BaseType_t xReturned1000ms;\n xReturned1000ms = xTaskCreate(task_1000ms, \"Task_1000ms\", STACK_SIZE_1000MS,\n NULL, PRIORITY_1000MS, \u0026amp;xTaskHandle_1000ms);\n\n if (xReturned1000ms != pdPASS) {\n char msg[] = \"I cannot instantiate the 1000ms task.\";\n Serial.println(msg);\n }\n}\n\nvoid loop() {}\n\n// Task implementation\nvoid task_1000ms(void *pVParameters) {\n (void)pVParameters;\n\n /* Serial.println(\"Check\"); */\n blink_main_init();\n\n while (true) {\n // Do nothing\n // Task Schedule\n const TickType_t X_DELAY = 1000 / portTICK_PERIOD_MS;\n vTaskDelay(X_DELAY); // one tick delay (15ms)\n }\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003e./lib/blink/blink_main.h\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"void blink_main_init(void);\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode class=\"notranslate\"\u003evoid blink_main_init(void);\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003e./lib/blink/blink_main.cpp\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;Arduino_FreeRTOS.h\u0026gt;\n#include \u0026lt;semphr.h\u0026gt;\n\nstatic uint8_t blink_led_state;\nSemaphoreHandle_t mutex_blink_led_state;\n\n// Init\nvoid blink_main_init(void) {\n Serial.println(\u0026quot;Inside the init.\u0026quot;);\n mutex_blink_led_state = xSemaphoreCreateMutex();\n /* Serial.println(\u0026quot;Mutex created.\u0026quot;); */\n blink_led_state = 0;\n}\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode class=\"notranslate\"\u003e#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;Arduino_FreeRTOS.h\u0026gt;\n#include \u0026lt;semphr.h\u0026gt;\n\nstatic uint8_t blink_led_state;\nSemaphoreHandle_t mutex_blink_led_state;\n\n// Init\nvoid blink_main_init(void) {\n Serial.println(\"Inside the init.\");\n mutex_blink_led_state = xSemaphoreCreateMutex();\n /* Serial.println(\"Mutex created.\"); */\n blink_led_state = 0;\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf I comment out \u003ccode class=\"notranslate\"\u003eblink_main_init();\u003c/code\u003e, then the board does not get stuck.\u003cbr\u003e\nFor getting stuck I mean that the builtin led blinks at very high frequency and the serial port got stuck.\u003c/p\u003e","upvoteCount":1,"answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"\u003cp dir=\"auto\"\u003eSOLVED: I had to move \u003ccode class=\"notranslate\"\u003eblink_main_init(); \u003c/code\u003eoutside the function. I placed it just before \u003ccode class=\"notranslate\"\u003eBaseType_t xReturned1000ms;\u003c/code\u003e and now everything is working.\u003c/p\u003e","upvoteCount":1,"url":"https://github.com/feilipu/Arduino_FreeRTOS_Library/discussions/130#discussioncomment-8071895"}}}
| route-pattern | /_view_fragments/Voltron::DiscussionsFragmentsController/show/:user_id/:repository/:discussion_number/discussion_layout(.:format) |
| route-controller | voltron_discussions_fragments |
| route-action | discussion_layout |
| fetch-nonce | v2:751bfa44-6d49-15da-826d-75f9ec200606 |
| current-catalog-service-hash | 9f0abe34da433c9b6db74bffa2466494a717b579a96b30a5d252e5090baea7be |
| request-id | 9B0E:396977:D1F1A8:123CE62:6A61A8FA |
| html-safe-nonce | 1e413d5900478d9578f6caceca62e0ade521c0d53102820ded4e6019399b06d5 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5QjBFOjM5Njk3NzpEMUYxQTg6MTIzQ0U2Mjo2QTYxQThGQSIsInZpc2l0b3JfaWQiOiI4NDU0MzY1OTUyNTQxMzA1MDgyIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 82353f6d90bad7f029136ef9720957ae588477ac67ed5a86468c6fdb077a4bd2 |
| hovercard-subject-tag | discussion:6052033 |
| github-keyboard-shortcuts | repository,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/Voltron::DiscussionsFragmentsController/show/feilipu/Arduino_FreeRTOS_Library/130/discussion_layout |
| twitter:image | https://opengraph.githubassets.com/b00973868438397bf976882434349dd995120f8c39112db6d02bb86317b31245/feilipu/Arduino_FreeRTOS_Library/discussions/130 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/b00973868438397bf976882434349dd995120f8c39112db6d02bb86317b31245/feilipu/Arduino_FreeRTOS_Library/discussions/130 |
| og:image:alt | I am practicing in using multiple files in different locations, but my Arduino UNO rev3 freezes when I try to call functions located in an external file. Here is a minimum reproducible example: .sr... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 6f4633bcf01c1ad14b73fd07dd39ac31d61f3d3c2578ee08ec1792b7b351eeb9 |
| turbo-cache-control | no-preview |
| go-import | github.com/feilipu/Arduino_FreeRTOS_Library git https://github.com/feilipu/Arduino_FreeRTOS_Library.git |
| octolytics-dimension-user_id | 3955592 |
| octolytics-dimension-user_login | feilipu |
| octolytics-dimension-repository_id | 46898167 |
| octolytics-dimension-repository_nwo | feilipu/Arduino_FreeRTOS_Library |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 46898167 |
| octolytics-dimension-repository_network_root_nwo | feilipu/Arduino_FreeRTOS_Library |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | ac296ae7f21856f1f92adbad22f870b6fbb4b907 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width