PINE64
Developing on Mac (M3) - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: PineTime (https://forum.pine64.org/forumdisplay.php?fid=134)
+--- Forum: Development Discussion on PineTime (https://forum.pine64.org/forumdisplay.php?fid=136)
+--- Thread: Developing on Mac (M3) (/showthread.php?tid=19431)



Developing on Mac (M3) - oksalahti - 09-22-2024

Hi,

I just bought PineTime and started working on my own watch face.

I managed to compile and run LVGL simulator for Mac with M3 (https://docs.lvgl.io/7.11/get-started/pc-simulator.html)

I tested my watch face with the LVGL simulator and it works as I would like it to work. Next step is to try to get my watch face running on the InfiniSim simulator.

I managed to compile the InfiniSim simulator on Mac but it won't start. These are the error messages I get when trying to run the compiled simulator on mac.

Has anyone managed to run the InfiniSim simulator on mac? Any ideas what's going on? I know I might be able to build InfiniTime project itself and upload my new code on my device but I'd feel much more safe if I can verify that the code runs on the simulator first.

Code:
initial free_size = 40360
info:  systemtask task started!
info:  Last reset reason : Reset pin
info:  [SpiNorFlash] Manufacturer : 0, Memory type : 0, memory density : 0
info:  [SpiNorFlash] Wakeup
info:  DISABLE
info:  displayapp task started!
info:  DISABLE
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'nextEventMatchingMask should only be called from the Main Thread!'
*** First throw call stack:
(
0  CoreFoundation                      0x0000000186420540 __exceptionPreprocess + 176
1  libobjc.A.dylib                    0x0000000185f11eb4 objc_exception_throw + 60
2  AppKit                              0x000000018a37487c -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3164
3  SDL2                                0x000000010502d76c SDL2 + 87916
4  SDL2                                0x000000010502da08 SDL2 + 88584
5  SDL2                                0x00000001050aca00 SDL_DYNAPI_entry + 218324
6  SDL2                                0x00000001050acb30 SDL_DYNAPI_entry + 218628
7  infinisim                          0x0000000104706af8 sdl_event_handler + 44
8  infinisim                          0x00000001046dd328 lv_task_exec + 96
9  infinisim                          0x00000001046dd0a0 lv_task_handler + 536
10  infinisim                          0x00000001046944c8 _ZN8Pinetime12Applications10DisplayApp7RefreshEv + 328
11  infinisim                          0x000000010469433c _ZN8Pinetime12Applications10DisplayApp7ProcessEPv + 88
12  infinisim                          0x000000010470b8bc _Z20sdl_function_wrapperPv + 44
13  SDL2                                0x0000000105037e80 SDL2 + 130688
14  SDL2                                0x000000010503aef8 SDL2 + 143096
15  libsystem_pthread.dylib            0x00000001862ce034 _pthread_start + 136
16  libsystem_pthread.dylib            0x00000001862c8e3c thread_start + 8
)
libc++abi: terminating due to uncaught exception of type NSException
zsh: abort      ./infinisim



RE: Developing on Mac (M3) - oksalahti - 09-23-2024

(09-22-2024, 07:48 AM)oksalahti Wrote: Hi,

I just bought PineTime and started working on my own watch face.

I managed to compile and run LVGL simulator for Mac with M3 (https://docs.lvgl.io/7.11/get-started/pc-simulator.html)

I tested my watch face with the LVGL simulator and it works as I would like it to work. Next step is to try to get my watch face running on the InfiniSim simulator.

I managed to compile the InfiniSim simulator on Mac but it won't start. These are the error messages I get when trying to run the compiled simulator on mac.

Has anyone managed to run the InfiniSim simulator on mac? Any ideas what's going on? I know I might be able to build InfiniTime project itself and upload my new code on my device but I'd feel much more safe if I can verify that the code runs on the simulator first.

Code:
initial free_size = 40360
info:  systemtask task started!
info:  Last reset reason : Reset pin
info:  [SpiNorFlash] Manufacturer : 0, Memory type : 0, memory density : 0
info:  [SpiNorFlash] Wakeup
info:  DISABLE
info:  displayapp task started!
info:  DISABLE
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'nextEventMatchingMask should only be called from the Main Thread!'
*** First throw call stack:
(
0  CoreFoundation                      0x0000000186420540 __exceptionPreprocess + 176
1  libobjc.A.dylib                    0x0000000185f11eb4 objc_exception_throw + 60
2  AppKit                              0x000000018a37487c -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3164
3  SDL2                                0x000000010502d76c SDL2 + 87916
4  SDL2                                0x000000010502da08 SDL2 + 88584
5  SDL2                                0x00000001050aca00 SDL_DYNAPI_entry + 218324
6  SDL2                                0x00000001050acb30 SDL_DYNAPI_entry + 218628
7  infinisim                          0x0000000104706af8 sdl_event_handler + 44
8  infinisim                          0x00000001046dd328 lv_task_exec + 96
9  infinisim                          0x00000001046dd0a0 lv_task_handler + 536
10  infinisim                          0x00000001046944c8 _ZN8Pinetime12Applications10DisplayApp7RefreshEv + 328
11  infinisim                          0x000000010469433c _ZN8Pinetime12Applications10DisplayApp7ProcessEPv + 88
12  infinisim                          0x000000010470b8bc _Z20sdl_function_wrapperPv + 44
13  SDL2                                0x0000000105037e80 SDL2 + 130688
14  SDL2                                0x000000010503aef8 SDL2 + 143096
15  libsystem_pthread.dylib            0x00000001862ce034 _pthread_start + 136
16  libsystem_pthread.dylib            0x00000001862c8e3c thread_start + 8
)
libc++abi: terminating due to uncaught exception of type NSException
zsh: abort      ./infinisim

I could not get the simulator to run so I just went and installed on the device directly. It does work but is a bit on the slow side. Looks like drawing 21 arcs and 6 lines and 2 labels just takes a while (~800ms).

Here's the watch face I made. I call it the "Circles of Life". The outer circle indicates progress on the current year, the middle circle progress on the current month, the inner circle progress on the current week and the hour-dots also indicate battery charge level.

https://drive.google.com/file/d/1kwQNu1j_UFxWpjXFmTMcNauw5MOToj0E/view?usp=sharing

[Image: view?usp=sharing]