프로그램 사용/lvgl2026. 2. 3. 15:02

lvgl 다국어 지원 검색하다가 걸려 나온 nxp 툴.

[링크 : https://www.nxp.com/design/design-center/software/development-software/gui-guider:GUI-GUIDER]

 

먼가.. 묘하게 squareline studio 느낌이 난다?

[링크 : https://www.nxp.com/docs/en/user-guide/GUI_Guider_User_Manual.pdf]

'프로그램 사용 > lvgl' 카테고리의 다른 글

squareline studio / 애니메이션  (0) 2026.02.03
squareline studio / 화면전환  (0) 2026.02.03
lvgl perf mon  (0) 2026.02.03
ebike demo ui 구조 분석 - 속도 슬라이더 및 텍스트  (0) 2026.02.02
figma lvgl plugin  (0) 2026.02.02
Posted by 구차니
프로그램 사용/lvgl2026. 2. 3. 14:24

매번 뜨길래 어떻게 끄나 찾아봄

 

In your lv_conf.h set this:

#define LV_USE_PERF_MONITOR 0

[링크 : https://forum.lvgl.io/t/remove-fps-and-cpu-display/11042]

 

lv_conf.h를 찾아보니 아래와 같이 선언되어있다.

/*------------------
 * STATUS MONITORING
 *------------------*/

/*1: Show CPU usage and FPS count
 * Requires `LV_USE_SYSMON = 1`*/
#define LV_USE_PERF_MONITOR 1
#if LV_USE_PERF_MONITOR
    #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT

    /*0: Displays performance data on the screen, 1: Prints performance data using log.*/
    #define LV_USE_PERF_MONITOR_LOG_MODE 0
#endif

/*1: Show the used memory and the memory fragmentation
 * Requires `LV_USE_BUILTIN_MALLOC = 1`
 * Requires `LV_USE_SYSMON = 1`*/
#define LV_USE_MEM_MONITOR 1
#if LV_USE_MEM_MONITOR
    #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
#endif

'프로그램 사용 > lvgl' 카테고리의 다른 글

squareline studio / 화면전환  (0) 2026.02.03
nxp gui guider for lvgl  (0) 2026.02.03
ebike demo ui 구조 분석 - 속도 슬라이더 및 텍스트  (0) 2026.02.02
figma lvgl plugin  (0) 2026.02.02
eez studio  (0) 2026.02.02
Posted by 구차니

클론 시에 아래것들 까지 다 받으려면 아래와 같이 recurse-submodules를 주면되는데

$ git clone --recurse-submodules https://github.com/chaconinc/MainProject

[링크 : https://git-scm.com/book/ko/v2/Git-도구-서브모듈]

 

받고나서 서브모듈들을 받으려면 아래처럼 먼가 좀더 복잡해 진다.

git submodule update --init --recursive

[링크 : https://stackoverflow.com/questions/10168449/git-update-submodules-recursively]

[링크 : https://stackoverflow.com/questions/10168449/git-update-submodules-recursively]

'프로그램 사용 > Version Control' 카테고리의 다른 글

git revert  (0) 2025.12.11
.gitconfig insteadof  (0) 2025.12.09
git master -> main branch  (0) 2025.05.22
git local branch, merge master  (0) 2025.01.16
git switch  (0) 2025.01.16
Posted by 구차니
프로그램 사용/lvgl2026. 2. 2. 22:37

BG1 빼고 다 끔

 

slider speed. 가장 궁금했던 녀석인데..

 

Name에는 공백은 언더바로 치환되어 변수로 설정된다.

width / height 값은 이미지의 원래 크기인데 X와Y는 왜 마이너스 값일까?

 

scroll의 scroll direction은 all / vertical / horizontal 이 있으나 방향에 영향을 미치지 못한다.

value 는 min ~ max 사이 값으로 현재 값이다. max를 넘는 값이 들어갈수도 있으나 max로 표현된다.

 

 

스타일 셋팅 이게 표현의 핵심인듯.

 

슬라이더를 보면 main / indicator / knob로 나뉘는데

main의 배경 투명도를 켜고 꺼보면 먼가 차이가 난다.

 

이미지 자체는 투명인데 배경을 설정하지 않으면 흰색이 그냥 표시되는건가?

 

indicator는 슬라이더 바의 표시될 영역이라고 하면 되려나

32라면 왼쪽으로 부터 32 만큼 찬 것을 표시해주고 혹은 하단에서 부터 1/3이 차는걸 표현해주는 녀석이다.

 

main과는 다르게 indicator의 경우 표시되는 영역인 1/3 하단 영역에 대한 투명도가 사라진다.

 

knob는 손잡이 인데, 슬라이더의 중앙이라고 해야하나? 말 그대로 손잡이를 그려주는데

이 디자인에서는 노브가 없는 디자인이기에 투명하게 설정해서 손잡이를 지운다.

 

 

심심해서 slider 추가하고 가로 세로 비율을 다르게 했더니 비율에 따라 슬라이더 방향이 바뀐다. 이게 머야 -_-

 

35에서 50 으로 하니 옆으로 찬다.

 

이벤트는 연계되는 상황에 대해서 어떻게 할지인데

trigger 가 value_changed 이고

어떻게 보면 슬라이더 값이 바뀔때 event2로 speed_number_2와

 

speed_number_1의 값을 바꾸도록 한다.

 

이벤트는 제법 여러가지가 있는데

key_right 부터 short / long click 등 엄청 여러가지 이벤트가 존재한다.

 

위에서 이벤트로 걸린건 아래의 숫자 속도인데

글씨를 두번 써서 그림자 효과라.. 그럼 포트에서 자체적으로 그림자를 지원안하는건가?

 

'프로그램 사용 > lvgl' 카테고리의 다른 글

nxp gui guider for lvgl  (0) 2026.02.03
lvgl perf mon  (0) 2026.02.03
figma lvgl plugin  (0) 2026.02.02
eez studio  (0) 2026.02.02
esp32 lvgl benchmark  (0) 2026.02.02
Posted by 구차니
프로그램 사용/lvgl2026. 2. 2. 19:50

피그마를 쓰는법 익혀야 하나.. 고민이네

일단은~ lvgl pro용 외에

[링크 : https://www.figma.com/ko-kr/community/plugin/1362005814860504095/figma-to-lvgl]

 

squreline 용 플러그인도 발견

[링크 : https://www.figma.com/ko-kr/community/plugin/1578047295955007191/figma-to-squareline-vision]

 

 

'프로그램 사용 > lvgl' 카테고리의 다른 글

lvgl perf mon  (0) 2026.02.03
ebike demo ui 구조 분석 - 속도 슬라이더 및 텍스트  (0) 2026.02.02
eez studio  (0) 2026.02.02
esp32 lvgl benchmark  (0) 2026.02.02
esp32 lvgl 소스 코드 따라가기  (0) 2026.01.28
Posted by 구차니
프로그램 사용/lvgl2026. 2. 2. 19:50

figma용 lvgl 플러그인 찾다가 발견한 다른 오픈소스 프로그램

[링크 : https://www.envox.eu/studio/studio-introduction/]

[링크 : https://m.blog.naver.com/alfee0/224110418959]

 

그나저나 squareline studio 와는 결별하고 따로 만들었다는데

댓글들 보고 있노라니 lvgl8.x 까지 squareline studio에서 지원하고 9.x대는 안했다 이런 이야기도 있고

불안정하다 별별 이야기가 있는데.. 어찌되려나?

[링크 : https://forum.lvgl.io/t/lvgl-ends-its-collaboration-with-squareline-studio/14638/13?page=4]

'프로그램 사용 > lvgl' 카테고리의 다른 글

ebike demo ui 구조 분석 - 속도 슬라이더 및 텍스트  (0) 2026.02.02
figma lvgl plugin  (0) 2026.02.02
esp32 lvgl benchmark  (0) 2026.02.02
esp32 lvgl 소스 코드 따라가기  (0) 2026.01.28
squartline studio 설치  (0) 2026.01.28
Posted by 구차니
프로그램 사용/lvgl2026. 2. 2. 17:30

새롭게 빌드한걸 어떻게 넣어야 하나 이런거 고민하고 있었는데

그전에 소스를 보다보니 benchmark가 있어서 실행해보려고 꼼지락 꼼지락.

 

5_35_LVGL_Full_Test-S024/components/lv_examples/lv_examples/lv_examples.h

한줄 추가

#define LV_USE_DEMO_BENCHMARK   1

 

5_35_LVGL_Full_Test-S024/main/main.c

두 줄 추가, 두 줄 삭제

// #include "lv_examples/src/lv_demo_widgets/lv_demo_widgets.h"
#include "lv_examples/src/lv_demo_benchmark/lv_demo_benchmark.h"



// lv_demo_widgets();
lv_demo_benchmark();

    while (1) {
vTaskDelay(1);
// 尝试锁定信号量,如果成功,请调用lvgl的东西
if (xSemaphoreTake(xGuiSemaphore, (TickType_t)10) == pdTRUE) {
            lv_task_handler();
            xSemaphoreGive(xGuiSemaphore);  // 释放信号量
        }
    }
    vTaskDelete(NULL);      // 删除任务

 

위에는 50 fps 라는데 아래는 33fps가 나온다. 멀 믿어야 하나 -_-?

'프로그램 사용 > lvgl' 카테고리의 다른 글

figma lvgl plugin  (0) 2026.02.02
eez studio  (0) 2026.02.02
esp32 lvgl 소스 코드 따라가기  (0) 2026.01.28
squartline studio 설치  (0) 2026.01.28
lvgl pro + figma vs square line studio  (0) 2026.01.28
Posted by 구차니
프로그램 사용/gcc2026. 1. 29. 16:38

weak는 약한 애라 강한애가 오면 치환당한다.

tt.c 에는 a()함수가 weak로 존재하고

$ cat tt.c 
#include <stdio.h>

__attribute__((weak)) void a() { printf("a\n"); }

void main()
{
a();
}

 

t2.c에는 weak가 아닌 동일 이름의 함수가 있는데

$ cat t2.c 
#include <stdio.h>

void a() { printf("b\n"); }

 

tt.c를 빌드해서 실행하면 weak 함수가 실행되서 a가 나오고

$ gcc tt.c 
$ ./a.out 
a

 

두개를 한번에 넣어서 빌드하고 실행하면 weak가 밀려나서 링크 시에는 strong이 붙어 b가 나오게 된다.

$ gcc tt.c t2.c 
$ ./a.out 
b

 

 

---

링커에서 처리하는거라 컴파일 단계에서 단일 파일에 있다면 중복 선언으로 에러가 발생하니 반드시 파일을 분리해야 한다.

$ cat tt.c 
#include <stdio.h>

__attribute__((weak)) void a() { printf("a\n"); }
void a() { printf("b\n"); }

void main()
{
a();
}

$ gcc tt.c 
tt.c:4:6: error: redefinition of ‘a’
    4 | void a() { printf("b\n"); }
      |      ^
tt.c:3:28: note: previous definition of ‘a’ with type ‘void()’
    3 | __attribute__((weak)) void a() { printf("a\n"); }
      |                            ^

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc __cplusplus 선언  (0) 2026.02.18
gcc cortex-a9 double형 neon 연산 가속  (3) 2023.08.08
gcc tree vectorize  (0) 2023.01.26
gcc fstack-protector-strong  (0) 2022.12.06
gcc vectorization 실패  (0) 2022.06.02
Posted by 구차니
프로그램 사용/ncurses2026. 1. 29. 10:17

창을 찾았으니 이제 문득 예전에 마우스로 막 돌리던거 같은데 싶어서 마우스 이벤트 검색.

 

[링크 : https://widian.tistory.com/58]

[링크 : https://stackoverflow.com/questions/7462850/mouse-movement-events-in-ncurses]

 

#include <curses.h>

typedef unsigned long mmask_t;

typedef struct
{
    short id;         /* ID to distinguish multiple devices */
    int x, y, z;      /* event coordinates */
    mmask_t bstate;   /* button state bits */
}
MEVENT;
bool has_mouse(void);
-int getmouse(MEVENT *event);
int ungetmouse(MEVENT *event);
mmask_t mousemask(mmask_t newmask, mmask_t *oldmask);
bool wenclose(const WINDOW *win, int y, int x);
bool mouse_trafo(int* pY, int* pX, bool to_screen);
bool wmouse_trafo(const WINDOW* win, int* pY, int* pX,
bool to_screen);
int mouseinterval(int erval);

[링크 : https://linux.die.net/man/3/getmouse]

'프로그램 사용 > ncurses' 카테고리의 다른 글

ncurse window 관리 함수  (0) 2026.01.28
ncurse screen size  (0) 2025.09.30
ncurses 상자 및 색상 적용하기  (0) 2024.12.02
ncurses 예제  (0) 2024.11.30
ncurse example  (0) 2022.05.17
Posted by 구차니
프로그램 사용/ncurses2026. 1. 28. 23:07

해보잣!

[링크 : https://magmatart.dev/development/2017/06/02/ncurses1.html]

[링크 : https://magmatart.dev/development/2017/06/05/ncurses2.html]

 

#include <curses.h>
int border(chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, chtype bl, chtype br);
int wborder(WINDOW *win, chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, chtype bl, chtype br);
int box(WINDOW *win, chtype verch, chtype horch);
int hline(chtype ch, int n);
int whline(WINDOW *win, chtype ch, int n);
int vline(chtype ch, int n);
int wvline(WINDOW *win, chtype ch, int n);
int mvhline(int y, int x, chtype ch, int n);
int mvwhline(WINDOW *, int y, int x, chtype ch, int n);
int mvvline(int y, int x, chtype ch, int n);
int mvwvline(WINDOW *, int y, int x, chtype ch, int n);

[링크 : https://linux.die.net/man/3/box]

 

#include <curses.h>

WINDOW *newwin(int nlines, int ncols, int begin_y, int begin_x);
int delwin(WINDOW *win);
int mvwin(WINDOW *win, int y, int x);
WINDOW *subwin(WINDOW *orig, int nlines, int ncols, int begin_y, int begin_x);
WINDOW *derwin(WINDOW *orig, int nlines, int ncols, int begin_y, int begin_x);
int mvderwin(WINDOW *win, int par_y, int par_x);
WINDOW *dupwin(WINDOW *win);
void wsyncup(WINDOW *win);
int syncok(WINDOW *win, bool bf);
void wcursyncup(WINDOW *win);
void wsyncdown(WINDOW *win);

[링크 : https://linux.die.net/man/3/mvwin]

'프로그램 사용 > ncurses' 카테고리의 다른 글

ncurse 마우스 이벤트 처리  (0) 2026.01.29
ncurse screen size  (0) 2025.09.30
ncurses 상자 및 색상 적용하기  (0) 2024.12.02
ncurses 예제  (0) 2024.11.30
ncurse example  (0) 2022.05.17
Posted by 구차니