99#define UPDATE_THREAD_STACK_SIZE 500
1010#define UPDATE_THREAD_PRIORITY 5
1111
12- #define DEFAULT_SERIAL_BAUD 115200
12+ #define DEFAULT_SERIAL_BAUD 115200
1313
1414#include < zephyr/kernel.h>
1515#include < Arduino_RPClite.h>
1616
1717
18+ void updateEntryPoint (void *, void *, void *);
19+
1820class BridgeClass {
1921
2022 RPCClient* client = nullptr ;
@@ -24,6 +26,10 @@ class BridgeClass {
2426
2527 struct k_mutex read_mutex;
2628 struct k_mutex write_mutex;
29+
30+ k_tid_t upd_tid;
31+ k_thread_stack_t *upd_stack_area;
32+ struct k_thread upd_thread_data;
2733
2834public:
2935
@@ -41,6 +47,14 @@ class BridgeClass {
4147
4248 client = new RPCClient (*transport);
4349 server = new RPCServer (*transport);
50+
51+ upd_stack_area = k_thread_stack_alloc (UPDATE_THREAD_STACK_SIZE, 0 );
52+ upd_tid = k_thread_create (&upd_thread_data, upd_stack_area,
53+ UPDATE_THREAD_STACK_SIZE,
54+ updateEntryPoint,
55+ NULL , NULL , NULL ,
56+ UPDATE_THREAD_PRIORITY, 0 , K_NO_WAIT);
57+
4458 bool res;
4559 return call (RESET_METHOD, res);
4660 }
@@ -157,33 +171,20 @@ class BridgeClassUpdater {
157171 BridgeClassUpdater () = delete ; // prevents instantiation
158172};
159173
174+ #if defined(UNOQ) || defined(ARDUINO_UNOQ)
160175BridgeClass Bridge (Serial1);
161-
162- static void safeUpdate (){
163- BridgeClassUpdater::safeUpdate (Bridge);
164- }
165-
176+ #else
177+ extern BridgeClass Bridge;
178+ #endif
166179
167180void updateEntryPoint (void *, void *, void *){
168181 while (1 ){
169182 Bridge.update ();
170183 }
171184}
172185
173- static k_tid_t upd_tid;
174- static k_thread_stack_t *upd_stack_area;
175- static struct k_thread upd_thread_data;
176-
177- void __setupHook (){
178-
179- Bridge.begin ();
180-
181- upd_stack_area = k_thread_stack_alloc (UPDATE_THREAD_STACK_SIZE, 0 );
182- upd_tid = k_thread_create (&upd_thread_data, upd_stack_area,
183- UPDATE_THREAD_STACK_SIZE,
184- updateEntryPoint,
185- NULL , NULL , NULL ,
186- UPDATE_THREAD_PRIORITY, 0 , K_NO_WAIT);
186+ static void safeUpdate (){
187+ BridgeClassUpdater::safeUpdate (Bridge);
187188}
188189
189190void __loopHook (){
0 commit comments