KDocs 研发资料库
  • 手表穿戴技术应用文档入口汇总
  • JL707N穿戴客述问题FAQ
  • 彩屏仓 硬件开发指南 与 量产作业流程规范
  • 彩屏仓 AC98N和JL701烧录升级注意事项
  • JL707 硬件开发资料
  • JL707 手表硬件设计注意事项 总结
  • 穿戴生产烧录OTA和key文件添加使用说明
  • JL707N-入门到进阶开发指导文档
  • 彩屏仓982相关
  • 彩屏仓耳机介绍
  • 杰理701_707双屏demo介绍
  • 707电子吧唧开发资料
  • GPIO相关
  • UART串口相关
  • SPI相关
  • nandflash相关
  • norflash相关
  • IIC相关
  • PWM相关
  • SD卡相关
  • 定时器TIMER
  • 文件系统接口设计说明文档
  • 音视频录像开发流程
  • rdec编码器
  • 穿戴功耗数据标准
  • 手表蓝牙开发文档
  • 701蓝牙PAN联网demo
  • BLE开发使用说明
  • 701手表2.0.0版本SDK EQ在线调试和离线调试方法 V1.1
  • JL707 手表喇叭输出声音大小评估方法 V1.0
  • JL707 手表音频EQ调试方法 V1.0
  • AC707N 手表通话写卡 软件配置方法
  • 录音功能
  • 701手表2.X.X系列SDK调试EQ配置方法及音频调试技巧V1.1
  • 701手表104版本SDK EQ在线调试和离线调试方法 V1.1
  • mic2dac示例
  • P11 SensorHub相关
  • 手表升级操作文档
  • AC707NGPU
  • DBI模块介绍
  • GPU模块介绍
  • 701N屏幕驱动配置说明
  • 701N_UI编辑工具用户手册
  • 支付宝资料
  • 支付宝硬件接入资料
  • 支付宝乘车码接入资料
  • CAT1 接入文档
  • 701N_WATCH_CAT1开发说明
  • Findmy功能
  • music模式相关
  • 707电池曲线
  • 707N内置FLASH挂载FAT文件系统251112_v1.2
  • AC707N_本地视频播放demo(AVI-MJPEG-PCM)
  • 光波导屏幕调试
  • 耳机研发和生产流程 指南
  • 707-NandFlash 代码和UI资源独立烧录方案
  • 彩屏仓时间同步补丁
  • 彩屏仓抖音点赞移植
  • 707LVGLv8双屏开发
  • 707N蓝牙互传图传demo
  • AVIPCM数据流接入AIVOICE
  • Flash分区操作demo
  • 手表发射问题
  • 701_707 双备份升级DEMO
  • 707_乘车码刷码失败问题_共性

AC707NGPU

📎 原始文档:https://www.kdocs.cn/l/cl029LtB92Jeimageimageimageimageimageimage 目录
01 GPU 功能简介
Introduction to GPU Functions

image
02
GPU 驱动接口
GPU driver interface
image
03
GPU 驱动管理
GPU driver management

image 04
GPU 驱动移植
GPU driver porting

01 GPU 功能简介

Introduction to GPU Functions

  1. 基于指令链表,减少CPU开销,渲染性能 1pixel/cycle;
  2. 高密度指令集,减少内存开销;
  3. 支持仿射变换(2D) 、透视变换(2. 5D),采用变换矩阵进行控制;
  4. 支持多种颜色格式输入( 19种) /输出( 6种) ;
  5. 支持多种压缩方式,可灵活选择大小优先/性能优先;
  6. 支持多种混合模式,灵活处理前景、背景透明度计算;
  7. 支持颜色格式大小端(bpp<8 or RGB565)或 RED-BULE交换;
  8. 支持mask、线性渐变填充、纹理裁剪等功能;
  9. 支持非连续数据(采用mmu tab表)输入;
  10. 支持直接从SRAM/ PSRAM、 NORFLASH存储介质读取数据;
  11. 支持GPU断点指令功能,允许在GPU任务链运行中中断、恢复;
  12. 支持colorkey、 dither 拓展功能等 … …
    01 GPU 功能简介

Introduction to GPU Functions

Ø MASK 不支持变换,线性渐变填充只有透视变换。

功能定义
纯色填充GPU_FILL
纯色填充+MASKGPU_FILL_MASK
纯色填充+仿射变换GPU_FILL_AFFINE
纯色填充+透视变换GPU_FILL_PERSPECTIVE
线性渐变填充GPU_LINEGRAD
线性渐变填充+透视变换GPU_LINEGRAD_PERSPECTIVE
纹理填充GPU_TEXTURE
纹理填充+MASKGPU_TEXTURE_MASK
纹理填充+仿射变换GPU_TEXTURE_AFFINE
纹理填充+透视变换GPU_TEXTURE_PERSPECTIVE

01 GPU 功能简介

Introduction to GPU Functions

Ø GPU 支持的输入颜色格式
image

ARGB8888L8
ARGB8565L4
ARGB1555L2
ARGB4444L1
RGB888A8
RGB565A4
YUV422_BT601A2
YUV422_BT709A1
AL88
AL44
AL22

01 GPU 功能简介

Introduction to GPU Functions

Ø GPU 颜色表查找格式,需通过颜色表进行扩展
image

ARGB8888L8
ARGB8565L4
ARGB1555L2
ARGB4444L1
RGB888A8
RGB565A4
YUV422_BT601A2
YUV422_BT709A1
AL88
AL44
AL22

01 GPU 功能简介

Introduction to GPU Functions

Ø GPU 颜色表格式
image

ARGB8888L8
ARGB8565L4
ARGB1555L2
ARGB4444L1
RGB888A8
RGB565A4
YUV422_BT601A2
YUV422_BT709A1
AL88
AL44
AL22

01 GPU 功能简介

Introduction to GPU Functions

Ø MASK 功能支持的颜色格式
image

ARGB8888L8
ARGB8565L4
ARGB1555L2
ARGB4444L1
RGB888A8
RGB565A4
YUV422_BT601A2
YUV422_BT709A1
AL88
AL44
AL22

01 GPU 功能简介

Introduction to GPU Functions

Ø GPU 输出支持的颜色格式

image

ARGB8888L8
ARGB8565L4
ARGB1555L2
ARGB4444L1
RGB888A8
RGB565A4
YUV422_BT601A2
YUV422_BT709A1
AL88
AL44
AL22

image 01 GPU 功能简介
Introduction to GPU Functions

混合模式定义计算公式
GPU_BLEND_SRCa_out = a_fgc_out = c_fg
GPU_BLEND_SRC_OVERa_out = a_fg + ( 1 - a_fg) * a_bgc_out = c_fg + ( 1 - a_fg) * c_bg
GPU_BLEND_DST_OUTa_out = ( 1 - a_fg) * a_bgc_out = ( 1 - a_fg) * c_bg
GPU_BLEND_DST_INa_out = a_fg * a_bgc_out = a_fg * c_bg
GPU_BLEND_MAXa_out = MAX( a_fg , a_bg)c_out = c_bg
GPU_BLEND_DST_OVERa_out = ( 1 - a_bg) * a_fg + a_bgc_out = ( 1 - a_bg) * c_fg + c_bg
GPU_BLEND_SRC_OUTa_out = ( 1 - a_bg) * a_fgc_out = ( 1 - a_bg) * c_fg
GPU_BLEND_SRC_INa_out = a_bg * a_fgc_out = a_bg * c_fg

注: fg:前景; bg:后景; out:输出; a: alpha; c: color; src前景; dst 后景;

02 GPU 驱动接口

GPU driver interface

注意:GPU 驱动API分两层,本节介绍直接配置GPU寄存器的底层接口,一般情况下
不直接调用本层接口,下节《 GPU 驱动管理》介绍GPU驱动管理层接口。
Ø 在未了解接口功能与逻辑前提下,禁止底层驱动API与驱动管理层API混用!

02

GPU 驱动接口
GPU driver interface
image DBI模块为707n系列芯片硬件推屏模块,驱动设计与701n类似,不同点在于:

  1. 开始推屏时,用 lcd_set_draw_area 设置本次推屏的整个区域即可,无需每次推屏都设置推屏区域;2. 分块推屏时,第一块使用 lcd_draw_kistart 接口启动,之后使用 lcd_draw_continue 接口续传。
    Ø 可参考 gpu_task. c 推屏逻辑, lcd_xxx 前缀API的调用。
    02

GPU 驱动接口

GPU driver interface
image gp不同值不jlgp
转换源格中,
image // 杰理UI工具数据格式定义
enum {​
PIXEL_FMT_ARGB8888 ,PIXEL_FMT_ARGB8565 ,PIXEL_FMT_ARGB1555 ,PIXEL_FMT_ARGB4444 ,PIXEL_FMT_RGB888 ,PIXEL_FMT_RGB565 ,PIXEL_FMT_AL88 ,PIXEL_FMT_AL44 ,PIXEL_FMT_AL22 ,PIXEL_FMT_L8 ,PIXEL_FMT_L4 ,PIXEL_FMT_L2 ,PIXEL_FMT_L1 ,PIXEL_FMT_A8 ,PIXEL_FMT_A4 ,PIXEL_FMT_A2 ,PIXEL_FMT_A1 ,PIXEL_FMT_JPEG ,
PIXEL_FMT_GIF ,​} ;
image // 杰理GPU数据格式定义
typedef enum {​GPU_FORMAT_ARGB8888=0x00 ,GPU_FORMAT_ARGB8565=0x01 , //out
GPU_FORMAT_ARGB1555=0x02 ,GPU_FORMAT_ARGB4444=0x03 ,GPU_FORMAT_RGB888=0x04 ,GPU_FORMAT_RGB565=0x05 , //out
GPU_FORMAT_YUV422_BT601=0x06 ,GPU_FORMAT_YUV422_BT709=0x07 ,GPU_FORMAT_AL88=0x08 ,GPU_FORMAT_AL44=0x10 ,GPU_FORMAT_AL22=0x11 ,GPU_FORMAT_L8=0x12 ,GPU_FORMAT_L4=0x13 ,GPU_FORMAT_L2=0x14 ,
GPU_FORMAT_L1=0x15 ,
GPU_FORMAT_A8=0x16 , //outGPU_FORMAT_A4=0x17 , //out ,GPU_FORMAT_A2=0x18 , //out ,GPU_FORMAT_A1=0x19 , //out ,​} GPU_format_t;
02

GPU 驱动接口

GPU driver interface
image jlgpu_driver. h 是GPU驱动底层API ,包含两套驱动代码,其中:
Ø gpu_xxx 前缀的API使用时内部自动生成一条GPU任务链,但该任务链仅支持创建和执行,不支持搜索、修改等功能,若UI框架为串行执行,或UI框架每次调度GPU都必须等GPU执行完毕时可用此接口;
Ø gpu_task_xxx 前缀的API仅对GPU任务单元进行操作,需外部管理GPU任务链等内容。
image 02

GPU 驱动接口

GPU driver interface
image jlgpu_driver. h 是GPU驱动底层API ,包含两套驱动代码,其中:
Ø gpu_xxx 前缀的API使用时内部自动生成一条GPU任务链,但该任务链仅支持创建和执行,不支持搜索、修改等功能,若UI框架为串行执行,或UI框架每次调度GPU都必须等GPU执行完毕时可用此接口;
Ø gpu_task_xxx 前缀的API仅对GPU任务单元进行操作,需外部管理GPU任务链等内容。
image 02
U d i i f
imageimage 02

GPU 驱动接口

GPU driver inte f
image 02

GPU 驱动接口

GPU driver interface
image jlgpu_math. h提供一些矩阵计算接口,常用的有:
Ø gpu_matrix_set_identity 设置矩阵为单位矩阵;
Ø gpu_matrix_translate 设置矩阵平移;
Ø gpu_matrix_scale 设置矩阵缩放;
Ø gpu_matrix_rotate 设置矩阵旋转;
Ø gpu_matrix_get_boundbox 获取方框经矩阵变换后的位置大小。

02 GPU 驱动接口

GPU driver interface

  1. 变换矩阵遵从先缩放、后旋转、再平移的计算顺序,但矩阵计算模块是通过左乘的方式实现矩阵效果叠加的,因此在调用API进行矩阵计算时,API调用顺序应为:先平移、后旋转、再缩
    放。

02 GPU 驱动接口

GPU driver interface

  1. 变换矩阵遵从先缩放、后旋转、再平移的计算顺序,但矩阵计算模块是通过左乘的方式实现矩阵效果叠加的,因此在调用API进行矩阵计算时,API调用顺序应为:先平移、后旋转、再缩放。
  2. 矩阵乘法不满足交换律,因此计算的先后顺序会影响计算结果:AB ! = BA
  3. 矩阵乘法满足结合率,因此不同的元素可以叠加同一个变换效果: (AB) C = A ( BC)
  4. 变换矩阵都是相对于0坐标点进行计算,可理解为需告诉GPU如何才能将元素移到坐标0点,因此计算平移、缩放、旋转时需有不同的注意点:
    ① 缩放时,因为元素本身是在坐标0点,因此缩放无需平移,只需配置缩放系数即可;
    ② 旋转时,需先将旋转中心移到坐标0点,再进行旋转计算,旋转计算完毕后需再将元素顶点移回坐标0点;
    ③ 平移时,可以理解为通过矩阵告诉GPU如何将元素移动到坐标系0点,因此平移参数为负数。
    02 GPU 驱动接口
    GPU driver interface
    Ø 矩阵作用在空间上:
    l 平移时,平移参数与目标位置相反,将元素平移到( x, y)坐标位置:
    gpu_matrix_translate( matrix, -x, -y) ;
    l 旋转时,旋转中心为( cx, cy) ,旋转角度为angle,需将角度转为弧度:{​
    gpu_matrix_translate( matrix, -cx, -cy) ;
    gpu_matrix_rotate( matrix, RADIAN(angle));
    gpu_matrix_translate( matrix, cx, xy) ;
    ​}
    l 缩放时,将元素宽、高都缩小到0 . 5倍,在空间角度看,是将空间放大2倍:gpu_matrix_scale( matrix, 1/ 0.5 , 1/ 0.5 ) ;
    03
    GPU 驱动管理
    GPU driver management
    image jlgpu_port. h 是在 jlgpu_driver. h 基础上增加的 GPU 任务管理模块,包含:
    Ø GPU 模块开关;
    Ø GPU 任务操作;
    Ø GPU 任务链操作;
    Ø 通过 ID 操作GPU任务;
    Ø GPU 多任务链管理。

03

GPU 驱动管理

GPU driver management
image typedef struct gpu_mult_list {​struct list_head list;pJLGPUTask Head_t head ;struct rect win_rect;
struct rect gpu_rect;
struct rect lcd_rect;u8 index;​} JLGPUMultTask List_t , * pJLGPUMultTask List_t;
image /* GPU task chain head structur defined /typedef struct gpu_task_head {​gpu_out_params_t out_param; // GPU output instructions structure .void * gpu_task_base_adr; // First GPU task instructions address .​} JLGPUTask Head_t , * pJLGPUTask Head_t;
image /* GPU task unit structure defined. */typedef struct gpu_task_unit {​JLGPUTask Info_t info; // GPU task information structure .u32 task_addr; // GPU task instructions address .​} JLGPUTask Unit_t , * pJLGPUTask Unit_t;
image 03

GPU 驱动管理

GPU driver management

image /* GPU task information structure defined. Cache required , resources must be saved. */typedef struct gpu_task_info {​
u32 task_id; // 任务ID
u32 element_id; // 控件ID
u32 own_matrix : 1; // 矩阵是否属于自己标志(1自己申请的矩阵, 0继承的父控件矩阵)
u32 priority : 31; // 优先级
u8 *cl ut_tab ; // 颜色表
gpu_matrix_t matrix; // 当前任务的变换矩阵
pJLGPUTask Draw_t d raw_info; // custom draw
u32 enable; // GPU task enable, must 32bit
u16 image_width ;u16 image_height;u16 tab_size;u8 face;​} JLGPUTask Info_t , * pJLGPUTask Info_t;
/
GPU task unit structure defined. /typedef struct gpu_task_unit {​JLGPUTask Info_t info; // GPU task information structure .u32 task_addr; // GPU task instructions address .​} JLGPUTask Unit_t , * pJLGPUTask Unit_t;
imageimage /
GPU task information structure defined. Cache required , resources must be saved. */
typedef struct gpu_task_info {​u32 task_id; // 任务ID
u32 element_id; // 控件ID
u32 own_matrix : 1; // 矩阵是否属于自己标志(1自己申请的矩阵, 0继承的父控件矩阵)
u32 priority : 31; // 优先级
u8 *cl ut_tab ; // 颜色表
gpu_matrix_t *matrix; // 当前任务的变换矩阵
pJLGPUTask Draw_t d raw_info; // custom draw
u32 enable; // GPU task enable, must 32bit
u16 image_width ;u16 image_height;u16 tab_size;u8 face;​} JLGPUTask Info_t , * pJLGPUTask Info_t;
image // 自定义绘图回调
typedef structgpu_task_draw {​void (*cb_func)(int id , u8 *dst_buf , struct rect *dst_r , struct rect *src_r , u8bytes_per_pixel , void * priv , void matrix ) ;void (cb_exit )(voidpriv ) ;voidpriv;intpriv_len;intdraw_id;structrecttask_r;​} JLGPUTask Draw_t , * pJLGPUTask Draw_t;
imageimage 03

GPU 驱动管理

GPU driver man g n

image 03

GPU 理

GPU
image 03

GPU 驱动管理

GPU driver management

image x
y
UI 框架窗口
从坐标系0点开始,到屏幕宽高
image x
imageimage y
GPU 绘图窗口
通过 jlgpu_get_win_rect 获取

03 GPU 驱动管理

GPU driver management

l 每条任务链可以设置一个输出区域,通过 jlgpu_set_task_list_out_buf 接口配置,设置任务链输出区域时只需配置 UI 框架的窗口,底层会自动映射到 GPU 绘图窗口。
l area 一般指父控件的绘制框定区域,使用接口jlgpu_get_task_rect 获取。如果父控件无GPU任务,则需将UI框架的父控件区域通过 jlgpu_shift_rect 映射到 GPU 绘图区域内。否则由于元素绘制区域不在父控件区域内,则无法绘制。
l draw 指元素在UI框架中的绘制区域,底层会自动根据变换矩阵等情况映射到 GPU 绘图区域内。
l crop 指元素裁剪出来的区域,需将元素放到坐标系0点进行计算

03

GPU 驱动管理

GPU driver management

image GPU 任务链输出窗口
image area
image darw
l draw 在 area 内,正常显示
GPU 任务链输出窗口
area
imageimageimageimage darw
l draw 不在 area 内,不能显示
03

GPU 驱动管理

GPU driver management

image GPU 任务链输出窗口
image area
image darw
l 父控件有 GPU 任务jlgpu_get_task_rect 获取 area
image GPU 任务链输出窗口
image area
image darw
l 父控件无 GPU 任务jlgpu_shift_rect 映射 area
03

GPU 驱动管理

GPU driver management

image crop_left0
crop
crop_top
image crop_width
image x
crop_height
image (width, height)
纹理放在坐标系0点,宽高为(width, height)裁剪区域计算为:
crop = {​
. left = crop_left,
.top = crop_top,
.width = crop_width,
. height = crop_height,
​}
需将 crop_en 使能才能启用裁剪功能
imageimage y
03

GPU 驱动管理

GPU driver management

l get_rect_align 将纹理在控件范围内进行对齐(上、中、下,左、中、右) ;
• rect 控件区域
• img 纹理,该纹理只需设置宽高,无需设置left、 top,对齐后自动赋值
• hori_align 水平方向对齐方式
• vert_align 垂直方向对齐方式
l get_rect_cover 获取方框的重叠区域;
• a 控件区域
• b 纹理绘制区域
• c 控件与纹理重叠区域
l get_rect_crop 获取图片的裁剪区域;
• draw 纹理绘制区域
• img 纹理实际区域
• crop 纹理裁剪区域
image 03

GPU 驱动管理

GPU driver management

例:
一个纹理( 80x80) ,控件位置( 20 , 20 , 50 , 50) ,水平、垂直方向均选择居中对齐。此时纹理比图片大,需对纹理进行裁剪显示,计算方法为:
image structrectimg , rect;
/* 先不用配置纹理left ,top,根据对齐方式自动计算 */
img.width =80;img.height =80;
// 控件位置区域
rect . left =20;
rect .top =20;
rect .width =50;rect .width =50;
image // 通过对齐计算纹理应该绘制的区域
get_rect_align(&rect , & img , HORI_ALIGN_CENTER ,VERT_ALIGN_CENTER) ;
// 输出 img = {​ 5 , 5 , 80 , 80​}
// 通过重叠区域计算纹理需绘制的区域
structrectdraw;get_rect_cover(&rect , & img , & draw) ;
// 输出 draw = {​ 20 , 20 , 50 , 50​},赋值给 task_param . draw// 通过裁剪计算纹理裁剪区域
structrectcrop;
get_rect_crop(& draw , & img , &crop) ;
// 输出 crop = {​ 15 , 15 , 50 , 50​},赋值给 task_param . crop
03

GPU 驱动管理

GPU driver management

image task_head 0
jlgpu_create_task_list_head创建一个GPU任务链头
image 03

GPU 驱动管理

GPU driver management

image (cmuommltlisnt组) task_head 0
jlgpu_mult_task_list_add
将任务链头添加到多任务链管理模块
image 03

GPU 驱动管理

GPU driver management
image mult_list
(common组)
image task_head 0
task_unit 0
image jlgpu_update_task_by_id
创建GPU任务并添加到 head 0 任务链中
03

GPU 驱动管理

GPU driver management
image mult_list
(common组)
image task_head 0
task_unit 0
task_unit 1
image jlgpu_update_task_by_id
创建GPU任务并添加到 head 0 任务链中
03

GPU 驱动管理

GPU driver management
image mult_list
(common组)
image task_head 0
image task_unit 0
imageimage task_unit 1
imageimage … …
imageimageimage jlgpu_update_task_by_id
直到 task_head 0任务链最后一个任务
03

GPU 驱动管理

GPU driver management

image mult_list
(common组)
task_head 0 task_head 1

task_unit 0

task_unit 1

… …
imageimage 同样:
jlgpu_create_task_list_head创建任务链1jlgpu_mult_task_list_add
将任务链1添加到多任务管理模块
03

GPU 驱动管理

GPU driver management

image mult_list
(common组)
task_head 0 task_head 1

task_unit 0 task_unit 0

task_unit 1 … …

… …
imageimage jlgpu_update_task_by_id创建GPU任务并添加到 head 1
03

GPU 驱动管理

GPU driver management

image mult_list
(common组)
task_head 0 task_head 1 … …

同样方式创建第N条任务链
task_unit 0 task_unit 0

task_unit 1 … …

… …
imageimage 03
GPU 驱动管理
GPU driver management
(cmuommltlisnt组) task_head 0 task_head 1 … …

task_unit 0 task_unit 0

task_unit 1 … …

… …
imageimage task_head0
image mult_list
(shadow组)
imageimage task_unit 0
imageimage task_unit 1
imageimage … …
imageimage task_head
1
imageimage task_unit 0
image … …
imageimageimage … …
image UI框架和GPU双任务并行时, jlgpu_scheduler GPU调度模块负责将 common 组和 shadow 组来回切换并启动GPU合成,实现一组配置,一组合成。

04

GPU 驱动移植

GPU driver porting

imageimage 04

GPU 驱动移植

GPU driver porting

voidjlgpu_scheduler_init (void*(*malloc)(int , u32 , u32) , void (free)(void , u32 , u32) , u16 lcd_width ,

u16 lcd_height ){​lcd_draw_set_callback(lcd_flush_finish_cb);// 设置lcd推屏结束回调
jlgpu_module_init (malloc , free , lcd_width , lcd_height ) ;// 初始化GPU模块
this->mult_list=jlgpu_mult_task_list_get_common_root();// 获取common组多任务管理
task_create(jlgpu_task , NULL , GPU_TASK_NAME) ;// 创建GPU任务
/* 创建同步信号量 /
os_sem_create(& this->gpu_sem , 1 ) ;os_sem_create(& this->lcd_te_sem , 1 ) ;os_sem_create(& this->buffer_sem , 1 ) ;
/
初始化标志 /
this->has_init=true;
/
默认开异步刷新 */
this->redraw_mode = GPU_ASYN_REDRAW;​}voidjlgpu_scheduler_free(){​jlgpu_module_free(); this->has_init=false;​}

image 4
GP
GPU

U 驱动移植

driver porting

imageimage 04

GPU 驱动移植

GPU driver porting

imageimage 04

GPU 驱动移植

GPU driver porting

image

04 GPU 驱动移植

GPU driver porting

移植GPU驱动几个基本步骤,以下流程运行如果正常,则GPU驱动已能正常运行,之后再调整其它逻辑完善 UI 框架与 GPU 之间的调度逻辑。

  1. 启动GPU模块: jlgpu_module_init
  2. 创建GPU任务链: jlgpu_create_task_list_head
  3. 设置GPU任务链输出格式: jlgpu_set_task_list_out_format
  4. 添加GPU任务(先用GPU_FILL测试) : jlgpu_update_task_by_id
  5. 设置GPU任务链输出buf和输出区域: jlgpu_set_task_list_out_buf
  6. 执行GPU任务链: jlgpu_task_list_run
  7. 确认步骤5设置的buf中得到希望输出的结果,至此GPU模块已运行起来。
Prev
手表升级操作文档
Next
DBI模块介绍