SSD202、212的开发SDK可以登录 https://www.comake.online/index.php?p=down_list&lanmu=4&c_id=6&id=7 获取
只需要留下电话、联系方式等,然后等他们打电话过来,审批一下就可以下载了。
先上个视频,用了SSD的FASTBOOT,因为使用了GFX绘图驱动并且应用是放到用户分区,所以需要等待这些驱动都加载起来并挂载完用户分区。
如果只使用FB,应用放到系统分区中NOR可以做到2秒内开机,NAND可以3秒多点。
使用GFX的LVGL地址(选择porting_gfx_double_buffer分支)
https://gitee.com/tianhuihe/lv_port_sstar_gfx
其它更多使用DEMO地址
https://gitee.com/mFlying/ssd2xx-demo
212+16m SPI NOR 开机可以到2秒多些,
202+128 SPI NAND 要4秒
最近编辑记录 staunchheart (2022-04-29 09:40:16)
离线
配置自己的显示,因为板是自己画的,如果你们用官方的板没这些事。
注意:nor.ramfs.partition.disp.config 这类nor//ramfs的选择可根据你硬件采用的FLASH类型、希望采用的文件系统去替换,可在对应的目录中找到
我用的屏在官方的SDk中没有现成的时序,所以需要配置
屏引脚如下
(注意GPIO INDEX与PAD NAME不是一回事,比如PAD_GPIO1不是1号GPIO,请看SSD212 HW CheckList V07.excel中GPIO LIST/Tmux)
bl_en PAD_SR_GPIO16 GPIO16
LCD_BL_PWM PAD_KEY1 GPIO40
LCD_PWR_EN PAD_KEY0 GPIO39
官方驱动中屏只有LCD_PWR_EN/BL_PWM,我的屏还有一个bl_en控制
照手册,我的屏配置如下
[LCD]
m_pPanelName = "CC0702I50R_1024X600";
m_bPanelDither = 0;
m_ePanelLinkType = 0; #0:ttl 1:lvds 11:mipi
m_bPanelInvDCLK = 0;
m_bPanelInvDE = 0;
m_bPanelInvHSync = 0;
m_bPanelInvVSync = 0;
m_wPanelHSyncWidth = 70;
m_wPanelHSyncBackPorch = 160;
m_wPanelVSyncWidth = 10;
m_wPanelVBackPorch = 23;
m_wPanelHStart = 230;
m_wPanelVStart = 33;
m_wPanelWidth = 1024;
m_wPanelHeight = 600;
m_wPanelHTotal = 1344;
m_wPanelVTotal = 635;
m_wPanelDCLK = 51;
m_wSpreadSpectrumStep = 0;
m_wSpreadSpectrumSpan = 0;
m_eOutputFormatBitMode = 2; #0:10bit 1:6bit 2:8bit 3:565bit
m_ucPanelSwapChnR = 3;
m_ucPanelSwapChnG = 2;
m_ucPanelSwapChnB = 1;
m_ucPanelSwapRgbML = 0;
我的屏
//------------------------------------开始(212)配置-202用的是官方板不需要配置,应该差不多---------------------------------------
1、uboot 开启背光
SSD 的SDK中,在UBOOT中打开某个IO,只需要运行gpio out xx 1
这里的xx对应的是GPIO List的Gpio index. 比如我的BL_EN 对应的是16
要在开机中添加,则需要添加到bootcmd中,可以直接在project\image\configs\p3\script_disp.mk中修改,
实际上这个mk有个bootlogocmd来自于nor.ramfs.partition.disp.config
修改project\image\configs\p3\nor.ramfs.partition.disp.config
找到 bootlogocmd = gpio out 7 1 \;gpio out 16 1 \;bootlogo 0 0 0 0 \;
2、进系统后的北光及PWM开关
SSD有4个PWM,此处我们启用第1号,不用的用PAD_UNKNOWN
kernel\arch\arm\boot\dts\pioneer3-demo.dtsi
pwm{节点下,开启第2个pad-ctrl PAD_KEY1
/*set in padmux.dtsi*/
pad-ctrl = <PAD_UNKNOWN PAD_KEY1 PAD_UNKNOWN PAD_UNKNOWN>;
status = "ok"; // no available pads
//----------------------------------------------------------
kernel\arch\arm\boot\dts\pioneer3-ssc020a-s01a-demo-padmux.dtsi
// PWM for backlight
<PAD_KEY1 PINMUX_FOR_PWM1_MODE_7 MDRV_PUSE_PWM1>,
3、添加屏参数配置(使用于212,202有小小不同)
将上面的[LCD]配置保存成CC0702I50R_1024X600_TTL.ini
放到project\board\ini\LCM下
修改project\board\ini\misc\config.ini
//使用新的屏
[ROOT]
m_pnlList = {CC0702I50R,}
#m_pnlList = {SAT070AT50H18BH,}
再将上面的
[CC0702I50R]
m_pPanelName = "CC0702I50R_1024X600";
m_bPanelDither = 0;
m_ePanelIntfType = 0; #0:ttl 1:lvds 11:mipi 12:bt656
。。。。。。。将上面的复制一份下来
。。。。。。。
//增加下面这部份
m_ePanelPwBlCtrl = 1;
m_wPanelPwGpioNum =39; #我的LCD_POWER IO
m_wPanelPwmNum = 1; #这里是PWM号,不是GPIO号,我的是1号
m_wPanelDutyVal = 200000;
m_wPanelDlyTm2Data = 0;
m_wPanelDlyTmData2Bl = 100;
m_wPanelPeriodVal = 200000;
修改project\board\p3\SSC020A-S01B\config/fbdev.ini
FB_HWLAYER_OUTPUTCOLOR = 0
FB_WIDTH = 1024
FB_HEIGHT = 600
最近编辑记录 staunchheart (2022-04-29 09:25:35)
离线
配置自己的声音控制 我的SSD212板声音控制引脚与官方板不同。
声音控制引脚 PAD_KEY2 GPIO41
只接了LOUT 左声道
配置----------------------------
1、修改kernel\arch\arm\boot\dts\pioneer3-ssc020a-s01a-demo-padmux.dtsi
<PAD_KEY2 PINMUX_FOR_GPIO_MODE MDRV_PUSE_AIO_AMP_PWL >,
2、kernel\arch\arm\boot\dts\pioneer3.dtsi
sound { //找到sound节点
compatible = "sstar,audio";
//替换amp-gpio 设为PAD_KEY2 左右声道都是
amp-gpio = <PAD_KEY2 1 PAD_KEY2 1>;
最近编辑记录 staunchheart (2022-04-29 09:15:24)
离线
修改分区及增加刷系统不覆盖分区
默认分区信息,给用户区的有些小,我要放的东西有些多,字体就有2M,还有声音图片
project\image\configs\p3/nor.ramfs.partition.disp.config
#rootfs$(PATSIZE) = 0x570000
rootfs$(PATSIZE) = 0x400000
###miservice$(PATSIZE) = 0x480000
miservice$(PATSIZE) = 0x170000
##customer$(PATSIZE) = 0x280000
customer$(PATSIZE) = 0x700000
这样我的的customer分区就有7M了。
有时我们希望增加一些地方合存如注册码之类的东西,并且希望刷机时这些数据也不丢失,
SSD202默认配置好了,有一个KEY_CUST分区
SSD212参考202如下配置 修改project\image\configs\p3/nor.ramfs.partition.disp.config
cis$(SYSTAB) = $(kernel$(MTDPART)),$(rootfs$(MTDPART)),$(misc$(MTDPART)),$(miservice$(MTDPART)),$(customer$(MTDPART)),$(appconfigs$(MTDPART)),$(key_cust$(PATSIZE))(KEY_CUST)
即后面增加,$(key_cust$(PATSIZE))(KEY_CUST)
最后添加(记得这里加的size,要从其它分区减出来,保证FLASH是16M)
key_cust$(PATSIZE) = 0x10000
这样cat /proc/mtd时就有一个名叫KEY_CUST的分区,这个分区不会挂载,刷机时也不会覆盖
可以使用mtd方式读写此分驱 参考以下代码
BurnKey.zip
最近编辑记录 staunchheart (2022-04-29 08:56:44)
离线
快速启动配置,快速启动可以跳过uboot,加载快启动速度
正常只需要
选择ramfs方式的配置都可以启用fastboot
make dispcam_p3_nor.glibc-9.1.0-ramfs.s01a.64.qfn128.demo_defconfig
只是我们经常需要在启动时添加一些自己的指令,比如视频中将LVGL加到启动(/etc/init.sh)中
project\image\configs\p3\rootfs_fastboo_disp.mk
//--------------------启动时向init.sh中添加命令,提交启动应用 与202不同,202只能修改${OUTPUTDIR}/rootfs/etc/profile;
$(Q) echo export LD_LIBRARY_PATH=\$$LD_LIBRARY_PATH:/config/lib:/customer/lib >> $(INIT_FILE)
$(Q) echo "/customer/bin/start &" >> $(INIT_FILE)
$(Q) echo "telnetd&" >> $(INIT_FILE)
系统启动后将运行demo.sh,比如我们想挂载NFS方便调试、
挂载从192.168.66.116的NFS到/customer/nfs
$(Q) echo "ifconfig eth0 192.168.66.117" >> $(OUTPUTDIR)/customer/demo.sh
$(Q) echo "if [ -e /customer/nfs ]; then" >> $(OUTPUTDIR)/customer/demo.sh
$(Q) echo "mount -t nfs -o nolock 192.168.66.116:/e/share/nfs/file /customer/nfs &" >> $(OUTPUTDIR)/customer/demo.sh
$(Q) echo "fi;" >> $(OUTPUTDIR)/customer/demo.sh
实际上,要添加一些自己的内容到rootfs都可以在这个mk中处理
比如在 project目录下建一个bin和lib目录,将这里的文件合并到rootfs中,可以添加下面的语句
cp $(PROJ_ROOT)/app/bin/* $(OUTPUTDIR)/rootfs/bin/
cp $(PROJ_ROOT)/app/lib/* $(OUTPUTDIR)/rootfs/lib/
//------------------------------ssd202添加应用到启动-----------------------
前面有说,我的SSD202是用的NAND,而我用的LVGL使用了GFX所以启动时要保证这些驱动都加载了,并且挂载了customer分驱
只能加到profile中
echo \/customer\/bin\/lvgl_gfx \& >> $(OUTPUTDIR)/rootfs/etc/profile;
最近编辑记录 staunchheart (2022-04-29 09:13:18)
离线
202的启动画面处理
如果用官方的屏没什么问题,我的屏与官方的不同,所以需要做一些改变
与212的显示配置相同,同样是CC0702I50R_1024X600_TTL.ini
project\board\ini下
LCM下添加CC0702I50R_1024X600_TTL.ini
project\board\i2m\SSC011A-S01A\config
fbdev.ini
记得修改
FB_TIMMING_WIDTH = 1024
FB_TIMMING_HEIGHT = 600
model中
用sstar-init\files\CC0702I50R\config中对应的文件替换
project\configs\nvr\i2m\8.2.1\spinand.ram-glibc-squashfs.011a.128
类似对应的配置
DISP_OUT_NAME = CC0702I50R
project\image\makefiletools\src\rawgenerator
用新的rawgenerator代码替换
主要是在pnl中加了新屏的头,并添加了引用。
可以直接用
修改屏参数到CC070\rawgenerator\src下 logogen/dispcfggen
放到project\image\makefiletools\bin下替换
怕麻烦就直接用我编译好的可执行文件替换
rawgenerator.zip
如果你的屏不同,请下载代码rawgenerator_src.zip
最近编辑记录 staunchheart (2022-04-29 09:06:16)
离线
修改保留分区大小
与全专一样,有保留内存,如调用显示驱动时会选择这一部份内存。如果我们的应用对视频处理这些不多,可以适当减少一些这部份内存
project\configs\defconfigs\dispcam_p3_nor.glibc-9.1.0-ramfs.s01a.64.qfn128.demo_defconfig
CONFIG_KERNEL_BOOT_ENV="LX_MEM=0x3FE0000 mma_heap=mma_heap_name0,miu=0,sz=0xA00000 cma=2M highres=off"
sz=0xA00000就是保留内存大小
离线
SSD212带OTG,但只有一个USB
202没有OTG,所以不能通过USB+ADB的方式开发调试应用。
系统中默认有个telnet,
所以选择telnet+NFS的方式是不错的选择,
比如,在demo.sh启动时
ifconfig eth0 192.168.66.117
mount -t nfs -o nolock 192.168.66.116:/e/share/nfs/file /customer/nfs
PC端启动nfs服务,并且将目录e:/share/nfs/file映射出来。
比如开发了一个lvapp的应用,将他放到这个目录中
设备上就可以
cd /customer/nfs
chmod 777 /customer/nfs/lvapp
/customer/nfs/lvapp就可以运行了。
其实也蛮方便的。
免费开源的nfs服务,但在我的电脑上一段时间后就会读不到了。而且这个nfs似乎不能chmod 777里面的文件,
不太懂这个,希望有朋友提供更好的工具
winnfsd.zip
破解版的hanewin_nfsserver,这个挂载的文件可以chmod 777
nfs.exe
离线
楼主 我买的是sigmastar的ssd 202 双网口开发板,调屏遇到一点问题,能给个联系方式吗
你想问MIPI屏的问题吧,在群里看了你提问,没敢说话,因为我没用过 ::D。。
最近编辑记录 staunchheart (2022-08-15 08:53:05)
离线