lickfox picomax 编译 rkipc

简介

ikipc是picomax SDK 的主要摄像头程序,对摄像头开发有比较打的参考价值。

文件目录结构

rkipc/
├── Makefile # 主Makefile build.sh就是调用它进行编译
└── rkipc # rkipc的主要代码
    ├── CMakeLists.txt # 主要调用这个生成真正的Makefile来编译
    ├── common
    │   ├── common.c
    │   ├── common.h
    │   ├── event
    │   │   ├── event.c
    │   │   └── event.h
    │   ├── isp
    │   │   ├── rk3588
    │   │   ├── rv1106
    │   │   └── rv1126
    │   ├── ivm
    │   │   ├── event.c
    │   │   ├── event.h
    │   │   ├── face_landmark5.data
    │   │   ├── ivm_dependent.h
    │   │   └── object_detection_ipc.data
    │   ├── log.h
    │   ├── network
    │   │   ├── gbk_to_utf8.c
    │   │   ├── gbk_to_utf8.h
    │   │   ├── Hostapd.c
    │   │   ├── Hostapd.h
    │   │   ├── net_main_test
    │   │   ├── network.c
    │   │   ├── network.h
    │   │   ├── ntp.c
    │   │   ├── ntp.h
    │   │   ├── RK_encode.c
    │   │   ├── RK_encode.h
    │   │   ├── Rk_softap.h
    │   │   ├── Rk_wifi.c
    │   │   ├── Rk_wifi.h
    │   │   ├── slog.h
    │   │   ├── utf8_to_gbk.c
    │   │   ├── utf8_to_gbk.h
    │   │   ├── utility.c
    │   │   ├── utility.h
    │   │   └── wpa_ctrl.h
    │   ├── osd
    │   │   ├── bmp_reader.c
    │   │   ├── bmp_reader.h
    │   │   ├── color_table.c
    │   │   ├── color_table.h
    │   │   ├── draw_paint.c
    │   │   ├── draw_paint.h
    │   │   ├── font_factory.c
    │   │   ├── font_factory.h
    │   │   ├── image.bmp
    │   │   ├── osd.c
    │   │   ├── osd_common.h
    │   │   ├── osd.h
    │   │   ├── simsun_cn_3000.ttf
    │   │   ├── simsun_cn.ttc
    │   │   └── simsun_en.ttf
    │   ├── param
    │   │   ├── dictionary.c
    │   │   ├── dictionary.h
    │   │   ├── iniparser.c
    │   │   ├── iniparser.h
    │   │   ├── param.c
    │   │   └── param.h
    │   ├── region_clip
    │   │   ├── region_clip.c
    │   │   └── region_clip.h
    │   ├── rockiva
    │   │   ├── rockiva.c
    │   │   └── rockiva.h
    │   ├── roi
    │   │   ├── roi.c
    │   │   └── roi.h
    │   ├── rtmp
    │   │   ├── rtmp.c
    │   │   └── rtmp.h
    │   ├── socket_server
    │   │   ├── server.c
    │   │   ├── server.h
    │   │   ├── socket.c
    │   │   └── socket.h
    │   ├── speaker_test.wav
    │   ├── storage
    │   │   ├── storage.c
    │   │   └── storage.h
    │   ├── system
    │   │   ├── system.c
    │   │   └── system.h
    │   ├── sysutil
    │   │   ├── iio.c
    │   │   ├── iio.h
    │   │   ├── rk_adc.c
    │   │   ├── rk_adc.h
    │   │   ├── rk_sysfs.c
    │   │   └── rk_sysfs.h
    │   ├── tuya_ipc
    │   │   ├── 4.1.1
    │   │   └── 5.5.29
    │   └── vendor_storage
    │       ├── vendor_storage.c
    │       └── vendor_storage.h
    ├── docs # 文档
    │   ├── resources
    │   │   └── rkipc-framework.png
    │   └── Rockchip_Developer_Guide_Linux_RKIPC_CN.md # 主要参考
    ├── format.sh
    ├── lib
    │   ├── aarch64-rockchip1031-linux-gnu
    │   │   └── libwpa_client.so
    │   ├── arm-rockchip830-linux-gnueabihf
    │   │   ├── libivm_share.so
    │   │   ├── libmbedtls.a
    │   │   ├── librknn_api.so
    │   │   ├── libtuya_ipc.a
    │   │   └── libwpa_client.so
    │   └── arm-rockchip830-linux-uclibcgnueabihf
    │       ├── libtuya_iot.a
    │       └── libwpa_client.so
    ├── LICENSE
    └── src # 各个产品线的代码,这里只列出rv1106_ipc的
        ....
        ├── rv1106_ipc
        │   ├── audio
        │   ├── CMakeLists.txt
        │   ├── main.c
        │   ├── rkipc-300w.ini
        │   ├── rkipc-400w.ini
        │   ├── rkipc-500w.ini
        │   ├── RkLunch.sh
        │   ├── RkLunch-stop.sh
        │   └── video
        ...

编译

Makefile中最重要的是

rkipc-build:
	@echo "RK_APP_CHIP is $(RK_APP_CHIP)"
	@echo "RK_APP_TYPE is $(RK_APP_TYPE)"
	rm -rf $(PKG_BIN) $(PKG_BUILD); \
	mkdir -p $(PKG_BIN);
	mkdir -p $(PKG_BUILD);
	pushd $(PKG_BUILD)/; \
		rm -rf CMakeCache.txt; \
		cmake $(CURRENT_DIR)/$(PKG_NAME)/ \
			-DCMAKE_C_COMPILER=$(RK_APP_CROSS)-gcc \
			-DCMAKE_CXX_COMPILER=$(RK_APP_CROSS)-g++ \
			-DCMAKE_INSTALL_PREFIX="$(CURRENT_DIR)/$(PKG_BIN)" \
			-DCMAKE_COLOR_MAKEFILE=OFF \
			-DCMAKE_SYSTEM_NAME=Linux \
			$(RK_RKIPC_CONFIG) \
			$(PKG_CONF_OPTS) ;\
			make -j$(RK_APP_JOBS) || exit -1; \
			make install; \
	popd;
	$(call MAROC_COPY_PKG_TO_APP_OUTPUT, $(RK_APP_OUTPUT), $(PKG_BIN))

在log里面

RK_APP_CHIP is rv1106
RK_APP_TYPE is RKIPC_RV1106
...
DCOMPILE_FOR_RV1106_IPC=ON

在rkipc/CMakeLists.txt中

if(COMPILE_FOR_RV1106_IPC)
  add_subdirectory(src/rv1106_ipc)
endif()

会把src/rv1106_ipc加进去编译。
然后就是删除创建目录,对每个文件进行编译,链接最后生成相应的可执行文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值