@barsonsss package 下自己建个包可以自己打包,拿个其他的包参考一下即可。 或者直接选用package 下的gui 里的lv_examples ,改完编译打包。
TEVET 发布的帖子
-
回复: 为了摆脱TINA-BSP的磁盘噩梦能舒服地只编译LVGL8在D1S/D1上面肆意玩耍
-
回复: R818安卓10 熄屏后 app总被杀死
@lovesosoi
是深度睡眠了。
要从内核上直接下狠手绕过的话,你就这样:diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 2d0c99b3f..3ba378ed0 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -566,7 +566,7 @@ static void pm_suspend_marker(char *annotation)
int pm_suspend(suspend_state_t state)
{
int error;-
return 0; if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX) return -EINVAL;
-
-
回复: 咸鱼淘个台电P26T当A523开发板,附无电池测试镜像
链接:https://pan.baidu.com/s/1Lye8QQPLPy9Kl7jhQDS7Ig
提取码:dtgd请谨慎使用,刷机有风险。
请谨慎使用,刷机有风险。
请谨慎使用,刷机有风险。一失去保修
二可能搞坏
三原系统丢失无法复原最佳方案是拆下CPU和EMMC 保存起来,自己焊CPU和EMMC上去。
镜像仅刷着玩儿。
镜像仅刷着玩儿。
镜像仅刷着玩儿。 -
咸鱼淘个台电P26T当A523开发板,附无电池测试镜像
声明: 本测试镜像仅用于自己刷着玩儿,
刷机请拔电池,以绝后患!
刷机请拔电池,以绝后患!
刷机请拔电池,以绝后患!该镜像可以直接USB插电启动,不需要电池可以进系统。
USB供电请用5V2A 以上。固件在楼下。
-
回复: 全志T113接CVBS摄像头怎么打开VIDEO 节点?
@edisondeng 没有测试过TVD1,测试过TVD0,
可以自己阅读下源码和dts的配置关系,改一下看是否能用。 -
回复: 修改2个数字让V3S TINA 跑在SDC0口EMMC
@lts52341314 别别别
这个和F133 没有关系
F133 不用改什么东西,直接就能起了
但凡V3S 能起,我也不会去挖这个问题。 -
回复: tinalinux的overlayfs,如何在其中添加自己的程序
@lancer 指的是预置自己的程序到rootfs分区吧?
如果是的话,参考package下面找个简单的工程自己添加并编译打包到文件系统。 -
回复: V3S如何支持EMMC
@conyhong
修改2个数字让V3S TINA 跑在SDC0口EMMC
https://bbs.aw-ol.com/topic/3891/share/1
可以试试我的方法 -
修改2个数字让V3S TINA 跑在SDC0口EMMC
修改 uboot 的 mmc_startup 中
MMC_RSP_R6 修改 为 MMC_RSP_R4 即可识别EMMC修改 uboot 中 sunxi_sprite_download_boot0 从介质2 改介质 0 , 即可完成 PhoenixSuit 烧录到EMMC 并启动进入系统。
怎么说呢,荔枝派ZERO 老当益壮。
-
回复: 群里看到的A133P,这是什么型号?
@ddrddr 在 群里看到的A133P,这是什么型号? 中说:
应该是plus版吧, 也就是A133的雕中雕
等楼下大佬解释 -
分享个A133/R818返修便宜好用的植锡钢网
手焊A133/R818 总是可能有差错的吧,反正我是遇到过。
不甘心拆下来重来的话,通用钢网是比较费劲的,反正我是费劲,有点烦躁。某宝找找还是找到了,好用!
链接在这:
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.4cc72e8dvWjSjR&id=650981298737&_u=633iclm9fa8选择UN:1 就对了,
没有广告,没有广告,仅仅是好物分享。
16块一张还要啥自行车。 -
回复: 全志T113接CVBS摄像头怎么打开VIDEO 节点?
@weichengjie 我使用的是TINA, 有修改的部分已经全部在帖子里了。
你直接下载个TINA即可,whycan或者 芒果的都可以 -
回复: F133 启动失败问题求助
有没有一种可能,
是要这样做:
因为喜欢用ADB,因为不喜欢插拔TF卡,所以D1直接用PhoenixSuit烧录TF(SDNAND)
https://bbs.aw-ol.com/topic/1002/share/1是吗?
-
回复: 全志T113接CVBS摄像头怎么打开VIDEO 节点?
@weichengjie 在 全志T113接CVBS摄像头怎么打开VIDEO 节点? 中说:
@tevet 在 menuconfig 中,开启 sunxi-tvd-drivce 就能看到节点了:
但怎么测试呢? 我下载 ffpmeg ,但编译又报错。如果有谁能写个完整的测试流程就好了。请看下我的帖子,已经包含了测试例程的修改方法。
-
回复: 全志T113接CVBS摄像头怎么打开VIDEO 节点?
@weichengjie
可以看看我的帖子试一下
让T113-S3的TVIN吃上trecorder的本地预览套餐
https://bbs.aw-ol.com/topic/2103/share/1 -
回复: V851s、V851se、V853s、V853的区别
@mysteryli 并不是, V851S的复用功能里, RMII 还有另一组 PE口, 网络要用 ETH的话, SDC1就没法接WIFI ,
-
回复: fw_printfenv不可用(Error locking file /var/lock/fw_printenv.lock)
@lishengyin 遇到相同问题,我的是SPI NAND 作为存储器, 大佬解决了吗
-
回复: D1s Tina SDK 2.0中tplayer问题
@soso90
我有点好奇,这个不是要配上asound.conf 就行了嘛。make menuconfig -> Allwinner -> alsa-conf-aw
勾上,舒服一下 -
让T113-S3的TVIN吃上trecorder的本地预览套餐
如题, T113-S3的TVIN 功能令人垂涎。我想呢,看看本地预览咯。
但是这个trecorder 一开,给你提示:
[TR_ERR][VportInit] unknow camera type is sunxi-tvd
然后就没有然后了。
没关系,定位一下位置:
啊原来是这样呢,
那我试试给它赋予USB摄像头的属性呢? 比如这样:
非常惊喜的就是 ,真的可以跑,
看视频:
完结。
当前需要说前提:
内核的 CONFIG_VIDEO_SUNXI_TVD 要开。
设备树节点要开。&tvd { tvd_sw = <1>; tvd_interface = <0>; tvd_format = <0>; tvd_system = <1>; tvd_row = <1>; tvd_column = <1>; tvd_channel0_en = <1>; tvd_channel1_en = <0>; tvd_channel2_en = <0>; tvd_channel3_en = <0>; /*tvd_gpio0 = <&pio PD 22 GPIO_ACTIVE_HIGH>;*/ /*tvd_gpio1 = <&pio PD 23 GPIO_ACTIVE_HIGH>;*/ /*tvd_gpio2 = <&pio PD 24 GPIO_ACTIVE_HIGH>;*/ /* dc1sw-supply = <®_dc1sw>;*/ /* eldo3-supply = <®_eldo3>;*/ /*tvd_power0 = "dc1sw"*/ /*tvd_power1 = "eldo3"*/ }; &tvd0 { used = <1>; agc_auto_enable = <1>; agc_manual_value = <64>; cagc_enable = <1>; fliter_used = <1>; };
recorder.cfg可以用我的,分辨率根据自己摄像头自己改一下吧:
recorder.cfg运行的时候执行:
trecorderdemo 0
就行啦舒服一下。大佬们试试看咯!
-
回复: f1c100s的Tina,怎样去修改uboot的配置啊?
@waterworld
啧,你不是说没有任何文件么,那你发的这个h 文件的截图是什么文件,不就是在我说的那个路径里面吗。 -
T113-S3 default_lcd 修改红蓝对调没有生效
如题, 想请教下如下配置是否有问题?
RGB口,不需要初始化。&lcd0 { lcd_used = <1>; lcd_driver_name = "default_lcd"; lcd_backlight = <50>; lcd_if = <0>; lcd_x = <1024>; lcd_y = <400>; lcd_width = <150>; lcd_height = <94>; lcd_dclk_freq = <48>; lcd_pwm_used = <1>; lcd_pwm_ch = <7>; lcd_pwm_freq = <500>; lcd_pwm_pol = <0>; lcd_hbp = <55>; lcd_ht = <1240>; lcd_hspw = <20>; lcd_vbp = <100>; lcd_vt = <650>; lcd_vspw = <10>; lcd_lvds_if = <0>; lcd_lvds_colordepth = <0>; lcd_lvds_mode = <0>; lcd_frm = <0>; lcd_hv_clk_phase = <1>; lcd_hv_sync_polarity= <1>; lcd_io_phase = <0x0000>; lcd_gamma_en = <0>; lcd_bright_curve_en = <0>; lcd_cmap_en = <0>; lcd_fsync_en = <0>; lcd_fsync_act_time = <1000>; lcd_fsync_dis_time = <1000>; lcd_fsync_pol = <0>; lcd_rb_swap = <1>; deu_mode = <0>; lcdgamma4iep = <22>; smart_color = <90>; pinctrl-0 = <&rgb18_pins_a>; pinctrl-1 = <&rgb18_pins_b>; };
点亮后还有花点,修改了时钟相位也没有效果。 如图
-
回复: f1c100s的Tina,怎样去修改uboot的配置啊?
@waterworld
你要的defconfig 在路径
u-boot-2014.07/include/configs 下面。
具体是哪个根据你lunch方案的配置。 -
回复: T113适配RTL8189FS驱动遇到问题
@how0723
find -name xxxxxxx
修改Makefile 里边的include 路径,让它能找到,不就行了 -
回复: T113-S3 Longan SDK怎么加驱动?
@how0723
大佬啊,你不模仿下xr829的编译么, 为啥直接用内核路径指定编译呢, 没必要。
你要这样编译就放到内核里编译。 -
回复: 解决 uboot 开启 bootlogo 进入 kernel 时候会闪烁的问题
@jr_online
那我只能说: 你太难啦!我按照补丁和bmp的24bit问题一改,所有问题都解决了呢。
就不知道你这个咋回事儿啦。
是不是没有编译啊,看看把那个目录下驱动的.o 文件删了重新编译一下咯。 -
回复: 解决 uboot 开启 bootlogo 进入 kernel 时候会闪烁的问题
@jr_online
懂了,这个是因为bootlogo 是 32bit的BMP的问题吧? 改成24bit的。
群里Syter大佬指点的。 -
回复: 解决 uboot 开启 bootlogo 进入 kernel 时候会闪烁的问题
@jr_online
你打不上? 那你打补丁的时候没报错?
那你手动改,就没加多少东西,很快的。 -
回复: T113-S3 Longan SDK怎么加驱动?
@how0723
项目的配置文件在 (看你的config是什么项目了,路径是这个路径,defconfig根据你配的走)
kernel/linux-5.4/arch/arm/configs/sun8iw20p1smp_t113_auto_defconfig -
回复: T113-S3 Longan SDK怎么加驱动?
@how0723
大佬,longan添加WIFI驱动还有另一种模块集成方式,
你扔驱动文件夹到
platform/framework/auto/kernel 下面
然后模仿xr829 来一波,你会明白的。当然你放进去内核里也是可以的,但是你要修改Makefile的include 路径声明,有几个地方要改的,就很烦。
-
回复: 解决 uboot 开启 bootlogo 进入 kernel 时候会闪烁的问题
@jr_online 啥情况,我测试 了相当的OK,非常酷炫。
你补丁确定搞上了? -
回复: 在D1的tina上整上overlayfs
@whycan 在source和 lunch 基础上 可以直接 cd package/utils/e2fsprogs 然后mm -B
-
回复: 请问如何用命令行调整背光亮度?
@jr_online 在 请问如何用命令行调整背光亮度? 中说:
@tevet 在 请问如何用命令行调整背光亮度? 中说:
@jr_online
这个IOCTL 的处理在驱动里边 , lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/回禀大佬,我找到原因了,忽略了pwm的占空比极性了,设备树里配置的是低电平有效,所以我一直设置亮度为0-50,都是最亮的,所以感觉上没反应。
喔嚯,是吧,驱动部分,是么得问题的~! 所以那个代码包用上没
-
回复: 请问如何用命令行调整背光亮度?
@jr_online
这个IOCTL 的处理在驱动里边 , lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/ -
回复: d1s下的overlays挂载问题,提示“No such device”
@casojie
是使用了 rootfs_data 是否有这个 partition 呢
检查一下sys_partition.fex 吧,贴上来看看
报错提示你没有这个 /dev/by-name/rootfs_data ,极可能是 sys_partition.fex 没有这个分区信息。
你要自己加一下 ,如下,size 可以自己改[partition]
name = rootfs_data
size = 25600
user_type = 0x8000 -
回复: 芒果派 MQ Pro,MQ 的板级配置文件
@ggy321 检查USB 电源供电质量, 用好一点的电源。
另外自己做板的话, RTL的WIFI 模块要独立一个电源可控, 上电时不能有残电。 -
回复: 请问如何用命令行调整背光亮度?
@jr_online 不应当啊,追踪一下LOG 和sunxi的 disp 那块吧,自己搞几个打印跑下。
我发的包和bin程序是跑在D1s 上面的 -
回复: 请问如何用命令行调整背光亮度?
@ubuntu test_bright.tar.gz
来,给你个包吧。
brightnesstester 这个文件夹里的代码就能编译出来用了。
brightnesstester
这个是应用,后面跟亮度, 不行就看下代码,试试看。oled 之类的不行,要魔改。
pwm类独立背光可以。 -
回复: OLED的MIPI屏幕实时亮度改变问题
@anruliu
按照大佬的方式修改,是不行的喔。static s32 lcd_set_oled_bright(u32 sel,u32 bright) { s32 ret = 0; u8 result[16] = {0}; s32 nump = 1; #if 1 dsi_read_mode_en(0, 1); ret = sunxi_lcd_dsi_dcs_read(0, 0x54, result,&nump); dsi_dcs_wr_1para(sel, 0xFE, 0x00); //{ 0xFE,1,{0x00} }, dsi_dcs_wr_1para(sel, 0x51, bright); dsi_read_mode_en(0, 0); #endif return 0; }
#if defined(__LINUX_PLAT__) static irqreturn_t disp_lcd_event_proc(int irq, void *parg) #else static irqreturn_t disp_lcd_event_proc(void *parg) #endif { struct disp_device *lcd = (struct disp_device *)parg; struct disp_lcd_private_data *lcdp = NULL; struct disp_manager *mgr = NULL; #if defined(SUPPORT_EINK) && defined(CONFIG_EINK_PANEL_USED) struct disp_eink_manager *eink_manager = NULL; #endif u32 hwdev_index; u32 irq_flag = 0; unsigned int panel_extend_dirty; unsigned int panel_extend_modify_oledbright; unsigned long flags; if (lcd == NULL) return DISP_IRQ_RETURN; hwdev_index = lcd->hwdev_index; lcdp = disp_lcd_get_priv(lcd); if (lcdp == NULL) return DISP_IRQ_RETURN; #if defined(SUPPORT_EINK) && defined(CONFIG_EINK_PANEL_USED) eink_manager = disp_get_eink_manager(0); if (eink_manager == NULL) return DISP_IRQ_RETURN; #endif if (disp_al_lcd_query_irq (hwdev_index, LCD_IRQ_TCON0_VBLK, &lcdp->panel_info)) { #if defined(SUPPORT_EINK) && defined(CONFIG_EINK_PANEL_USED) eink_display_one_frame(eink_manager); #else int cur_line = disp_al_lcd_get_cur_line(hwdev_index, &lcdp->panel_info); int start_delay = disp_al_lcd_get_start_delay(hwdev_index, &lcdp->panel_info); #if defined(CONFIG_DISP2_LCD_ESD_DETECT) if (lcdp->lcd_panel_fun.esd_check && lcdp->lcd_panel_fun.reset_panel) { ++lcdp->esd_inf.cnt; if (cur_line < 2 && !atomic_read(&lcdp->lcd_resetting) && lcdp->esd_inf.cnt >= lcdp->esd_inf.freq) { disp_al_lcd_disable_irq(hwdev_index, LCD_IRQ_TCON0_VBLK, &lcdp->panel_info); if (!lcdp->esd_inf.esd_check_func_pos || lcdp->lcd_panel_fun.esd_check(lcd->disp)) { /*request reset*/ atomic_set(&lcdp->lcd_resetting, 1); schedule_work(&lcdp->reflush_work); printk(KERN_WARNING "wwwwwwwwwwww lcd_esd_check disp_lcd_event_proc 1633 \n"); } disp_al_lcd_enable_irq(hwdev_index, LCD_IRQ_TCON0_VBLK, &lcdp->panel_info); printk(KERN_WARNING "wwwwwwwwwwww after lcd_esd_check disp_lcd_event_proc 1635 \n"); lcdp->esd_inf.cnt = 0; } } #endif #if 1 if ((cur_line < 2) && (lcdp->panel_extend_modify_oledbright) && (lcdp->lcd_panel_fun.oled_set_bright)) { spin_lock_irqsave(&lcd_data_lock, flags); panel_extend_modify_oledbright = lcdp->panel_extend_modify_oledbright; lcdp->panel_extend_modify_oledbright = 0; spin_unlock_irqrestore(&lcd_data_lock, flags); #if 1 //if(panel_extend_modify_oledbright == 1) { // if(lcdp->lcd_panel_fun.oled_set_bright) { u32 getbl = disp_lcd_get_bright(lcd); lcdp->lcd_panel_fun.oled_set_bright(lcd->disp,getbl); //if (lcdp->tri_finish_fail == 0) { // sync_event_proc(mgr->disp, false); // disp_al_lcd_tri_start(hwdev_index, &lcdp->panel_info); //} else // sync_event_proc(mgr->disp, true); } } } #endif #endif mgr = lcd->manager; if (mgr == NULL) { printk(KERN_WARNING "wwwwwwwwwwww after if (mgr == NULL) 1644 \n"); return DISP_IRQ_RETURN; } if (cur_line <= (start_delay - lcdp->judge_line)) sync_event_proc(mgr->disp, false); else sync_event_proc(mgr->disp, true); #endif }
我前面的操作是正常的,咋测都OK 。按照你这个改一下就黑屏了。
我那样改有啥隐患没,毕竟不是一直改亮度。 -
回复: OLED的MIPI屏幕实时亮度改变问题
已经搞定了,感谢大佬的指导,非常给力。
#if 1 if(panel_extend_modify_oledbright == 1) { if(lcdp->lcd_panel_fun.oled_set_bright) { u32 getbl = disp_lcd_get_bright(lcd); lcdp->lcd_panel_fun.oled_set_bright(lcd->disp,getbl); /*加入下面这部分逻辑,让他重新触发中断即可*/ if (lcdp->tri_finish_fail == 0) { sync_event_proc(mgr->disp, false); disp_al_lcd_tri_start(hwdev_index, &lcdp->panel_info); } else sync_event_proc(mgr->disp, true); } }
-
回复: OLED的MIPI屏幕实时亮度改变问题
@anruliu
请教下大佬, 模仿esd程序进行中断中修改亮度操作,
可以写入亮度成功,也可以读到东西,但是中断就无法重新进入了。
是否有什么注意到的地方。static s32 lcd_set_oled_bright(u32 sel,u32 bright) { s32 ret = 0; u8 result[16] = {0}; s32 nump = 1; ret = sunxi_lcd_dsi_dcs_read(0, 0x54, result,&nump); dsi_dcs_wr_1para(sel, 0xFE, 0x00); //{ 0xFE,1,{0x00} }, dsi_dcs_wr_1para(sel, 0x51, 0x50); printk(KERN_WARNING "wwwwwwwwwwww lcd_set_oled_bright :bright = %d read result :%02x \n",bright,result[0]); return 0; } /*此处省略*/ struct __lcd_panel rm69330_139_panel = { /* panel driver name, must mach the name of * lcd_drv_name in sys_config.fex */ .name = "rm69330_139", .func = { .cfg_panel_info = lcd_cfg_panel_info, .cfg_open_flow = lcd_open_flow, .cfg_close_flow = lcd_close_flow, .lcd_user_defined_func = lcd_user_defined_func, .set_bright = LCD_set_bright, .esd_check = lcd_esd_check, .reset_panel = lcd_reset_panel, .set_esd_info = lcd_set_esd_info, .oled_set_bright = lcd_set_oled_bright, }, };
#if defined(__LINUX_PLAT__) static irqreturn_t disp_lcd_event_proc(int irq, void *parg) #else static irqreturn_t disp_lcd_event_proc(void *parg) #endif { struct disp_device *lcd = (struct disp_device *)parg; struct disp_lcd_private_data *lcdp = NULL; struct disp_manager *mgr = NULL; #if defined(SUPPORT_EINK) && defined(CONFIG_EINK_PANEL_USED) struct disp_eink_manager *eink_manager = NULL; #endif u32 hwdev_index; u32 irq_flag = 0; unsigned int panel_extend_dirty; unsigned int panel_extend_modify_oledbright; unsigned long flags; if (lcd == NULL) return DISP_IRQ_RETURN; hwdev_index = lcd->hwdev_index; lcdp = disp_lcd_get_priv(lcd); if (lcdp == NULL) return DISP_IRQ_RETURN; #if defined(SUPPORT_EINK) && defined(CONFIG_EINK_PANEL_USED) eink_manager = disp_get_eink_manager(0); if (eink_manager == NULL) return DISP_IRQ_RETURN; #endif if (disp_al_lcd_query_irq (hwdev_index, LCD_IRQ_TCON0_VBLK, &lcdp->panel_info)) { #if defined(SUPPORT_EINK) && defined(CONFIG_EINK_PANEL_USED) eink_display_one_frame(eink_manager); #else int cur_line = disp_al_lcd_get_cur_line(hwdev_index, &lcdp->panel_info); int start_delay = disp_al_lcd_get_start_delay(hwdev_index, &lcdp->panel_info); #if defined(CONFIG_DISP2_LCD_ESD_DETECT) if (lcdp->lcd_panel_fun.esd_check && lcdp->lcd_panel_fun.reset_panel) { ++lcdp->esd_inf.cnt; if (cur_line < 2 && !atomic_read(&lcdp->lcd_resetting) && lcdp->esd_inf.cnt >= lcdp->esd_inf.freq) { disp_al_lcd_disable_irq(hwdev_index, LCD_IRQ_TCON0_VBLK, &lcdp->panel_info); if (!lcdp->esd_inf.esd_check_func_pos || lcdp->lcd_panel_fun.esd_check(lcd->disp)) { /*request reset*/ atomic_set(&lcdp->lcd_resetting, 1); schedule_work(&lcdp->reflush_work); printk(KERN_WARNING "wwwwwwwwwwww lcd_esd_check disp_lcd_event_proc 1633 \n"); } disp_al_lcd_enable_irq(hwdev_index, LCD_IRQ_TCON0_VBLK, &lcdp->panel_info); printk(KERN_WARNING "wwwwwwwwwwww after lcd_esd_check disp_lcd_event_proc 1635 \n"); lcdp->esd_inf.cnt = 0; } } #endif mgr = lcd->manager; if (mgr == NULL) { printk(KERN_WARNING "wwwwwwwwwwww after if (mgr == NULL) 1644 \n"); return DISP_IRQ_RETURN; } if (cur_line <= (start_delay - lcdp->judge_line)) sync_event_proc(mgr->disp, false); else sync_event_proc(mgr->disp, true); #endif } else { irq_flag = disp_al_lcd_query_irq(hwdev_index, LCD_IRQ_TCON0_CNTR, &lcdp->panel_info); irq_flag |= disp_al_lcd_query_irq(hwdev_index, LCD_IRQ_TCON0_TRIF, &lcdp->panel_info); if (irq_flag == 0) goto exit; if (disp_al_lcd_tri_busy(hwdev_index, &lcdp->panel_info)) { /* if lcd is still busy when tri/cnt irq coming, * take it as failture, record failture times, * when it reach 2 times, clear counter */ lcdp->tri_finish_fail++; lcdp->tri_finish_fail = (lcdp->tri_finish_fail == 2) ? 0 : lcdp->tri_finish_fail; } else lcdp->tri_finish_fail = 0; mgr = lcd->manager; if (mgr == NULL) return DISP_IRQ_RETURN; #if defined(CONFIG_DISP2_LCD_ESD_DETECT) if (lcdp->lcd_panel_fun.esd_check && lcdp->lcd_panel_fun.reset_panel) { ++lcdp->esd_inf.cnt; if (!atomic_read(&lcdp->lcd_resetting) && lcdp->esd_inf.cnt >= lcdp->esd_inf.freq) { if (!lcdp->esd_inf.esd_check_func_pos || lcdp->lcd_panel_fun.esd_check(lcd->disp)) { /*request reset*/ atomic_set(&lcdp->lcd_resetting, 1); schedule_work(&lcdp->reflush_work); printk(KERN_WARNING "wwwwwwwwwwww lcd_esd_check disp_lcd_event_proc 1685 \n"); } printk(KERN_WARNING "wwwwwwwwwwww after lcd_esd_check disp_lcd_event_proc 1688 \n"); lcdp->esd_inf.cnt = 0; } } #endif if (lcdp->tri_finish_fail == 0) { sync_event_proc(mgr->disp, false); disp_al_lcd_tri_start(hwdev_index, &lcdp->panel_info); } else sync_event_proc(mgr->disp, true); } spin_lock_irqsave(&lcd_data_lock, flags); panel_extend_dirty = lcdp->panel_extend_dirty; lcdp->panel_extend_dirty = 0; /*这里是我添加的调整oled亮度的地方, bright的值通过ioctl修改,并 lcdp->panel_extend_modify_oledbright; 置位,让中断来处理这个亮度*/ panel_extend_modify_oledbright = lcdp->panel_extend_modify_oledbright; lcdp->panel_extend_modify_oledbright = 0; spin_unlock_irqrestore(&lcd_data_lock, flags); if (panel_extend_dirty == 1) disp_al_lcd_cfg_ext(lcd->disp, &lcdp->panel_extend_info_set); if(panel_extend_modify_oledbright == 1) { if(lcdp->lcd_panel_fun.oled_set_bright) { u32 getbl = disp_lcd_get_bright(lcd); lcdp->lcd_panel_fun.oled_set_bright(lcd->disp,getbl); } } exit: printk(KERN_WARNING "wwwwwwwwwwww before DISP_IRQ_RETURN 1709 \n"); /*尝试加入的打印信息, 一旦执行了亮度调整,这个中断服务不再重新进入了,但是亮度调节是成功的*/ return DISP_IRQ_RETURN; }
-
OLED的MIPI屏幕实时亮度改变问题
如题,在驱动中有个接口:
/* sel: 0:lcd0; 1:lcd1 */
static s32 LCD_set_bright(u32 sel, u32 bright)
{
sunxi_lcd_dsi_dcs_write_1para(sel,0x51,bright);
return 0;
}操作这个接口调整亮度的话,显示是无法正常的。
是否驱动在操作这个接口过程中需要等待屏幕数据发帧结束?
感觉是要等的,但是目前还没详细看代码流程。
先来问一波!期待大佬解惑!
-
回复: 【硬核干货】V853 Sample MPP软件包,MPP 摄像头测试包
@yteraa
大佬大佬,
前排求一份 h264 编码接口api 头文件和 使用说明呀。
里边库配套的。
感谢! -
回复: T113使用GT911,无法使用
@zxyuser 不应当啊,
先用i2cdetect 扫描一下吧,先查你的设备电源、线序、上拉电阻、RST脚
IO复用关系等。
看你的log 报错显示找芯片找不到。 约等于和TINA半毛钱关系。 -
回复: 【V853开发板试用】我做个RTSP推流demo吧
盼望着盼望着,代码开源了。
忙成狗忙成狗,周末休息了。
打开源码看了下,编了下Live,还行。
打开camerademo 程序,跑了下拍照,还行。
就是成像很黑,白平衡也不对,有坑
打开encodertest , 报错了,完了,没得玩了。
报错还是库内部的,嗯。
坐等MPP 上线了。
-
回复: 【V853开发板试用】我做个RTSP推流demo吧
@tevet
npu怎么用啊,能不能做星点跟踪啊,还想做一个天文电子目镜,加上NPU加成 ,可以直接控制赤道仪跟踪目标呀。
电子目镜想做个开源PCB玩下。 -
【V853开发板试用】我做个RTSP推流demo吧
看到全志的V853开开发板申请活动,随提交了申请。
因为常年活跃在全志在线官方群和全志在线论坛,有幸通过了申请并得到了官方赠送的开发板。
前排占位。
准备做一个RTSP推流demo,懂的都懂。
我不懂,只能移植现成的。 LIVE555 探索一波!
基本思路:客户端连接 -> 调用v4l2 获取摄像头yuv->H264编码器->喂流
现已新建文件夹
-----------------》》》》》》加入AWOL 全志在线豪华午餐
-------------------》》》》》》》》》》》》》》》》填写申请开发板问卷未完待续,前排蹲坑。
-
回复: 为了摆脱TINA-BSP的磁盘噩梦能舒服地只编译LVGL8在D1S/D1上面肆意玩耍
@jr_online 显然你的T113的环境依赖文件要拿出来的,
还是要载一下BSP来 拿出staging 编译出来的那些库呀,不然怎么能拿到正确的依赖库呢。
有空再给你搞搞咯 -
回复: 既然D1/D1S的LVGL8有G2D和双缓 那么LVGL7也值得拥有
@yelong98 回大佬
为了摆脱TINA-BSP的磁盘噩梦能舒服地只编译LVGL8在D1S/D1上面肆意玩耍
https://bbs.aw-ol.com/topic/1084/share/1
这里已经搞好放上来了,就改改Makefile 就行了,可以脱离bsp编译 -
回复: 在D1的tina上整上overlayfs
@jmhh247
大佬,这个2.0 你是否修改了procd,若是使用procd时要这个fstab 的,
如果使用busybox init 则不需要。 -
回复: A133 BOARD_HAS_SECURE_OS
@tigger
大佬,请教下这个 BOARD_HAS_SECURE_OS 若是false 是否就磁盘内容无法保护。
需要加密要走 A133 的 SECURE OS 开发手册? -
回复: 请教Tian2.0sdk下更新kernel和设备树的方法
@sora1874 更新使用OTA系统,直接上 swupdate
详询: D1_Tina_Linux_OTA_开发指南.pdf
通过配置文件可以自由定制你想要更新的对象。
建议用NAND、emmc等存储器,更新使用recovery系统,按照指南搞一下,原地起飞。
你爱升级哪个分区都可以,不止是内核和设备树了。 -
回复: 新手第一次调试TINA的mipi-dsi 遇到一些问题,恳请大佬们有空指导!万分感谢
@a1147991965 背光是led灯珠吧,看你这个定义,需要确认多少个灯珠,多大的电流,可以用可调稳压电源的恒流模式慢慢测出来
-
回复: 在TinaV2.2 D1s上面搞LVGL8去调用G2D旋转让LVGL8的软件旋转再见
@anruliu
感谢大佬指正,的确如此
我前面遇到的问题是 chn_cfg_mode = <1>; 的情况下 设置degree 为不是 0 的时候,系统旋转成功了logo看到转过来,
结果fb操作无法直接被使用,而且Lvgl8也完全没有用。chn_cfg_mode = <0>; 后可以 使用。
后面搞了lvgl7 之后,才明白,这个degree 搞回0 , sunxifb 可以随便转,和内核fb没半毛钱关系。
-
回复: 既然D1/D1S的LVGL8有G2D和双缓 那么LVGL7也值得拥有
@tevet 对了,忘了说了,旋转的时候,横竖分辨率宏定义要自己调换一下,这个代码没有自动适配
-
既然D1/D1S的LVGL8有G2D和双缓 那么LVGL7也值得拥有
如题,
tina最新的版本放出了双缓和G2D到LVGL8,
感觉LVGL7写过的代码也应该要搞起来你说是吧 。
那么咱就给它新版本的 sunxifb 给搞过来吧对吧。
包包在这里: D1S_lvg7_with_G2D_doublebuffer.tar.gz注意里边没有包含交叉编译工具,要自己export一下。
解压包后有d1s-nezha依赖文件夹,不要挪走,直接进 lv_port_linux_frame_buffer_nezha_d1 文件夹make 就行了。具体你想旋转LVGL7 ,那非常简单:
sunxifb_init(0); 修改成 sunxifb_init(LV_DISP_ROT_90); 就是旋转90度。
系统啥的就不用去关心这个旋转问题了,依然美滋滋。
大佬们试一下,舒服就对了。
-
为了摆脱TINA-BSP的磁盘噩梦能舒服地只编译LVGL8在D1S/D1上面肆意玩耍
但凡拿到了BSP的伙计们,没有开会员网速太慢或者啥的,总是会砸桌子,毕竟BSP辣么大!
但凡拿到了BSP的伙计们并且编译了BSP,硬盘没有买新的,虚拟机都装了,磁盘不够大,编译到一半总是会砸桌子,毕竟BSP编译后辣么大!du -sh 20多个GB咱就是说,单独拿出来make 一下不就行了么
这里分享一下包包:
lv_examples_lvgl8_integrate_compile_small.tar.gz
这里,G2D 双缓冲 全给上了。怎么用呢?
很简单,释放出来, cd lv_examples/src make -jx (x喜欢多少随意)然后就可以在大佬们给的固件烧录后的机器上,舒服地搞上LVGL8 啦,还有2D加速还能随便旋转,还有双缓冲,美滋滋么。
舒服,试一下!