RV1106G3的fastboot调试

一、硬件环境

硬件板卡使用幸狐的luckfox pico ultra,其参数如下:

 使用幸狐的sdk(不确定是从官方的哪个sdk修改而来),幸狐SDk的emmc非fastboot使用是正常的,同时也部署和优化了yolov5s,功能达到了我的需求。但是使用幸狐SDK的emmc fastboot配置,编译有失败,主要原因是编译的文件大小限制问题,通过修改设备树中ramdisk_r和ramdisk_c大小,可以使编译通过,但是运行报错。幸狐提供了编译后的emmc fastboot烧录文件,可以正常运行,说明这个板子的硬件状态是可以实现fastboot的。

1、官方SDK对幸狐的板卡emmc非fastboot使用

系统正常,应用程序功能正常。

2、官方SDK对幸狐的板卡emmc fastboot使用

因此转而使用官方的SDK版本为rv1106_rv1103_240813.tgz。

1)./build.sh lunch选择如下:

2)编译正常

3)下载到板卡运行如下:

DDR 306b9977f5 wesley.yao 23/12/21-09:28:37,fwver: v1.15

S5P1

4x

f967

rgef1

DDRConf2

DDR3, BW=16 Col=10 Bk=8 CS0 Row=14 CS=1 Size=256MB

924MHz

DDR bin out

U-Boot SPL board init

U-Boot SPL 2017.09-gf39aacfaa9-240430 #f (May 07 2025 - 14:19:08)

Trying to boot from MMC1

MMC error: The cmd index is 7, ret is -110

mmc_init: -22, time 10

spl: mmc init failed with error: -22

SPL: failed to boot from all boot devices

### ERROR ### Please RESET the board ###

   # Reset the board to bootrom #

4)通过uboot打印调试

           在uboot的配置文件rv1106-emmc-tb-nofastae_defconfig中(在boardconfig.mk文件中确认使用的是上述deconfig),注释掉CONFIG_MMC_USE_PRE_CONFIG,再次编译,烧写后打印如下:

DDR 306b9977f5 wesley.yao 23/12/21-09:28:37,fwver: v1.15

S5P1

4x

f967

rgef1

DDRConf2

DDR3, BW=16 Col=10 Bk=8 CS0 Row=14 CS=1 Size=256MB

924MHz

DDR bin out

U-Boot SPL board init

U-Boot SPL 2017.09-gf39aacfaa9-240430-dirty #f (May 08 2025 - 14:11:49)

Trying to boot from MMC1

Best phase range 0-270 (25 len)

Successfully tuned phase to 135, used 1ms

ENVF: Primary 0x00000000 - 0x00008000

ENVF: Primary 0x00000000 - 0x00008000

No load cfg image.

## Verified-boot: 0

## Checking mcu1 0xff6fe000 ... sha256(7c6c18c711...) + OK

## Checking fdt 0x007e0000 ... sha256-skipped + OK

ENVF: Primary 0x00000000 - 0x00008000

## Checking kernel 0x00208000 (gzip @0x02d00000) ... sha256-skipped + + OK

## Preload the image OK.

Jumping to Kernel(0x00208000)

Total: 389.931/398.579 ms

之后无任何打印,且串口不能输入,板子也无法进入boot状态,无法烧写程序。

5)板卡无法进入boot状态

通过短接emmc的数据线到地,再开机则直接进入boot,然后不要再短接,usb烧录可以正常。

三、自行修改尝试:

1、修改kernel中设备树文件rv1106-tb-nofastae-emmc.dtsi

 修改文中

&emmc {

memory-region-ecsd = <&mmc_ecsd>;

post-power-on-delay-ms = <0>;

};

&emmc {

memory-region-ecsd = <&mmc_ecsd>;

post-power-on-delay-ms = <100>;

};

2、修改kernel中设备树文件rv1106g-evb1-v11.dts

 修改文中

&sfc {

status = "okay";

&sfc {

status = "disabled";

运行后无改善,代码还原。

四、参考幸狐最新的sdk,在官方SDK尝试

官方SDK版本:rv1106_rv1103_240813。

调试好多天未果,后来就优先调试应用功能,包括模型训练、转模部署、性能优化完成后又再来调试fastboot了,无意中发现幸狐有更新sdk,其中也是关于emmc的相关,所以才来尝试性修改官方sdk。

1)在sysdrv\source\uboot\u-boot\common\spl\spl_mmc.c中

增加红色字段。

int spl_mmc_load_image(struct spl_image_info *spl_image,

                  struct spl_boot_device *bootdev)

{

struct mmc *mmc = NULL;

u32 boot_mode;

int err = 0;

__maybe_unused int part;

err = spl_mmc_find_device(&mmc, bootdev->boot_device);

if (err)

           return err;

err = mmc_init(mmc);

if (err)

           err = mmc_init(mmc);

2)在sysdrv\source\uboot\u-boot\drivers\mmc\mmc.c中

修改

int mmc_start_init(struct mmc *mmc)

{

/*

 * We use the MMC config set by the bootrom.

 * So it is no need to reset the eMMC device.

 */

mmc_set_bus_width(mmc, 8);

mmc_set_bus_width(mmc, 1);

注意不要修改错了,有两个mmc_start_init函数!!!

注意不要修改错了,有两个mmc_start_init函数!!!

注意不要修改错了,有两个mmc_start_init函数!!!

系统运行正常打印如下:

DDR 306b9977f5 wesley.yao 23/12/21-09:28:37,fwver: v1.15

S5P1

4x

f967

F

DDRConf2

DDR3, BW=16 Col=10 Bk=8 CS0 Row=14 CS=1 Size=256MB

924MHz

DDR bin out

U-Boot SPL board init

U-Boot SPL 2017.09-gf39aacfaa9-240430-dirty #f (May 14 2025 - 10:17:50)

Trying to boot from MMC1

MMC error: The cmd index is 7, ret is -110

mmc_init: -22, time 11

MMC error: The cmd index is 7, ret is -110

Best phase range 270-237 (30 len)

Successfully tuned phase to 79, used 1ms

ENVF: Primary 0x00000000 - 0x00008000

ENVF: Primary 0x00000000 - 0x00008000

No load cfg image.

## Verified-boot: 0

## Checking mcu1 0xff6fe000 ... sha256(7c6c18c711...) + OK

## Checking fdt 0x007e0000 ... sha256-skipped + OK

ENVF: Primary 0x00000000 - 0x00008000

## Checking kernel 0x00208000 (gzip @0x02d00000) ... sha256-skipped + + OK

## Preload the image OK.

Jumping to Kernel(0x00208000)

Total: 84.791/92.418 ms

# #CodecName:H264

#Resolution: 1920x1080

#CameraIdx: 0

#Frame Count to save: -1

ISP IQ file path: /etc/iqfiles

rkaiq log level ff1

XCORE:K:rk_aiq_init_lib, ISP HW ver: 32

XCORE:K:

************************** VERSION INFOS **************************

version release date: 2024-2-18

         AIQ:       AIQ v5.0x5.0

git logs:

25bd14e RV1106: smart_door: release rga/isp/mpp for V1.3.0

99d080a RV1106/RV1103: Battery/Doorbell: release kmpp/rockit-ko for V1.3.2

6458e2a RV1106/RV1103: Battery/Doorbell: release kmpp/rockit-ko for V1.3.1

e8dab39 RV1106: CVR: release rga/isp/mpp for V1.1.0

a021b32 RV1106/RV1103: Battery/Doorbell: release kmpp/rockit-ko for V1.3.0

************************ VERSION INFOS END ************************

ID: 0, sensor_name is m00_b_sc3336 4-0030-1, iqfiles is /etc/iqfiles

XCORE:E:access /etc/iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json && /etc/iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.bin failed!

XCORE:E:_rkAiqManager init error!

CAMHW:E:can't find sensor

XCORE:E:camhw deinit error -7

IPCSERVER:K:cid[-1] Deinit success

MessageParser process loop exit!

XCORE:K:cid[0] rk_aiq_uapi_sysctl_deinit_locked success.

SIMPLE_COMM_ISP_Run : CamId is over 3 or not init

[INFO  rtsp_demo.c:280:rtsp_new_demo] rtsp server demo starting on port 554

[DEBUG rtsp_demo.c:480:rtsp_new_session] add session path: /live/0

rtsp streamq_alloc size is 1753484

rockit log path (null), log_size = 0, can use export rt_log_path=, export rt_log_size= change

log_file = (nil)

RTVersion        00:00:00-367 {dump              :064} ---------------------------------------------------------

RTVersion        00:00:00-367 {dump              :065} rockit version: git-4720dc10a Tue Apr 30 15:47:55 2024 +0800

RTVersion        00:00:00-367 {dump              :066} rockit building: built- 2024-04-30 15:53:43

RTVersion        00:00:00-367 {dump              :067} ---------------------------------------------------------

rockit default level 4, can use export rt_log_level=x, x=0,1,2,3,4,5,6 change

(null)           00:00:00-368 {read_log_level    :098} text is all=4

(null)           00:00:00-368 {read_log_level    :100} module is all, log_level is 4

(null)           00:00:00-370 {monitor_log_level :149} #Start monitor_log_level thread, arg:(nil)

RKSockServer     00:00:00-370 {initNetServer     :088} bind failed, reason: Cannot assign requested address

vi_dev_init

RKViDev          00:00:00-377 {vi_set_dev_attr   :612} VI_DEV_ATTR_S all parameter reserved

RTIsp3x          00:00:00-381 {ispInitDevice     :591} sensor name = m00_b_sc3336 4-0030-1

RTDeviceSensorV4 00:00:00-460 {ispOpenDevice     :502} v4l2_open(/dev/video0), handler=17

RTDeviceSensorV4 00:00:00-460 {ispOpenDevice     :502} v4l2_open(/dev/v4l-subdev2), handler=19

RTDeviceSensorV4 00:00:00-461 {close             :112} do RTDeviceSensorV4L2 close

RTDeviceSensorV4 00:00:00-461 {close             :112} do RTDeviceSensorV4L2 close

RKViChn          00:00:00-501 {prepareRuntime    :354} ---------------------------------------------------------

RKViChn          00:00:00-501 {prepareRuntime    :356} vi version: 1.22, name:vvi

RKViChn          00:00:00-501 {prepareRuntime    :357} rockit-ko version: vmpi:28ee389dbc33

RKViChn          00:00:00-501 {prepareRuntime    :358} rockit-ko building: -2024-05-24-16:21:01

RKViChn          00:00:00-501 {prepareRuntime    :359} ---------------------------------------------------------

cmpi             00:00:00-502 {prepareRuntime    :378} mb pool create success, MBCnt= 2

RTIsp3x          00:00:00-505 {ispInitDevice     :591} sensor name = m00_b_sc3336 4-0030-1

cmpi             00:00:00-507 {createRuntime     :634} >>>>>>>>> Sensor link info dump: <<<<<<<<<

cmpi             00:00:00-507 {createRuntime     :636}   vicap media name           : /dev/media0

cmpi             00:00:00-508 {createRuntime     :637}   vicap model name           : rkcif-mipi-lvds

cmpi             00:00:00-508 {createRuntime     :638}   camera id                  : 0

cmpi             00:00:00-508 {createRuntime     :639}   sensor name                : m00_b_sc3336 4-0030-1

cmpi             00:00:00-508 {createRuntime     :641}   stream_cif_mipi_id0 video name: /dev/video0

cmpi             00:00:00-508 {createRuntime     :642}   stream_cif_mipi_id1 video name: /dev/video1

cmpi             00:00:00-508 {createRuntime     :643}   stream_cif_mipi_id2 video name: /dev/video2

cmpi             00:00:00-508 {createRuntime     :644}   stream_cif_mipi_id3 video name: /dev/video3

cmpi             00:00:00-508 {createRuntime     :646}   sensor raw width           : 2304

cmpi             00:00:00-508 {createRuntime     :647}   sensor raw height          : 1296

cmpi             00:00:00-508 {createRuntime     :648} ---------------------------------------------------------

cmpi             00:00:00-508 {createRuntime     :654}   isp media name           : /dev/media1

cmpi             00:00:00-509 {createRuntime     :655}   isp model name           : rkisp0

cmpi             00:00:00-509 {createRuntime     :656}   isp driver name          : rkisp-vir0

cmpi             00:00:00-509 {createRuntime     :657}   isp dev name             : /dev/v4l-subdev3

cmpi             00:00:00-509 {createRuntime     :659}   isp rawrd0_m_path        : /dev/video17

cmpi             00:00:00-509 {createRuntime     :660}   isp rawrd1_l_path        :

cmpi             00:00:00-509 {createRuntime     :661}   isp rawrd2_s_path        : /dev/video18

cmpi             00:00:00-509 {createRuntime     :664}   mainpath video name      : /dev/video11

cmpi             00:00:00-509 {createRuntime     :665}   selfpath video name      : /dev/video12

cmpi             00:00:00-509 {createRuntime     :666}   bypasspath video name    : /dev/video13

cmpi             00:00:00-509 {createRuntime     :667}   sensor link type         : 2

cmpi             00:00:00-509 {createRuntime     :668}   sensor is united         : 0

cmpi             00:00:00-510 {createRuntime     :672} ---------------------------------------------------------

cmpi             00:00:00-510 {createRuntime     :711} [non-WRAP MODE]: buff size = 3133440

RTIsp3x          00:00:00-524 {ispInitDevice     :591} sensor name = m00_b_sc3336 4-0030-1

RTDeviceV4L2     00:00:00-525 {open              :137} cameraIndex:0, entityName:rkisp_mainpath

RTDeviceV4L2     00:00:00-525 {open              :143} open video name(/dev/video11)

RKViChn          00:00:00-525 {setFrameRate      :1469} [vi] dev(0) ch(0) illegal param s32SrcFrameRate(0) s32DstFrameRate(0)

RTDeviceV4L2     00:00:00-525 {ispCameraInfo     :567} current device:/dev/video11 isn't compatible(cap:0x84201000) device,memoryType:4, retry:0

RTDeviceV4L2     00:00:00-525 {ispInitFormat     :767} ioctl VIDIOC_S_FMT OK

cmpi             00:00:00-526 {start             :1093} =========== vi Start startRuntime ===========

RTDeviceV4L2     00:00:00-526 {ispStreamOn       :458} do ispStreamOn start

RTDeviceV4L2     00:00:00-549 {ispStreamOn       :511} do ispStreamOn done

========test_venc_init========

MpiAdapterEncode 00:00:00-550 {ma_encode_create  :1743} ringbuf buf_size 3112960

MpiAdapterEncode 00:00:00-558 {ma_encode_create  :1782} mem_fd = 24

====RK_MPI_SYS_Bind vi0 to venc0====

========GetMediaBuffer0========

MpiAdapterEncode 00:00:00-600 {ma_encode_get_pack:2079} map ptr: 0xa5c4f000, fd 25

[DEBUG utils.c:134:rtsp_codec_data_parse_from_user_h264] sps 30

[DEBUG utils.c:142:rtsp_codec_data_parse_from_user_h264] pps 4

但是,app运行有点问题,貌似是相机的配置文件没找到,如上打印:

ID: 0, sensor_name is m00_b_sc3336 4-0030-1, iqfiles is /etc/iqfiles

XCORE:E:access /etc/iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json && /etc/iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.bin failed!

XCORE:E:_rkAiqManager init error!

CAMHW:E:can't find sensor

XCORE:E:camhw deinit error -7

五、配置app

在文件project/cfg/BoardConfig_IPC/BoardConfig-EMMC-NONE-RV1106_EVB1_V11_V13-IPC_FASTBOOT.mk中

修改:

# app config

#export RK_APP_TYPE=RK_WIFI_APP

export RK_APP_TYPE=RKIPC_RV1106_BATTERY_IPC

六、解决相机的配置文件问题

在文件project/cfg/BoardConfig_IPC/BoardConfig-EMMC-NONE-RV1106_EVB1_V11_V13-IPC_FASTBOOT.mk中

export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.bin sc3336_CMK-OT2119-PC1_30IRC-F16.bin sc530ai_CMK-OT2115-PC1_30IRC-F16.bin"

# Config sensor lens CAC calibrattion bin file

export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16 CAC_sc530ai_CMK-OT2115-PC1_30IRC-F16"

改为

export RK_CAMERA_SENSOR_IQFILES="sc3336_CMK-OT2119-PC1_30IRC-F16.bin"

# Config sensor lens CAC calibrattion bin file

export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc3336_CMK-OT2119-PC1_30IRC-F16"

编译后验证:

OK!!!启动打印可以看到,相机文件加载是正常的!

ID: 0, sensor_name is m00_b_sc3336 4-0030-1, iqfiles is /etc/iqfiles

XCORE:K:AIQ run with iq bin, iq bin version: IQBIN Version: v1.0.0

IPCSERVER:K:cid[0] Process path:/tmp/UNIX.domain0, sockfd:13

XCORE:K:cid[0] rk_aiq_uapi_sysctl_init success. iq:/etc/iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json

XCORE:K:cid[0] rk_aiq_uapi_sysctl_prepare success. mode:0

rk_aiq_uapi2_sysctl_init/prepare succeed

CAMHW:K:cid[0] start success. isGroup:0, isOnline:1, isMultiIsp:0, init_ens:0x1bfc0ffc4739

XCORE:K:cid[0] rk_aiq_uapi_sysctl_start success.

七、配置自己的程序运行

1)修改设备树志气支持更大的程序空间

在mk文件中可得:

# Kernel dts

export RK_KERNEL_DTS=rv1106g-evb1-v11-fastboot-emmc.dts

所以在kernel目录下sysdrv/source/kernel/arch/arm/boot/dts修改文件rv1106g-evb1-v11-fastboot-emmc.dts如下:

&ramdisk_r {

         reg = <0x800000 (25 * 0x00100000)>;

};

&ramdisk_c {

         reg = <0x2100000 (12 * 0x00100000)>;

};

修改为

&ramdisk_r {

         reg = <0x800000 (40 * 0x00100000)>;

};

&ramdisk_c {

         reg = <0x3000000 (20 * 0x00100000)>;

};

在mk中修改:

export RK_PARTITION_CMD_IN_ENV="32K(env),128K@32K(idblock),192K(uboot),15M(boot),2G(userdata),-(reserve)"

修改为

export RK_PARTITION_CMD_IN_ENV="32K(env),128K@32K(idblock),192K(uboot),40M(boot),2G(userdata)"

其他的不改,编译后系统看是否可以运行正常,一次来验证这个ramdisk 的大小改动是否正常!!!

经验证,改动是正常的,可以去增加自己的文件到系统中!!!!!!!

经验证,改动是正常的,可以去增加自己的文件到系统中!!!!!!!

经验证,改动是正常的,可以去增加自己的文件到系统中!!!!!!!

2)修改目录project/cfg/BoardConfig_IPC下的文件rv1106-nofastae-simple-post.sh。

最终的修改如下:

#!/bin/bash

echo "fzk : enter!!!"

PARTITION_MOUNT_SCRIPT=_S20linkmount

cd $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/bin/

shopt -s extglob

rm !(simple_vi_bind_venc_rtsp|rk_mpi_uvc|usb_config.sh)

shopt -u extglob

cd -

mv $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/librkaiq.so $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib

mv $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/librockit.so $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib

mv $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/lib*mpp* $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib

mv $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/librga.so $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/*.so*

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/*.md

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/flash*

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/services

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/protocols

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/lib/libstdc++.so.6.0.25-gdb.py

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/lib/libitm.so*

mv $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/S20linkmount $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/${PARTITION_MOUNT_SCRIPT}

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/S21appinit*

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/rkipc

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/wpa_*

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/iqfiles/*.json

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/iqfiles/*.bin

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/hpmcu_wrap.bin

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/*.data

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/wpa_cli

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/wpa_cli_rtk

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/wpa_supplicant

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/wpa_supplicant_nl80211_rtk

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/wpa_supplicant_rtk

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/wpa_supplicant.conf

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/libwpa_client.so

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/lib/libdrm.so*

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/bin/modetest

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib/libwpa_client.so

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib/libintl.so*

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/iperf

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/hostapd

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/bin/dnsmasq

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/insmod_ko.sh

# delete nouse ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/gcm.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/ccm.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/sha256_generic.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/libaes.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/libsha256.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/gf128mul.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/cmac.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/rve.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/libarc4.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/aes_generic.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/ctr.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/mac80211.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/atmb_iot_supplicant_demo

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/rk_vendor_storage.ko

rm $RK_PROJECT_PACKAGE_ROOTFS_DIR/oem/usr/ko/mtd_vendor_storage.ko

cp $RK_PROJECT_PATH_MEDIA/isp_iqfiles/$RK_CAMERA_SENSOR_IQFILES $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/iqfiles/

####fzk--------------------------

rm -R $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk

sleep 1

mkdir -p $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk

mkdir -p $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk/model

cp /home/f/Desktop/work/AI/AI-bomb/code/luckfox_pico_rkmpi_example/lib/*.so $RK_PROJECT_PACKAGE_ROOTFS_DIR/usr/lib/

cp /home/f/Desktop/work/AI/AI-bomb/code/luckfox_pico_rkmpi_example/build/luckfox_pico_rtsp_yolov5 $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk/

cp /home/f/Desktop/work/AI/AI-bomb/code/model/yolov5.rknn $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk/model/

cp /home/f/Desktop/work/AI/AI-bomb/code/model/coco_80_labels_list.txt $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk/model/

cp /home/f/Desktop/work/AI/AI-bomb/code/model/anchors_yolov5.txt $RK_PROJECT_PACKAGE_ROOTFS_DIR/0_fzk/model/

###----------------------------------

cat > $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/rcS <<EOF

#!/bin/sh

export PATH=\$PATH:/oem/usr/ko/

echo "start service" > /dev/kmsg

###/oem/usr/bin/simple_vi_bind_venc_rtsp &

###------------------

insmod /oem/usr/ko/rknpu.ko

###chmod -R 777 /0_fzk

cd /0_fzk/

./luckfox_pico_rtsp_yolov5&

###sh /etc/init.d/${PARTITION_MOUNT_SCRIPT} linkdev &

function run_delay_task(){

              cd /oem/usr/ko

              test ! -f jbd2.ko   || insmod jbd2.ko

              test ! -f crc16.ko  || insmod crc16.ko

              test ! -f mbcache.ko|| insmod mbcache.ko

              test ! -f ext4.ko   || insmod ext4.ko

              test ! -f dw_mmc.ko          || insmod dw_mmc.ko

              test ! -f dw_mmc-pltfm.ko    || insmod dw_mmc-pltfm.ko

              test ! -f dw_mmc-rockchip.ko || insmod dw_mmc-rockchip.ko

              test ! -f mmc_block.ko       ||insmod mmc_block.ko

              test ! -f mtd_blkdevs.ko || insmod mtd_blkdevs.ko

              test ! -f mtdblock.ko || insmod mtdblock.ko

              test ! -f spi-nor.ko || insmod spi-nor.ko

              test ! -f dw_mmc.ko          || insmod dw_mmc.ko

              test ! -f dw_mmc-pltfm.ko    || insmod dw_mmc-pltfm.ko

              test ! -f dw_mmc-rockchip.ko || insmod dw_mmc-rockchip.ko

              sh /etc/init.d/${PARTITION_MOUNT_SCRIPT} start &

              test ! -f snd-soc-simple-card-utils.ko || insmod snd-soc-simple-card-utils.ko

              test ! -f snd-soc-simple-card.ko || insmod snd-soc-simple-card.ko

              test ! -f snd-soc-rockchip-i2s-tdm.ko || insmod snd-soc-rockchip-i2s-tdm.ko

              test ! -f snd-soc-rv1106.ko || insmod snd-soc-rv1106.ko

              test ! -f mmc_block.ko || insmod mmc_block.ko

              test ! -f nls_cp936.ko || insmod nls_cp936.ko

              test ! -f fat.ko       || insmod fat.ko

              test ! -f vfat.ko      || insmod vfat.ko

              test ! -f /etc/init.d/S80idb_bootconfig   || /etc/init.d/S80idb_bootconfig start

              test ! -f /oem/usr/ko/insmod_wifi.sh  || /oem/usr/ko/insmod_wifi.sh ${RK_ENABLE_FASTBOOT} ${RK_ENABLE_WIFI_CHIP}

              # Just for test

              (sleep 5 && test ! -f /data/do-test.sh || sh /data/do-test.sh) &

}

###(sleep 3 && run_delay_task) &

EOF

chmod +x $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/rcS

cat > $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/rcK <<EOF

#!/bin/sh

echo "Start to killall task!!!"

while true

do

              if ps |grep -v grep  |grep rkipc;then

                            echo "killall -9 rkipc"

                            killall -9 rkipc

              elif ps |grep -v grep  |grep fastboot_client;then

                            echo "killall -9 fastboot_client"

                            killall -9 fastboot_client

              elif ps |grep -v grep  |grep fastboot_server;then

                            echo "killall -9 fastboot_server"

                            killall -9 fastboot_server

              else

                            break

              fi

              sleep .5

done

killall rkwifi_server

umount /data

echo "rcK done"

EOF

chmod +x $RK_PROJECT_PACKAGE_ROOTFS_DIR/etc/init.d/rcK

八、fastboot时间

1、启动日志

DDR 306b9977f5 wesley.yao 23/12/21-09:28:37,fwver: v1.15[2025-05-15 06:24:58.732]

S5P1[2025-05-15 06:24:58.732]

4x[2025-05-15 06:24:58.734]

f967[2025-05-15 06:24:58.734]

F[2025-05-15 06:24:58.734]

DDRConf2[2025-05-15 06:24:58.734]

DDR3, BW=16 Col=10 Bk=8 CS0 Row=14 CS=1 Size=256MB[2025-05-15 06:24:58.736]

924MHz[2025-05-15 06:24:58.736]

DDR bin out[2025-05-15 06:24:58.736]

[2025-05-15 06:24:58.736]

U-Boot SPL board init[2025-05-15 06:24:58.742]

U-Boot SPL 2017.09-gf39aacfaa9-240430-dirty #f (May 15 2025 - 18:22:43)[2025-05-15 06:24:58.742]

Trying to boot from MMC1[2025-05-15 06:24:58.747]

MMC error: The cmd index is 7, ret is -110[2025-05-15 06:24:58.754]

mmc_init: -22, time 11[2025-05-15 06:24:58.757]

MMC error: The cmd index is 7, ret is -110[2025-05-15 06:24:58.765]

Best phase range 270-248 (31 len)[2025-05-15 06:24:58.768]

Successfully tuned phase to 79, used 1ms[2025-05-15 06:24:58.772]

ENVF: Primary 0x00000000 - 0x00008000[2025-05-15 06:24:58.772]

ENVF: Primary 0x00000000 - 0x00008000[2025-05-15 06:24:58.772]

No load cfg image.[2025-05-15 06:24:58.772]

## Verified-boot: 0[2025-05-15 06:24:58.772]

[2025-05-15 06:24:58.772]

## Checking mcu1 0xff6fe000 ... sha256(7c6c18c711...) + OK[2025-05-15 06:24:58.781]

[2025-05-15 06:24:58.781]

## Checking fdt 0x007e0000 ... sha256-skipped + OK[2025-05-15 06:24:58.781]

ENVF: Primary 0x00000000 - 0x00008000[2025-05-15 06:24:58.781]

## Checking kernel 0x00208000 (gzip @0x04400000) ... sha256-skipped + + OK[2025-05-15 06:24:58.809]

## Preload the image OK.[2025-05-15 06:24:58.809]

Jumping to Kernel(0x00208000)[2025-05-15 06:24:58.814]

Total: 84.908/92.720 ms[2025-05-15 06:24:58.825]

[2025-05-15 06:24:58.825]

# --------------------enter main![2025-05-15 06:24:59.291]

model input: fmt=NHWC, h=320, w=320, chn=3[2025-05-15 06:24:59.332]

--------------------init model![2025-05-15 06:24:59.332]

--------------------Create Pool success ![2025-05-15 06:24:59.344]

--------------------frame buffer init ![2025-05-15 06:24:59.344]

rkaiq log level ff1[2025-05-15 06:24:59.344]

XCORE:K:rk_aiq_init_lib, ISP HW ver: 32[2025-05-15 06:24:59.365]

XCORE:K:[2025-05-15 06:24:59.374]

************************** VERSION INFOS **************************[2025-05-15 06:24:59.387]

version release date: 2024-2-18[2025-05-15 06:24:59.387]

         AIQ:       AIQ v5.0x5.0[2025-05-15 06:24:59.387]

[2025-05-15 06:24:59.387]

git logs:[2025-05-15 06:24:59.387]

25bd14e RV1106: smart_door: release rga/isp/mpp for V1.3.0[2025-05-15 06:24:59.406]

99d080a RV1106/RV1103: Battery/Doorbell: release kmpp/rockit-ko for V1.3.2[2025-05-15 06:24:59.417]

6458e2a RV1106/RV1103: Battery/Doorbell: release kmpp/rockit-ko for V1.3.1[2025-05-15 06:24:59.417]

e8dab39 RV1106: CVR: release rga/isp/mpp for V1.1.0[2025-05-15 06:24:59.422]

a021b32 RV1106/RV1103: Battery/Doorbell: release kmpp/rockit-ko for V1.3.0[2025-05-15 06:24:59.436]

[2025-05-15 06:24:59.436]

************************ VERSION INFOS END ************************[2025-05-15 06:24:59.448]

[2025-05-15 06:24:59.448]

ID: 0, sensor_name is m00_b_sc3336 4-0030-1, iqfiles is /etc/iqfiles[2025-05-15 06:24:59.461]

XCORE:K:rk_aiq_uapi_sysctl_preInit_devBufCnt: dev_ent:rkraw_rx, buf_cnt:2[2025-05-15 06:24:59.468]

XCORE:K:AIQ run with iq bin, iq bin version: IQBIN Version: v1.0.0[2025-05-15 06:24:59.477]

IPCSERVER:K:cid[0] Process path:/tmp/UNIX.domain0, sockfd:22[2025-05-15 06:24:59.486]

XCORE:K:cid[0] rk_aiq_uapi_sysctl_init success. iq:/etc/iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json[2025-05-15 06:24:59.497]

--------------------after isp init![2025-05-15 06:24:59.505]

XCORE:K:cid[0] rk_aiq_uapi_sysctl_prepare success. mode:0 [2025-05-15 06:24:59.520]

rk_aiq_uapi2_sysctl_init/prepare succeed[2025-05-15 06:24:59.531]

CAMHW:K:cid[0] start success. isGroup:0, isOnline:1, isMultiIsp:0, init_ens:0x1bfc0ffc4739[2025-05-15 06:24:59.531]

XCORE:K:cid[0] rk_aiq_uapi_sysctl_start success.[2025-05-15 06:24:59.540]

rk_aiq_uapi2_sysctl_start succeed[2025-05-15 06:24:59.540]

--------------------after isp run![2025-05-15 06:24:59.551]

[32m[1mrockit log path (null), log_size = 0, can use export rt_log_path=, export rt_log_size= change[0m[2025-05-15 06:24:59.559]

log_file = (nil) [2025-05-15 06:24:59.571]

RTVersion        00:00:00-566 {dump              :064} ---------------------------------------------------------[2025-05-15 06:24:59.581]

[2025-05-15 06:24:59.581]

RTVersion        00:00:00-566 {dump              :065} rockit version: git-4720dc10a Tue Apr 30 15:47:55 2024 +0800[2025-05-15 06:24:59.597]

[2025-05-15 06:24:59.597]

RTVersion        00:00:00-566 {dump              :066} rockit building: built- 2024-04-30 15:53:43[2025-05-15 06:24:59.613]

[2025-05-15 06:24:59.613]

RTVersion        00:00:00-566 {dump              :067} ---------------------------------------------------------[2025-05-15 06:24:59.635]

[2025-05-15 06:24:59.635]

[32m[1mrockit default level 4, can use export rt_log_level=x, x=0,1,2,3,4,5,6 change[0m[2025-05-15 06:24:59.646]

(null)           00:00:00-567 {read_log_level    :098} text is all=4[2025-05-15 06:24:59.656]

[2025-05-15 06:24:59.656]

(null)           00:00:00-567 {read_log_level    :100} module is all, log_level is 4[2025-05-15 06:24:59.672]

[2025-05-15 06:24:59.672]

RKSockServer     00:00:00-568 {initNetServer     :088} [33m[1mbind failed, reason: Cannot assign requested address[0m[2025-05-15 06:24:59.687]

[2025-05-15 06:24:59.687]

(null)           00:00:00-570 {monitor_log_level :149} #Start monitor_log_level thread, arg:(nil)[2025-05-15 06:24:59.698]

[2025-05-15 06:24:59.698]

--------------------after rkmpi init ![2025-05-15 06:24:59.698]

vi_dev_init[2025-05-15 06:24:59.716]

RKViDev          00:00:00-573 {vi_set_dev_attr   :612} [33m[1mVI_DEV_ATTR_S all parameter reserved[0m[2025-05-15 06:24:59.732]

[2025-05-15 06:24:59.732]

RTIsp3x          00:00:00-574 {ispInitDevice     :591} [32m[1msensor name = m00_b_sc3336 4-0030-1[0m[2025-05-15 06:24:59.749]

[2025-05-15 06:24:59.749]

RTDeviceSensorV4 00:00:00-576 {ispOpenDevice     :502} [32m[1mv4l2_open(/dev/video0), handler=53[0m[2025-05-15 06:24:59.749]

[2025-05-15 06:24:59.749]

RTDeviceSensorV4 00:00:00-576 {ispOpenDevice     :502} [32m[1mv4l2_open(/dev/v4l-subdev2), handler=55[0m[2025-05-15 06:24:59.766]

[2025-05-15 06:24:59.766]

RTDeviceSensorV4 00:00:00-576 {close             :112} [32m[1mdo RTDeviceSensorV4L2 close[0m[2025-05-15 06:24:59.780]

[2025-05-15 06:24:59.780]

RTDeviceSensorV4 00:00:00-576 {close             :112} [32m[1mdo RTDeviceSensorV4L2 close[0m[2025-05-15 06:24:59.799]

[2025-05-15 06:24:59.799]

RKViChn          00:00:00-577 {prepareRuntime    :354} ---------------------------------------------------------[2025-05-15 06:24:59.816]

[2025-05-15 06:24:59.816]

RKViChn          00:00:00-577 {prepareRuntime    :356} vi version: 1.22, name:vvi[2025-05-15 06:24:59.832]

[2025-05-15 06:24:59.832]

RKViChn          00:00:00-577 {prepareRuntime    :357} rockit-ko version: vmpi:28ee389dbc33[2025-05-15 06:24:59.847]

[2025-05-15 06:24:59.847]

RKViChn          00:00:00-577 {prepareRuntime    :358} rockit-ko building: -2024-05-24-16:21:01[2025-05-15 06:24:59.847]

[2025-05-15 06:24:59.847]

RKViChn          00:00:00-577 {prepareRuntime    :359} ---------------------------------------------------------[2025-05-15 06:24:59.873]

[2025-05-15 06:24:59.873]

cmpi             00:00:00-577 {prepareRuntime    :378} [32m[1mmb pool create success, MBCnt= 2[0m[2025-05-15 06:24:59.891]

[2025-05-15 06:24:59.891]

RTIsp3x          00:00:00-578 {ispInitDevice     :591} [32m[1msensor name = m00_b_sc3336 4-0030-1[0m[2025-05-15 06:24:59.922]

[2025-05-15 06:24:59.922]

cmpi             00:00:00-579 {createRuntime     :634} [32m[1m>>>>>>>>> Sensor link info dump: <<<<<<<<<[0m[2025-05-15 06:24:59.922]

[2025-05-15 06:24:59.922]

cmpi             00:00:00-580 {createRuntime     :636} [32m[1m           vicap media name           : /dev/media0[0m[2025-05-15 06:24:59.940]

[2025-05-15 06:24:59.940]

cmpi             00:00:00-580 {createRuntime     :637} [32m[1m           vicap model name           : rkcif-mipi-lvds[0m[2025-05-15 06:24:59.940]

[2025-05-15 06:24:59.940]

cmpi             00:00:00-580 {createRuntime     :638} [32m[1m           camera id                  : 0[0m[2025-05-15 06:24:59.965]

[2025-05-15 06:24:59.965]

cmpi             00:00:00-580 {createRuntime     :639} [32m[1m           sensor name                : m00_b_sc3336 4-0030-1[0m[2025-05-15 06:24:59.982]

[2025-05-15 06:24:59.982]

cmpi             00:00:00-580 {createRuntime     :641} [32m[1m           stream_cif_mipi_id0 video name: /dev/video0[0m[2025-05-15 06:25:00.001]

[2025-05-15 06:25:00.001]

cmpi             00:00:00-580 {createRuntime     :642} [32m[1m           stream_cif_mipi_id1 video name: /dev/video1[0m[2025-05-15 06:25:00.020]

[2025-05-15 06:25:00.020]

cmpi             00:00:00-580 {createRuntime     :643} [32m[1m           stream_cif_mipi_id2 video name: /dev/video2[0m[2025-05-15 06:25:00.047]

[2025-05-15 06:25:00.047]

cmpi             00:00:00-580 {createRuntime     :644} [32m[1m           stream_cif_mipi_id3 video name: /dev/video3[0m[2025-05-15 06:25:00.047]

[2025-05-15 06:25:00.047]

cmpi             00:00:00-580 {createRuntime     :646} [32m[1m           sensor raw width           : 2304[0m[2025-05-15 06:25:00.069]

[2025-05-15 06:25:00.069]

cmpi             00:00:00-580 {createRuntime     :647} [32m[1m           sensor raw height          : 1296[0m[2025-05-15 06:25:00.069]

[2025-05-15 06:25:00.069]

cmpi             00:00:00-580 {createRuntime     :648} [32m[1m---------------------------------------------------------[0m[2025-05-15 06:25:00.090]

[2025-05-15 06:25:00.090]

cmpi             00:00:00-580 {createRuntime     :654} [32m[1m           isp media name           : /dev/media1[0m[2025-05-15 06:25:00.115]

[2025-05-15 06:25:00.115]

cmpi             00:00:00-580 {createRuntime     :655} [32m[1m           isp model name           : rkisp0[0m[2025-05-15 06:25:00.143]

[2025-05-15 06:25:00.143]

cmpi             00:00:00-580 {createRuntime     :656} [32m[1m           isp driver name          : rkisp-vir0[0m[2025-05-15 06:25:00.143]

[2025-05-15 06:25:00.143]

cmpi             00:00:00-580 {createRuntime     :657} [32m[1m           isp dev name             : /dev/v4l-subdev3[0m[2025-05-15 06:25:00.168]

[2025-05-15 06:25:00.168]

cmpi             00:00:00-581 {createRuntime     :659} [32m[1m           isp rawrd0_m_path        : /dev/video17[0m[2025-05-15 06:25:00.168]

[2025-05-15 06:25:00.168]

cmpi             00:00:00-581 {createRuntime     :660} [32m[1m           isp rawrd1_l_path        : [0m[2025-05-15 06:25:00.198]

[2025-05-15 06:25:00.198]

cmpi             00:00:00-581 {createRuntime     :661} [32m[1m           isp rawrd2_s_path        : /dev/video18[0m[2025-05-15 06:25:00.198]

[2025-05-15 06:25:00.198]

cmpi             00:00:00-581 {createRuntime     :664} [32m[1m           mainpath video name      : /dev/video11[0m[2025-05-15 06:25:00.224]

[2025-05-15 06:25:00.224]

cmpi             00:00:00-581 {createRuntime     :665} [32m[1m           selfpath video name      : /dev/video12[0m[2025-05-15 06:25:00.253]

[2025-05-15 06:25:00.253]

cmpi             00:00:00-581 {createRuntime     :666} [32m[1m           bypasspath video name    : /dev/video13[0m[2025-05-15 06:25:00.253]

[2025-05-15 06:25:00.253]

cmpi             00:00:00-581 {createRuntime     :667} [32m[1m           sensor link type         : 2[0m[2025-05-15 06:25:00.284]

[2025-05-15 06:25:00.284]

cmpi             00:00:00-581 {createRuntime     :668} [32m[1m           sensor is united         : 0[0m[2025-05-15 06:25:00.284]

[2025-05-15 06:25:00.284]

cmpi             00:00:00-581 {createRuntime     :672} [32m[1m---------------------------------------------------------[0m[2025-05-15 06:25:00.316]

[2025-05-15 06:25:00.316]

cmpi             00:00:00-581 {createRuntime     :711} [32m[1m[non-WRAP MODE]: buff size = 518400[0m[2025-05-15 06:25:00.316]

[2025-05-15 06:25:00.316]

RTIsp3x          00:00:00-583 {ispInitDevice     :591} [32m[1msensor name = m00_b_sc3336 4-0030-1[0m[2025-05-15 06:25:00.352]

[2025-05-15 06:25:00.352]

RTDeviceV4L2     00:00:00-584 {open              :137} [32m[1mcameraIndex:0, entityName:rkisp_mainpath[0m[2025-05-15 06:25:00.352]

[2025-05-15 06:25:00.352]

RTDeviceV4L2     00:00:00-584 {open              :143} [32m[1mopen video name(/dev/video11)[0m[2025-05-15 06:25:00.352]

[2025-05-15 06:25:00.352]

RKViChn          00:00:00-584 {setFrameRate      :1469} [33m[1m[vi] dev(0) ch(0) illegal param s32SrcFrameRate(0) s32DstFrameRate(0)[0m[2025-05-15 06:25:00.391]

[2025-05-15 06:25:00.391]

RTDeviceV4L2     00:00:00-584 {ispCameraInfo     :567} [33m[1mcurrent device:/dev/video11 isn't compatible(cap:0x84201000) device,memoryType:4, retry:0[0m[2025-05-15 06:25:00.391]

[2025-05-15 06:25:00.391]

RTDeviceV4L2     00:00:00-585 {ispInitFormat     :767} [32m[1mioctl VIDIOC_S_FMT OK[0m[2025-05-15 06:25:00.428]

[2025-05-15 06:25:00.428]

cmpi             00:00:00-585 {start             :1093} [32m[1m=========== vi Start startRuntime ===========[0m[2025-05-15 06:25:00.428]

[2025-05-15 06:25:00.428]

RTDeviceV4L2     00:00:00-585 {ispStreamOn       :458} [32m[1mdo ispStreamOn start[0m[2025-05-15 06:25:00.465]

[2025-05-15 06:25:00.465]

CAMHW:K:camId:0, notify_isp_stream_status on[2025-05-15 06:25:00.465]

RTDeviceV4L2     00:00:00-606 {ispStreamOn       :511} [32m[1mdo ispStreamOn done[0m[2025-05-15 06:25:00.465]

[2025-05-15 06:25:00.465]

--------------------after vi&chn init ![2025-05-15 06:25:00.465]

rv1106-user-ai version : 2025/05/15 18:21:35[2025-05-15 06:25:00.500]

app init : 172.46 ms[2025-05-15 06:25:00.500]

--------------------enter while[2025-05-15 06:25:00.500]

=== 0 ===[2025-05-15 06:25:00.500]

cmpi             00:00:00-646 {mb_get_buffer_by_i:433} [32m[1mallocated buffer(this=0x3857b8, data=(nil), size=0, id=-1)[0m[2025-05-15 06:25:00.500]

[2025-05-15 06:25:00.500]

cmpi             00:00:00-647 {getFrameRuntime   :1347} [32m[1m-------------------------------vviBuf->buf_size: 520192[0m[2025-05-15 06:25:00.534]

[2025-05-15 06:25:00.534]

after RK_MPI_VI_GetChnFrame[2025-05-15 06:25:00.534]

after RK_MPI_MB_Handle2VirAddr[2025-05-15 06:25:00.534]

=== 1 ===[2025-05-15 06:25:00.534]

inference_yolov5_model : 55.89 ms[2025-05-15 06:25:00.534]

--------------------enter while[2025-05-15 06:25:00.534]

cmpi             00:00:00-705 {mb_get_buffer_by_i:433} [32m[1mallocated buffer(this=0x384a48, data=(nil), size=0, id=-1)[0m[2025-05-15 06:25:00.572]

[2025-05-15 06:25:00.572]

cmpi             00:00:00-705 {getFrameRuntime   :1347} [32m[1m-------------------------------vviBuf->buf_size: 520192[0m[2025-05-15 06:25:00.572]

[2025-05-15 06:25:00.572]

after RK_MPI_VI_GetChnFrame[2025-05-15 06:25:00.572]

after RK_MPI_MB_Handle2VirAddr[2025-05-15 06:25:00.606]

inference_yolov5_model : 44.64 ms[2025-05-15 06:25:00.606]

--------------------enter while[2025-05-15 06:25:00.606]

after RK_MPI_VI_GetChnFrame[2025-05-15 06:25:00.606]

after RK_MPI_MB_Handle2VirAddr[2025-05-15 06:25:00.606]

inference_yolov5_model : 48.44 ms[2025-05-15 06:25:00.606]

--------------------enter while[2025-05-15 06:25:00.636]

after RK_MPI_VI_GetChnFrame[2025-05-15 06:25:00.636]

after RK_MPI_MB_Handle2VirAddr[2025-05-15 06:25:00.636]

inference_yolov5_model : 44.88 ms[2025-05-15 06:25:00.636]

--------------------enter while[2025-05-15 06:25:00.636]

after RK_MPI_VI_GetChnFrame[2025-05-15 06:25:00.636]

after RK_MPI_MB_Handle2VirAddr[2025-05-15 06:25:00.636]

inference_yolov5_model : 50.81 ms[2025-05-15 06:25:00.668]

--------------------enter while[2025-05-15 06:25:00.668]

after RK_MPI_VI_GetChnFrame[2025-05-15 06:25:00.668]

after RK_MPI_MB_Handle2VirAddr[2025-05-15 06:25:00.668]

inference_yolov5_model : 45.17 ms[2025-05-15 06:25:00.668]

2、时间分析

 

时间戳

阶段

关键事件描述

耗时/关联事件

2025-05-15 06:24:58.732

DDR初始化

DDR配置完成(DDR3 256MB,924MHz)

硬件初始化阶段

2025-05-15 06:24:58.742

U-Boot SPL启动

U-Boot SPL 2017.09-gf39aacfaa9启动

2025-05-15 06:24:58.781

U-Boot安全验证

校验MCU1、FDT、Kernel镜像(SHA256通过)

安全启动流程

2025-05-15 06:24:58.814

Kernel启动

跳转至内核(地址0x00208000)

U-Boot到Kernel总耗时84.9ms

2025-05-15 06:24:58.825

Kernel初始化

内核初始化完成(Total: 84.908/92.720 ms)

内核加载

2025-05-15 06:24:59.291

用户程序入口

--------------------enter main!

用户空间程序启动

2025-05-15 06:24:59.332

模型初始化

--------------------init model!(输入尺寸320x320x3)

2025-05-15 06:24:59.344

内存管理

--------------------Create Pool success + 帧缓冲初始化

关键资源就绪

2025-05-15 06:24:59.505

ISP驱动初始化完成

--------------------after isp init!

耗时173ms

2025-05-15 06:24:59.551

ISP运行状态

--------------------after isp run!

2025-05-15 06:24:59.698

多媒体框架初始化

--------------------after rkmpi init

Rockit框架就绪

2025-05-15 06:25:00.465

视频输入就绪

--------------------after vi&chn init(/dev/video11流启动)

VI初始化总耗时1,019ms

2025-05-15 06:25:00.500

主循环启动

--------------------enter while

应用总初始化耗时172.46ms

2025-05-15 06:25:00.534

首次推理完成

--------------------enter while + 推理耗时55.89ms

模型实时性能基准

 

3、结论

         1)上电启动到uboot加载kernel,用时93ms

         2)kernel启动到进入用户程序入口,用时461ms

         3)用户程序中加载yolov5s模型完成,用时41ms

         4)用户程序中buffer初始化完成,用时12ms

         5)用户程序中isp init完成,用时161ms

         6)用户程序中isp run完成,用时46ms

         7)用户程序中rkmpi init完成,用时147ms

         8)用户程序中vi&chn init完成,用时700ms

         9)用户程序中进入while循环,用时32ms

阶段划分

时间范围

计算方式

耗时

DDR初始化到U-Boot跳转内核

06:24:58.732 → 06:24:58.814

814ms - 732ms = 82ms

82ms

内核启动到用户程序入口

06:24:58.814 → 06:24:59.291

1,291ms - 814ms = 477ms

477ms

用户程序初始化到主循环

06:24:59.291 → 06:25:00.500

2,500ms - 1,291ms = 1,209ms

1,209ms

总计

82 + 477 + 1,209

1,768ms

 

这个启动时间接近1.8s未能达到我的预期1s内,所以还要继续优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值