HarmonyOS鸿蒙Next中hi3516使用小型发行版系统hispark_taurus适配mipi lcd屏幕问题
HarmonyOS鸿蒙Next中hi3516使用小型发行版系统hispark_taurus适配mipi lcd屏幕问题 目前已经下载hispark_taurus,版本2.2.0,编译成功后可以正常进入系统。
想在想要适配新的mipi lcd屏幕,从老的lcd驱动入手,查看
vendor/hisilicon/hispark_taurus/config/device_info/device_info.hcs
文件,默认用的lcd屏幕是ICN9700的,我在
drivers/framework/model/display/driver/panel/mipi_icn9700.c
驱动文件中的 Icn9700EntryInit 函数里加了打印和会出异常的除0代码,发现系统启动后没有相关的打印或者出错,感觉系统没有加载lcd相关的驱动
并且系统启动打印中只有load mipi_rx driver successful! ,没有mipi_tx加载的打印。
请问:
- 如何加载lcd相关的驱动
- hispark_taurus代码默认是否会启动launcher应用,如果lcd适配好了,是不是直接就有画面了
我用的是1.1.1版本的,然后修改drivers/framework/model/display/driver/panel/mipi_icn9700.c
中的长宽度等部分参数,编译烧写启动后,在启动信息中可以看到我修改后参数,准备适配7寸的屏幕,但是没能成功。
更多关于HarmonyOS鸿蒙Next中hi3516使用小型发行版系统hispark_taurus适配mipi lcd屏幕问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
使用标准版也很奇怪,其他都不改、只把这个文件改错也总能编过:
drivers\framework\model\display\driver\panel\mipi_icn9700.c
这个问题已经反馈给研发,请您耐心等待一下。
reset
Uncompress Ok!
U-Boot 2016.11 (Jan 16 2020 - 11:32:53 +0000)hi3516dv300
Relocation Offset is: 0f6ca000
Relocating to 8feca000, new gd at 8fd49ef0, sp at 8fd49ed0
MMC:
EMMC/MMC/SD controller initialization.
scan edges:2 p2f:6 f2p:1
mix set temp-phase 3
scan elemnts: startp:5 endp:116
Tuning SampleClock. mix set phase:[04/07] ele:[02/15]
** First descriptor is NOT a primary desc on 0:1 **
MMC/SD Card:
MID: 0x15
Read Block: 512 Bytes
Write Block: 512 Bytes
Chip Size: 14910M Bytes (High Capacity)
Name: "AJTD4"
Chip Type: MMC
Version: 0.0
Speed: 100000000Hz
Bus Width: 4bit
himci: 0 (eMMC)
In: serial
Out: serial
Err: serial
Net: eth0
Warning: eth0 (eth0) using random MAC address - 52:59:7f:46:27:1a
Hit any key to stop autoboot: 0
oem_update_version_param: new_uboot_ver = V1.0.0
oem_update_version_param: old_uboot_ver = V1.0.0
oem_main: PHYS_SDRAM_1=0x80000000, PHYS_SDRAM_1_SIZE=0x10000000
oem_main: CONFIG_SYS_LOAD_ADDR=0x82080000, CONFIG_SYS_SDRAM_BASE=0x80000000
oem_main: CONFIG_SYS_TEXT_BASE_ORI=0x80700000, CONFIG_SYS_TEXT_BASE=0x80800000
oem_main: CONFIG_SYS_INIT_SP_ADDR=0x4014000, CONFIG_NR_DRAM_BANKS=0x1
oem_main: CONFIG_ENV_OFFSET=0x80000, CONFIG_ENV_SIZE=0x40000
oem_main: CONFIG_ENV_SECT_SIZE=0x10000, CONFIG_SYS_MALLOC_LEN=0x140000
oem_main: CFG_BOOT_PARAMS=0x827FFF00
USB0: Register 1000140 NbrPorts 1
Starting the controller
USB XHCI 1.10
scanning bus 0 for devices... 1 USB Device(s) found
0 Storage Device(s) found
udisk_init: Fail to scan USB mass strorage, rc=-1
udisk_upgrade: Fail to initialize UDISK, rc=-1
oem_main: Fail to udisk_upgrade, rc=-1
oem_firstboot: firstboot=NULL
oem_need_dload: DLOAD=NULL
MMC read: dev # 0, block # 2048, count 18432 ... 18432 blocks read: OK
## Starting application at 0x80000000 ...
******************Welcome******************
Processor : Cortex-A7 * 2
Run Mode : SMP
GIC Rev : GICv2
build time : Sep 1 2021 18:39:33
Kernel : Huawei LiteOS 2.0.0.37/debug
*******************************************
main core booting up...
I 02500/hcs_blob_if: CheckHcsBlobLength: the blobLength: 46136, byteAlign: 1
releasing 1 secondary cores
cpu 1 entering scheduler
cpu 0 entering scheduler
quickstart dev init OK!!!
dev urandom init ...
setting SDIO register ...
dev mem init ...
==========chip: hi3516dv300==========
==========sensor0: imx335==========
==========sensor1: imx335==========osal_proc_mkdir - parent is NULL! proc=0x40922de0
g_mmz_start=0x88000000, g_mmz_size=0x180
mmz param= anonymous,0,0x88000000,384M
<6>Hismilicon Media Memory Zone Manager
load sys.ko for Hi3516CV500...OK!
load region.ko for Hi3516CV500...OK!
load gdc.ko for Hi3516CV500...OK!
load vgs.ko for Hi3516CV500...OK!
load dis.ko for Hi3516CV500...OK!
load vi.ko for Hi3516CV500...OK !
load isp.ko for Hi3516CV500...OK !
load vpss.ko for Hi3516CV500...OK!
load vo.ko for Hi3516CV500...OK!
load chnl.ko for Hi3516CV500...OK!
load vedu.ko for Hi3516CV500...OK!
load rc.ko for Hi3516CV500...OK!
load venc.ko for Hi3516CV500...OK!
load h264e.ko for Hi3516CV500...OK!
load h265e.ko for Hi3516CV500...OK!
load jpege.ko for Hi3516CV500...OK!
load jpegd.ko for Hi3516CV500...OK!
load vdec.ko for Hi3516CV500...OK!
load ive.ko for Hi3516CV500...OK!
load nnie.ko for Hi3516CV500...OK!
load tde.ko for Hi3516CV500...OK!
Load hifb.ko OK!
Do not support in hmos fun[osal_register_reboot_notifier]
load hi_piris.ko for Hi3516CV500...OK!
load hdmi.ko for Hi3516CV500...OK!
load mipi_rx driver successful!
No console dev used.
No console dev used.
No console dev used.
No console dev used.
net init ...
tcpip_init start
tcpip_init end
Ethernet start.No console dev used.
No console dev used.
hisi_eth: User did not set phy mode, use default=rmii
hisi_eth: User did not set phy addr, auto scan...
No OTP data, festa PHY use default ATE parameters!
festa PHY wait autotrim done timeout!
Detected phy addr 1, phyid: 0x1cc816
Link is Up - 100Mbps/Full
************************************************************
OsMountRootfs start ...
O[Init] ****/****/****/****/OpenHarmony-1.0.1.0(Beta)/****/****/3/OpenHarmony 2.2 beta/debug
[ERR]Bind method failed: -16
[Init] DoMount, failed for vfat /dev/mmcblk0 /sdcard rw,umask=000, err 16.
[ERR]Failed to find block driver /dev/mmcblk1
[Init] DoMount, failed for vfat /dev/mmcblk1 /sdcard rw,umask=000, err 13.
[Init] start service foundation succeed, pid 3.
[Init] start service bundle_daemon succeed, pid 4.
[Init] start service appspawn succeed, pid 5.
[Init] start service media_server succeed, pid 6.
[Init] start service wms_server succeed, pid 7.
[Init] start service shell succeed, pid 8.
OHOS # [ERR]ServiceManager not set!
Media server initialize succeed.
[DISCOVERY] InitLocalDeviceInfo ok
[DISCOVERY] CoapInitWifiEvent
[DISCOVERY] CoapWriteMsgQueue
[DISCOVERY] CoapReadHandle coin select begin
[DISCOVERY] InitService ok
[DISCOVERY] PublishCallback publishId=1, result=0
[TRANS] WaitProcess begin
[TRANS] SelectSessionLoop begin
[AUTH] StartBus ok
[ERR]CheckUsedBuffer failed:-14
[ERR]QuickstartListen,78:0x2001c01
[ERR][SendCmd,34] Invalid argument!
spi nor flash init ...
hifmc1000
spinor_get_dev_id(56): Spi(cs0) have no device.
Cs[0] have no device!!!
spinor_get_dev_id(56): Spi(cs1) have no device.
Cs[1] have no device!!!
hifmc100_attach(130): Error:spinor scan fail!
device_attach: hifmc1000 attach returned -1
usb init ...
******** usb_init in **********
usb v3.05 2019-11-20 10:40
xhci0: <XHCI (generic) USB 3.0 controller>
xhci_init (xhci0): 64 bytes context size, 32-bit DMA
usbus0 on xhci0
usb_bus_attach (usbus0): 5.0Gbps Super Speed USB v3.0
hifmc1000
spinor_get_dev_id(56): Spi(cs0) have no device.
Cs[0] have no device!!!
spinor_get_dev_id(56): Spi(cs1) have no device.
Cs[1] have no device!!!
hifmc100_attach(130): Error:spinor scan fail!
device_attach: hifmc1000 attach returned -1
******** usb_init ok**********
[Init] start service apphilogcat succeed, pid 10.
[Init] start service hiview invalid, please check /bin/hiview.
[Init] StartServiceByName, service hiview start failed!
[Init] start service sensor_service succeed, pid 11.
[Init] start service ai_server succeed, pid 12.
[Init] DoChown, failed for 0 99 /dev/gpio, err 2.
[Init] main, time used: sigInfo 6 ms, rcs 0 ms, cfg 10176 ms.
[Init] main, entering wait.
ugen0.1: <vendor 0x0000> at usbus0
device_set_usb_desc (uhub0): <vendor 0x0000 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
Set log level : 3
Default log level: 3
01-01 00:00:20.301 3 34 D 01800/Samgr: Find Feature<bundlems, BmsFeature> id<40, 5> ret:0
01-01 00:00:20.301 9 57 I 01800/Samgr: Create remote sa proxy[0x26d20e20]<bundlems, BmsFeature>!
01-01 00:00:20.301 9 57 I 00000/(null): [appspawn] get service name appspawn.
01-01 00:00:20.337 7 29 I 02500/HDF_DISP: GrallocInitialize: gralloc initialize success
01-01 00:00:20.377 9 57 I 02500/HDF_DISP: GrallocInitialize: gralloc initialize success
01-01 00:00:21.018 9 57 I 00000/(null): Ability OnActive
01-01 00:00:21.018 9 57 I 00000/(null): AbilitySlice OnActive
01-01 00:00:21.018 9 57 I 00000/(null): perform transact ability state done [3]
01-01 00:00:21.019 3 31 I 01300/abilityms: AbilityMgrFeature::Invoke(84): ams invoke called
01-01 00:00:21.019 3 31 D 01300/abilityms: AbilityMgrHandler::AbilityTransaction(219): start
01-01 00:00:21.019 3 31 D 01300/abilityms: AbilityWorker::AbilityTransaction(86): ability token(81604378624), state(3)
01-01 00:00:21.019 3 31 D 01300/abilityms: AbilityActivateTask::Execute(26): start
uhub_attach (uhub0): 1 port with 1 removable, self powered
write file switch /storage/data/log/hilog2.txt
01-01 00:00:21.882 2 10 E 02500/mmc_protocol_c: SdioInit: ocr is invalid!
01-01 00:00:21.882 2 10 D 02500/mmc_protocol_c: MmcDoDetect: host2 detect fail!
01-01 00:00:22.668 2 13 E 02500/HDF_WIFI_CORE: HdfWlanInitThread:Device 0 detect failed!
01-01 00:00:22.668 2 13 D 02500/HDF_WIFI_CORE: HdfWlanInitThread:finished.
01-01 00:00:23.960 12 66 I 00000/(null): [AI][Init:569][SaServer]Init start.
01-01 00:00:23.971 11 65 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: Init begin
01-01 00:00:23.982 11 65 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.982 11 65 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.982 11 65 I 01800/Samgr: Bootstrap core services(count:1).
01-01 00:00:23.982 11 65 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: GetTaskConfig begin
01-01 00:00:23.982 11 65 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.982 11 65 I 01800/Samgr: Init service:sensor_service TaskPool:0x201683c0
01-01 00:00:23.982 11 65 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.982 11 67 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: Initialize begin
01-01 00:00:23.992 11 67 D 02500/sensor_manager_c: NewSensorInterfaceInstance: Get sensor device instance success
01-01 00:00:23.992 11 67 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.992 11 67 I 01800/Samgr: Initialize Client Registry!
01-01 00:00:23.993 3 34 E 01500/Communication: [UnregisterDeathCallback : 980]Wrong cbId:4294967295.
01-01 00:00:23.993 3 34 I 01800/Samgr: Register Endpoint<11, 68, 0>
01-01 00:00:23.993 11 68 E 01500/Communication: [UnregisterDeathCallback : 980]Wrong cbId:4294967295.
01-01 00:00:23.993 3 34 D 01800/Samgr: Register Feature<sensor_service, (null)> pid<11>, id<68, 0> ret:0
01-01 00:00:23.993 11 68 D 01800/Samgr: RegisterRemoteFeatures<sensor_service, (null)> ret:0
01-01 00:00:23.993 11 68 I 01800/Samgr: Register endpoint<ipc client> and iunknown finished! remain<0> iunknown!
write file switch /storage/data/log/hilog1.txt
01-01 00:00:23.993 3 34 D 01800/Samgr: Register Feature<sensor_service, (null)> pid<11>, id<68, 0> ret:0
01-01 00:00:23.993 11 67 I 01800/Samgr: Register server sa<sensor_service, (null)> id<4294967295, 0> retry:1 ret:0!
01-01 00:00:23.993 11 67 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.993 11 67 I 01800/Samgr: Init service sensor_service <time: 11ms> success!
01-01 00:00:23.993 11 67 I 01800/Samgr: Initialized all core system services!
01-01 00:00:23.993 11 67 D 00000/SENSOR_LITE: [SERVICE:sensor_service]: SENSOR_GetName begin
01-01 00:00:23.993 11 67 I 01800/Samgr: Goto next boot step return code:-9
01-01 00:00:24.022 12 66 D 00000/(null): [AI][main:35][StartServer]Start Ai Provider System Start.
01-01 00:00:24.022 12 66 I 00000/(null): [AI][HOS_SystemInit:26][StartServer]Provider HOS System init
01-01 00:00:24.023 12 66 I 01800/Samgr: Bootstrap core services(count:1).
01-01 00:00:24.023 12 66 I 01800/Samgr: Init service:ai_service TaskPool:0x698efc0
01-01 00:00:24.023 12 70 I 01800/Samgr: Initialize Client Registry!
01-01 00:00:24.023 3 34 E 01500/Communication: [UnregisterDeathCallback : 980]Wrong cbId:4294967295.
01-01 00:00:24.023 3 34 I 01800/Samgr: Register Endpoint<12, 71, 0>
01-01 00:00:24.023 12 71 E 01500/Communication: [UnregisterDeathCallback : 980]Wrong cbId:4294967295.
01-01 00:00:24.024 3 34 D 01800/Samgr: Register Feature<ai_service, (null)> pid<12>, id<71, 0> ret:0
01-01 00:00:24.024 12 71 D 01800/Samgr: RegisterRemoteFeatures<ai_service, (null)> ret:0
01-01 00:00:24.024 12 71 I 01800/Samgr: Register endpoint<ipc client> and iunknown finished! remain<0> iunknown!
01-01 00:00:24.024 3 34 D 01800/Samgr: Register Feature<ai_service, (null)> pid<12>, id<71, 0> ret:0
01-01 00:00:24.024 12 66 D 00000/(null): [AI][main:37][StartServer]Start Ai Provider System End.
01-01 00:00:24.024 12 70 I 01800/Samgr: Register server sa<ai_service, (null)> id<4294967295, 0> retry:1 ret:0!
01-01 00:00:24.024 12 70 I 01800/Samgr: Init service ai_service <time: 63ms> success!
01-01 00:00:24.024 12 70 I 01800/Samgr: Initialized all core system services!
write file switch /storage/data/log/hilog2.txt
01-01 00:00:24.024 12 70 I 01800/Samgr: Goto next boot step return code:-9
OHOS #
欢迎开发小伙伴们进来帮帮楼主
在HarmonyOS鸿蒙Next中,hi3516使用小型发行版系统hispark_taurus适配MIPI LCD屏幕时,需确保以下几点:首先,验证硬件连接正确,包括MIPI接口和电源;其次,在设备树中正确配置MIPI LCD参数,如分辨率、时序等;接着,检查驱动是否支持所选LCD型号,必要时进行驱动适配;最后,确保系统启动时正确加载LCD驱动,并通过调试工具验证屏幕显示是否正常。