PCIe CPU ========== 对于ä¸æ–¹ä¾¿ä½¿ç”¨ TPU åŠ é€Ÿçš„æ“ä½œï¼Œéœ€è¦ CPU é…åˆæ¥å®Œæˆã€‚ 如果是 SoC 模å¼ï¼Œhost端å³ä¸ºç‰‡ä¸Šçš„ARM A53处ç†å™¨ï¼Œç”±å®ƒæ¥å®ŒæˆCPUæ“作。 如果是 PCIe 模å¼ï¼Œhost端为用户的主机,CPU æ“作å¯ä»¥é€‰æ‹©åœ¨host端完æˆï¼Œä¹Ÿå¯ä»¥ä½¿ç”¨ç‰‡ä¸Šçš„ARM A53处ç†å™¨æ¥å®Œæˆã€‚两ç§å®žçŽ°æ–¹å¼å„有优缺点:å‰è€…需è¦åœ¨deviceå’Œhost之间æ¬è¿è¾“入输出数æ®ï¼Œä½†è¿ç®—性能å¯èƒ½ä¼˜äºŽARM,所以用户å¯ä»¥æ ¹æ®è‡ªèº«host处ç†å™¨æ€§èƒ½ã€è´Ÿè½½ç‰å®žé™…情况选择最优的方å¼ã€‚默认情况下为å‰è€…,如果需è¦ä½¿ç”¨ç‰‡ä¸Šå¤„ç†å™¨å¯æŒ‰ç…§ä»¥ä¸‹æ–¹å¼å¼€å¯ã€‚ 准备工作 ________ 如果è¦ä½¿èƒ½ç‰‡ä¸Šå¤„ç†å™¨ï¼Œé‚£ä¹ˆéœ€è¦ä»¥ä¸‹ä¸¤ä¸ªæ–‡ä»¶ï¼š * ramboot_rootfs.itb * fip.bin 需è¦å°†è¿™ä¸¤ä¸ªæ–‡ä»¶æ‰€åœ¨çš„路径设置到程åºè¿è¡Œçš„环境å˜é‡ BMCV_CPU_KERNEL_PATH ä¸ï¼Œ 如下: $ export BMCV_CPU_KERNEL_PATH=/path/to/kernel_fils/ BMCV所有需è¦CPUæ“作的实现å‡åœ¨åº“ libbmcv_cpu_func.so ä¸ï¼Œéœ€è¦å°†è¯¥æ–‡ä»¶æ‰€åœ¨è·¯å¾„æ·»åŠ åˆ°ç¨‹åºè¿è¡Œçš„环境å˜é‡ BMCV_CPU_LIB_PATH ä¸ï¼Œå¦‚下: $ export BMCV_CPU_LIB_PATH=/path/to/lib/ ç›®å‰éœ€è¦CPUå‚与实现的API如下所示,如果没有使用以下APIå¯å¿½ç•¥è¯¥åŠŸèƒ½ã€‚ +-----+-----------------------------------+ | num | API | +=====+===================================+ | 1 | bmcv_image_draw_lines | +-----+-----------------------------------+ | 2 | bmcv_image_erode | +-----+-----------------------------------+ | 3 | bmcv_image_dilate | +-----+-----------------------------------+ | 4 | bmcv_image_lkpyramid_execute | +-----+-----------------------------------+ | 5 | bmcv_image_morph | +-----+-----------------------------------+ å¼€å¯å’Œå…³é— ___________ 用户å¯ä»¥åœ¨ç¨‹åºçš„开始结æŸå¤„分别使用以下两个接å£ï¼Œå³å¯åˆ†åˆ«å®žçŽ°è¯¥åŠŸèƒ½çš„å¼€å¯å’Œå…³é—。 .. code-block:: c bm_status_t bmcv_open_cpu_process(bm_handle_t handle); bm_status_t bmcv_close_cpu_process(bm_handle_t handle); **ä¼ å…¥å‚数说明:** * bm_handle_t handle 输入å‚数。 bm_handle å¥æŸ„。 **返回值说明:** * BM_SUCCESS: æˆåŠŸ * 其他:失败