海奇HC-RTOS平台E100-问题点
- ■ btn 没有添加到group中 ,怎么实现的事件的 (已解决)
- ■ 屏幕是1280*720, UI是1024*600,是否修改UI (已解决)
- ■ hc15xx-db-e100-v10-hcdemo.dtb 找不到 (已解决)
- ■ 按键驱动
- ■ __initcall(projector_auto_start)
- ■ 补丁是打在运行程序,还是代码中。 (已解决)
- ■ Label align policy 只有左右对齐,没有上下居中`在这里插入代码片
- ■ lvgl圆角问题,不能只设置一个角为圆角?
- ■ LV_SIZE_CONTENT 代码数值多少?
- ■ app.config.h 中的 #ifdef BR2_PACKAGE_HCCAST_DLNA (已解决)
- ■ 找不到函数 void hcplayer_play(void *player); 是不是没有开源?
- ■ _lv_indev_ll意思
- ■ set_label_text2(icon,STR_MP_NO_DEV,FONT_NORMAL); (已解决)
- ■ 设置页面想要控制屏幕的 screen 自定义的 lv_slider_create
- ■ 歌曲和电子书都是变动的汉字怎么显示出来。
- ■ GD25Q64E(8MB) ??????????????????????? 中的意思
- ■ 播放预览 怎么播放在lv_obj_v 控件上面。
- ■ 怎么获取lv_obj_v 在屏幕上的坐标。
- ■ 触摸屏问题,点击按钮会出现两次以上点击事件。
- ■ 报错
- ■ 问题 auto.conf: No such file or directory v10_hcdemo/include/config/br2_auto.conf'. Stop. 100_v10_hcdemo/build/libssp/.stamp_built' failed
- ■ 问题 Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.0.37|:80... failed: Connection timed out.
- ■ 问题 Makefile:45: recipe for target 'projector.out' failed
- ■ 问题 重新编译会出错
- ■
- ■ 问题点
- ■
- ■
■ btn 没有添加到group中 ,怎么实现的事件的 (已解决)
电影, 音乐, 照片, 电子书,一行中的
ui_mainpage
static int create_subobj_in_cont(lv_obj_t* p)
{
for(int i = 0; i <SCR_MAINICON_NUM;i++){
lv_obj_t* obj=lv_obj_create(p);
lv_obj_set_size(obj,LV_PCT(20),LV_PCT(53));
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); /// Flags
lv_obj_set_style_radius(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_color(obj, lv_color_hex(0x031FFF), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_t* img=lv_img_create(obj);
lv_obj_set_align(img,LV_ALIGN_TOP_MID);
lv_obj_t* btn=lv_btn_create(obj);
lv_obj_set_size(btn,LV_PCT(MAINPAGE_BTNPCT_W),LV_PCT(25));
lv_obj_set_align(btn,LV_ALIGN_BOTTOM_MID);
lv_obj_clear_flag(btn, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_style_bg_color(btn, lv_color_hex(0x031FFF), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(btn, LV_OPA_TRANSP, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_shadow_color(btn, lv_color_hex(0x031FFF), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_shadow_opa(btn, LV_OPA_TRANSP, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(btn, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_opa(btn, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_align(btn, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
// lv_obj_set_style_text_font(btn, &lv_font_montserrat_40, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_color(btn, lv_color_hex(0x031FFF), LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_bg_opa(btn, 255, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_outline_color(btn, lv_color_hex(0xFAD665), LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_outline_opa(btn, 255, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_outline_width(btn, STYLE_OUTLINE_W, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_outline_pad(btn, 0, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_text_color(btn, lv_color_hex(0xFFFF00), LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_text_opa(btn, 255, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_t* label=lv_label_create(btn);
lv_obj_set_align(label, LV_ALIGN_CENTER);
lv_obj_add_event_cb(btn,main_page_keyinput_event_cb,LV_EVENT_ALL,0);
// lv_group_add_obj(lv_group_get_default(), btn); //shine add
}
先创建组后,后面创建的会自动添加到组中。
■ 屏幕是1280720, UI是1024600,是否修改UI (已解决)
■ hc15xx-db-e100-v10-hcdemo.dtb 找不到 (已解决)
CONFIG_CUSTOM_DTS_PATH="$(TOPDIR)/board/hc15xx/common/dts/hc15xx-db-e100-v10-hcdemo.dts"
CONFIG_DEFAULT_DEVICE_TREE="hc15xx-db-e100-v10-hcdemo.dtb"
■ 按键驱动
这里函数 KEY_1 怎么对应lvgl中的对应键码。
static uint32_t keypad_key_map2_lvkey(uint32_t act_key)
{
switch(act_key) {
case KEY_HOME:
act_key = LV_KEY_HOME;
break;
//5 行
case KEY_1:
act_key = LV_KEY_END;
break;
case KEY_2:
act_key = LV_KEY_END;
break;
case KEY_3:
act_key = LV_KEY_END;
break;
//6 行
int32_t key_convert_vkey(uint32_t lv_key)
{
uint32_t vkey = VKEY_NULL;
if (lv_key & USER_KEY_FLAG){
lv_key = lv_key & 0xFFFF;
switch(lv_key){
case KEY_NUMERIC_0:
vkey = V_KEY_0;
break;
case KEY_NUMERIC_1:
vkey = V_KEY_1;
break;
case KEY_NUMERIC_2:
vkey = V_KEY_2;
break;
case KEY_NUMERIC_3:
vkey = V_KEY_3;
break;
case KEY_NUMERIC_4:
vkey = V_KEY_4;
break;
case KEY_NUMERIC_5:
vkey = V_KEY_5;
break;
case KEY_NUMERIC_6:
vkey = V_KEY_6;
break;
case KEY_NUMERIC_7:
vkey = V_KEY_7;
break;
case KEY_NUMERIC_8:
vkey = V_KEY_8;
break;
case KEY_NUMERIC_9:
vkey = V_KEY_9;
break;
case KEY_POWER:
vkey = V_KEY_POWER;
break;
case KEY_AUDIO:
vkey = V_KEY_AUDIO;
break;
case KEY_MUTE:
vkey = V_KEY_MUTE;
break;
case KEY_ZOOM:
vkey = V_KEY_ZOOM;
break;
case KEY_SUBTITLE:
vkey = V_KEY_SUB;
break;
case KEY_TV:
vkey = V_KEY_TVRADIO;
break;
case KEY_TEXT:
vkey = V_KEY_TEXT;
break;
case KEY_LIST:
vkey = V_KEY_LIST;
break;
case KEY_MENU:
vkey = V_KEY_MENU;
break;
case KEY_EXIT:
vkey = V_KEY_EXIT;
break;
case KEY_EPG:
vkey = V_KEY_EPG;
break;
case KEY_AGAIN:
vkey = V_KEY_RECALL;
break;
case KEY_FAVORITES:
vkey = V_KEY_FAV;
break;
case KEY_LEFTSHIFT:
vkey = V_KEY_FB;
break;
case KEY_RIGHTSHIFT:
vkey = V_KEY_FF;
break;
case KEY_PLAY:
vkey = V_KEY_PLAY;
break;
case KEY_PAUSE:
vkey = V_KEY_PAUSE;
break;
case KEY_STOP:
vkey = V_KEY_STOP;
break;
case KEY_RECORD:
vkey = V_KEY_RECORD;
break;
case KEY_RED:
vkey = V_KEY_RED;
break;
case KEY_GREEN:
vkey = V_KEY_GREEN;
break;
case KEY_YELLOW:
vkey = V_KEY_YELLOW;
break;
case KEY_BLUE:
vkey = V_KEY_BLUE;
break;
case KEY_HOME:
vkey = V_KEY_HOME;
break;
}
}else{
enum ui_key
{
V_KEY_0, // 0
V_KEY_1,
V_KEY_2,
V_KEY_3,
V_KEY_4,
V_KEY_5,
V_KEY_6,
V_KEY_7,
V_KEY_8,
V_KEY_9,
V_KEY_10,
V_KEY_LEFT,//11
V_KEY_RIGHT,
V_KEY_UP,
V_KEY_DOWN,
V_KEY_MENU,
V_KEY_OK,
V_KEY_ENTER,
V_KEY_EXIT,
V_KEY_EXIT_ALL,
V_KEY_CLEAR,
V_KEY_MUTE,
V_KEY_STATUS,
V_KEY_TVRADIO,
V_KEY_POWER,
V_KEY_AUDIO,
V_KEY_C_UP, //ch+
V_KEY_C_DOWN, //ch-
V_KEY_V_UP, //vol+
V_KEY_V_DOWN, //vol-
V_KEY_P_UP, //page+
V_KEY_P_DOWN,//page-
V_KEY_COLOR0,//V_KEY_RF
V_KEY_COLOR1,
V_KEY_COLOR2,
V_KEY_COLOR3, //V_KEY_EPG
V_KEY_COLOR4, //V_KEY_PAUSE
V_KEY_PLAY, //for player
V_KEY_PAUSE,
V_KEY_STOP,
V_KEY_FF, //fast forward
V_KEY_FB, //fast backward
V_KEY_SF, //slow forward
V_KEY_SB, //slow backward
V_KEY_PREV, //play previous
V_KEY_NEXT, //play next
V_KEY_RECORD,
V_KEY_TIMESHIFT,
V_KEY_RED,
V_KEY_GREEN,
V_KEY_YELLOW,
V_KEY_BLUE,
V_KEY_INFO,
V_KEY_EDIT,
V_KEY_TEXT,
V_KEY_SUB,
V_KEY_FIND,
V_KEY_FAV,
V_KEY_RECALL,
V_KEY_CONTRAST,
V_KEY_HELP,
V_KEY_SLEEP,
V_KEY_RF,
V_KEY_EPG,
V_KEY_LIST,
V_KEY_SWITCH,
V_KEY_PAL_NTSC,
V_KEY_PREVIEW,
V_KEY_RESCAN,
V_KEY_ZOOM,
V_KEY_MP,
V_KEY_LAST,
V_KEY_ROTATE,
V_KEY_HOME,
VKEY_NULL = 0xFFFF,
};
■ __initcall(projector_auto_start)
■ 补丁是打在运行程序,还是代码中。 (已解决)
patch 0017解决电子书打开TXT空文件死机问题,当前补丁包含001-0017,请按照序号进行合成,如果之前有合过,请从之前合过的序号后开始合成。
答:合并源码方式。
■ Label align policy 只有左右对齐,没有上下居中`在这里插入代码片
lv_obj_set_style_text_align(ui_MBSP_fileSerial, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT);
LV_TEXT_ALIGN_AUTO, /< Align text auto*/LV_TEXT_ALIGN_LEFT, /< Align text to left*/
LV_TEXT_ALIGN_CENTER, /< Align text to center*/LV_TEXT_ALIGN_RIGHT, /< Align text to right*/
■ lvgl圆角问题,不能只设置一个角为圆角?
■ LV_SIZE_CONTENT 代码数值多少?
lv_obj_set_width(ui_fsbarimg, LV_SIZE_CONTENT);
lv_obj_set_height(ui_fsbarimg, LV_SIZE_CONTENT);
答: 可变的系统自动处理。
■ app.config.h 中的 #ifdef BR2_PACKAGE_HCCAST_DLNA (已解决)
答:在dts中找到了。
■ 找不到函数 void hcplayer_play(void *player); 是不是没有开源?
答:
■ _lv_indev_ll意思
#define LV_LOG_WARN(...) do {}while(0)
LV_LOG_WARN("lv_indev_drv_register: no display registered hence can't attach the indev to "
"a display");
lv_indev_t * indev = _lv_ll_ins_head(&LV_GC_ROOT(_lv_indev_ll)); _lv_indev_ll意思
■ set_label_text2(icon,STR_MP_NO_DEV,FONT_NORMAL); (已解决)
#define ENG_BIG lv_font_montserrat_36
#define ENG_MID lv_font_montserrat_28
#define ENG_NORMAL lv_font_montserrat_26
#define ENG_SMALL lv_font_montserrat_18
#define MSGBOX_Y_OFS -100
#define LISTFONT_3000 SiYuanHeiTi_Light_3000_28_1b
#define CHN_LARGE font_china_36
#define CHN_MID LISTFONT_3000
#define CHN_NORMAL font_china_26
#define CHN_SMALL font_china_18//CHN_MID //font_china_14
static lv_font_t *osd_font_chn[] =
{
&CHN_LARGE,
&CHN_MID,
&CHN_NORMAL,
&CHN_SMALL,
};
components\applications\apps-projector\source\hcprojector_app\public\osd_com.c
components\applications\apps-projector\source\hcprojector_app\ui_rsc\1280x720\font\font_china_26.c
osd_font_get(FONT_NORMAL)
int text_ids[] = {STR_HDMI_TITLE, STR_AV_TITLE, STR_MEDIA_TITLE, STR_SETTING_TITLE};
osd_font_get_by_langid(0,FONT_LARGE)
components\applications\apps-projector\source\hcprojector_app\include\osd_com.h
■ 设置页面想要控制屏幕的 screen 自定义的 lv_slider_create
btn 里面套 slider
enum {
LV_KEY_UP = 17, /*0x11*/
LV_KEY_DOWN = 18, /*0x12*/
LV_KEY_RIGHT = 19, /*0x13*/
LV_KEY_LEFT = 20, /*0x14*/
LV_KEY_ESC = 27, /*0x1B*/
LV_KEY_DEL = 127, /*0x7F*/
LV_KEY_BACKSPACE = 8, /*0x08*/
LV_KEY_ENTER = 10, /*0x0A, '\n'*/
LV_KEY_NEXT = 9, /*0x09, '\t'*/
LV_KEY_PREV = 11, /*0x0B, '*/
LV_KEY_HOME = 2, /*0x02, STX*/
LV_KEY_END = 3, /*0x03, ETX*/
};
typedef uint8_t lv_key_t;
static void screen_brig_event_cb(lv_event_t *e)
{
lv_obj_t *target = lv_event_get_target(e); /* 获取触发源 */
lv_event_code_t code = lv_event_get_code(e); /* 获取事件类型 */
if (code == LV_EVENT_KEY) //rc
{
uint8_t key = lv_indev_get_key(lv_indev_get_act());
if (key == LV_KEY_LEFT)
{
lv_group_focus_prev(sowye_ui_setting_g);
}
else if(key == LV_KEY_RIGHT)
{
lv_group_focus_next(sowye_ui_setting_g);
}
else if(key == LV_KEY_ESC)
{
lv_disp_load_scr(sowye_ui_main_page_init());
}
else if(key == LV_KEY_ENTER)
{
}
else if(key == LV_KEY_ENTER)
{
}
}
}
■ 歌曲和电子书都是变动的汉字怎么显示出来。
是否添加所有常用的汉字进去。
■ GD25Q64E(8MB) ??????????????????????? 中的意思
问题一:GD25Q64E(8MB) 为8M 但是分区 只使用4M;
/*GD25Q64E(8MB)*/
0x0 0x60000 ==393216 384K
0x60000 0x20000 ==131072
0x80000 0x360000 ==3538944
0x3e0000 0x20000 ==131072
0x60000 + 0x20000 + 0x360000 + 0x20000 = 0x400000 == 4194304KB == 4MB
persistentmem {
mtdname = "persistentmem";
size = <32768>; //4096 ??????????????????????? 32768 == 32K 是啥大小
status = "okay";
};
/*
GD25Q64E(8MB)
0x0 0x60000 ==393216 384K
0x60000 0x20000 ==131072
0x80000 0x360000 ==3538944
0x3e0000 0x20000 ==131072
0x60000 + 0x20000 + 0x360000 + 0x20000 = 0x400000 == 4194304KB == 4MB
*/
sfspi {
pinmux-active = <PINPAD_R00 1 PINPAD_R01 1 PINPAD_R02 1 PINPAD_R03 1>;
sclk = <27000000>;
dma-mode = <1>;
status = "okay";
spi_nor_flash {
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
reg = <0>;
status = "okay";
partitions {
part-num = <4>;
/* part0 is for entire norflash by default */
part1-label = "boot";
part1-reg = <0x0 0x60000>;
part1-filename = "bootloader.bin";
part2-label = "eromfs";
part2-reg = <0x60000 0x20000>;
part2-filename = "romfs.img";
part3-label = "firmware";
part3-reg = <0x80000 0x360000>; ???????????????????????
part3-filename = "hcdemo.uImage";
part4-label = "persistentmem";
part4-reg = <0x3e0000 0x20000>;
part4-filename = "persistentmem.bin"; ???????????????????????
};
};
■ 播放预览 怎么播放在lv_obj_v 控件上面。
■ 怎么获取lv_obj_v 在屏幕上的坐标。
■ 触摸屏问题,点击按钮会出现两次以上点击事件。
int port_indev_init(void)
{
static lv_indev_drv_t indev_drv;
// touchpad_init(); //不需要 在key中初始化了
api_touch_event_init();
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = touchpad_read;
indev_touch = lv_indev_drv_register(&indev_drv);
// touch_g = lv_group_create();
// lv_group_set_default(touch_g);
// lv_indev_set_group(indev_touch, touch_g);
return 0;
}
//=========================================================//
static void touchpad_read(lv_indev_drv_t *indev_drv, lv_indev_data_t *data)
{
static lv_coord_t last_x = 0;
static lv_coord_t last_y = 0;
uint32_t xy =0;
if(api_touch_read(&xy))
{
last_x = xy >> 16;
last_y = xy & 0xFFFF;
data->state = LV_INDEV_STATE_PR;
} else {
data->state = LV_INDEV_STATE_REL;
// return;
}
data->point.x = last_x;
data->point.y = last_y;
}
static void *_key_task(void *arg)
{
struct pollfd *pfd;
int cnt;
KEY_MSG_s key_msg;
struct input_event *t;
int input_cnt = 0;
uint8_t input_name[32];
int key_fds[INPUT_DEV_MAX] = {0,};
int i;
for (i = 0; i < INPUT_DEV_MAX; i++){
sprintf(input_name, "/dev/input/event%d", i);
key_fds[i] = open(input_name, O_RDONLY);
if (key_fds[i] < 0)
break;
printf("shine++++ open %s, line:%d. %s\n",__func__,__LINE__,input_name);
input_cnt++;
}
if (0 == input_cnt){
printf("%s(), line:%d. No Input device!!!\n", __func__, __LINE__);
return NULL;
}
printf("%s(), input device num: %d.\n", __func__, input_cnt);
pfd = (struct pollfd*)malloc(sizeof(struct pollfd)*input_cnt);
memset(pfd, 0, sizeof(struct pollfd)*input_cnt);
for (i = 0; i< input_cnt; i ++){
pfd[i].fd = key_fds[i];
pfd[i].events = POLLIN | POLLRDNORM;
}
t = &key_msg.key_event;
#ifdef BLUETOOTH_SUPPORT
bluetooth_ir_key_init(bt_key_queue_write_ctrl);
#endif
while (1) {
if (poll(pfd, input_cnt, -1) <= 0){
continue;
}
for (i = 0; i < input_cnt; i ++) // i == 0 是 rc ,i == 1 是触摸屏
{
if (pfd[i].revents != 0){
cnt = read(key_fds[i], t, sizeof(struct input_event));
if (m_key_off){
api_sleep_ms(10);
continue;
}
if (cnt != sizeof(struct input_event)){
printf("cnt = %d, err(%d):%s\n", cnt, errno, strerror(errno));
api_sleep_ms(10);
}
#if 0
printf("shine i=%d,key_type=%ld,t->type=%d,t->code=%d,t->value=%d\n",i,(int)key_msg.key_type,t->type,t->code,t->value);
#else
#if (SOWYE_PLAYER_APP == 1)
if(t->type == EV_ABS)
{
//对换一下x,y值
static uint32_t touch_xy = 0;
if(t->code == ABS_MT_POSITION_X)
{
touch_y = t->value & 0xFFFF;
}
else if(t->code == ABS_MT_POSITION_Y)
{
touch_x = t->value & 0xFFFF;
touch_xy = touch_x << 16 | touch_y;
api_touch_write(touch_xy);
}
}
else if (_key_event_is_valid(t))
{
if (0 == i){
key_msg.key_type = KEY_TYPE_IR;
}else if (1 == i){
key_msg.key_type = KEY_TYPE_ADC;
}else if (2 == i){
key_msg.key_type = KEY_TYPE_GPIO;
}
key_queue_write(&m_key_queue, &key_msg);
}
#else
if (_key_event_is_valid(t))
{
//here may change the key type, for sometims
//event0 may be IR, may be GPIO or ADC key.
if (0 == i)
key_msg.key_type = KEY_TYPE_IR;
else if (1 == i)
key_msg.key_type = KEY_TYPE_ADC;
else if (2 == i)
key_msg.key_type = KEY_TYPE_GPIO;
//printf("shine121212 %s,%d,key_msg.key_type=%d\n",__func__,__LINE__,key_msg.key_type); // 遥控器key_type== 0
key_queue_write(&m_key_queue, &key_msg);
}
#endif
#endif
}
}
api_sleep_ms(5);
}
for (i = 0; i < input_cnt; i ++){
if (key_fds[i] > 0)
close(key_fds[i]);
}
free(pfd);
return 0;
}
■ 报错
■ 问题 auto.conf: No such file or directory v10_hcdemo/include/config/br2_auto.conf’. Stop. 100_v10_hcdemo/build/libssp/.stamp_built’ failed
解决-重新全局编译就会生成include/config/br2_auto.conf
没有那文件 include/config/br2_auto.conf
第一次全局编译
make distclean
rm -rf output* 重新建项目需将 output文件删除掉,持行下面编译指令
make O=output_bl/ hichip_hc15xx_db_e100_v10_hcdemo_bl_defconfig
make O=output_bl/ all
make O=output/ hichip_hc15xx_db_e100_v10_hcdemo_defconfig
make O=output/ all
■ 问题 Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.0.37|:80… failed: Connection timed out.
原因是打开了下面MMC driver,关闭就可以
■ 问题 Makefile:45: recipe for target ‘projector.out’ failed
目前重新全局编译后解决
■ 问题 重新编译会出错
重新拷贝谢总虚拟机。解决了,
后来自己在修改为英文情况下编译也通过了。说明是系统修改为中文导致的。
■
■ 问题点
■ 01. HCFOTA.bin tf卡升级,要在app选择升级打开。
for-debug HCFOTA.bin 是放在tf卡升级。
■ 02. 编译指定app 还学要配置 menucnfig
make O=output_bl/e100_v10_hcdemo apps-projector-rebuild all
■ 03. apps-projector/source/Makefile 中添加文件夹问题编译
/home/sy/E100/hcrtos/components/applications/apps-projector/source/Makefile
■ 04. 驱动位置
/home/sy/E100/hcrtos/components/kernel
■ 05. LVGL位置问题
/home/sy/E100/hcrtos/components/applications/apps-projector/source/hcprojector_app/projector.c 中
#include “lvgl/lvgl.h” 路径问题
■ 06. rc-hcdemo.c 遥控器文件对应kennal位置替换
“C:\Users\yichu\Documents\WeChat Files\pengyichu541022348\FileStorage\File\2024-07\rc-hcdemo.c”
■ 07. /projector.c:4:10: fatal error: lvgl/lvgl.h: No such file or directory
以上制定生成路径 O=output/e100_v10_hcdemo 方式后出现如下问题
src/hcprojector_app/projector.c:4:10: fatal error: lvgl/lvgl.h: No such file or directory
是因为lvgl 生成在指定的目录下就找不到文件夹了,所以不要制定生成文件夹O=output/e100_v10_hcdemo