//TODO: isp 架构图 libisp api: global api: rts_av_isp_init/cleanup rts_av_isp_start/stop rts_av_isp_get_status rts_av_isp_register/unregister/get_algo rts_av_isp_bind/unbind_algo rts_av_isp_register/unregister/get/check_sensor rts_av_isp_bind/unbind_sensor rts_av_isp_register_iq mipi out api: rts_av_isp_set_mipiout rts_av_isp_get_mipiout v4l2 control: rts_isp_v4l2_query_ctrl rts_isp_v4l2_query_menu rts_isp_v4l2_g_ctrl rts_isp_v4l2_s_ctrl rts_isp_v4l2_query_ext_ctrl rts_isp_v4l2_g_ext_ctrls rts_isp_v4l2_s_ext_ctrls rts_isp_v4l2_try_ext_ctrls sensor: private mask: 3A Setting: 3A Statis: IQ tuning: other: struct isp_core { struct isp_mod_hash_table hash; struct isp_notify notify; struct v4l2_ctrl_handler ctrl_handler; struct isp_statis statis; struct isp_iq iq; int initialized:1; int running:1; }; hash: hash table, 用来保存modules. notify: ctrl_hander: statis: iq: initialized: isp_core_init() 之后置 1....

2 min

Chapter 9 Low Level Protocol Features: 8-bit word size 一条 link 支持最高 4 条交替的 virtual channels frame start, frame end, line start, line end 有特殊的 packet type, pixel depth and format 有描述符 16-bit checksum 9.1 Low Level Protocol Packet Format 有short 和 long packet. 都以 SoT(Start of Transmission) 开始和 EoT(End of Transmission) 结束. 9.1.1 Low Level Protocol Long Packet Format DI: 定义了 virtual channel 和 data type, 长包的 data type 0x10~0x37....

1 min

struct rtscam_soc_dev { struct device *dev; void __iomem *base; unsigned long iostart; unsigned int iosize; int initialized; atomic_t init_count; const struct vb2_mem_ops *mem_ops; struct rtscam_sensor_fps sensor_fps; struct rtscam_video_device rvdev; struct rtscam_soc_slot_info slot_info[RTSCAM_MAX_STM_COUNT]; struct rtscam_ge_device *mem_dev; struct rtscam_ge_device *cam_dev; struct rtscam_ge_device *ctrl_dev; struct rtscam_region td_config; struct rtscam_soc_icfg icfgs[RTSCAM_YUV_MAX_STRM_NUM]; unsigned int icfg_count; struct rtscam_soc_rgbcfg rgbcfg; char name[PLATFORM_NAME_SIZE]; kernel_ulong_t devtype; struct rtscam_mem_info *rtsmem; int pause_flag; unsigned long drop_frames; unsigned long drops[RTSCAM_MAX_STM_COUNT]; int keep_user_setting; struct rtscam_subdev_t *subdev; struct rtscam_soc_video_in *video_in; }; initialized: 是否初始化....

2 min

Syntax --- title: Bank example --- classDiagram class BankAccount BankAccount : +String owner BankAccount : +Bigdecimal balance BankAccount : +deposit(amount) BankAccount : +withdrawal(amount) classDiagram class BankAccount BankAccount : +String owner BankAccount : +Bigdecimal balance BankAccount : +deposit(amount) BankAccount : +withdrawal(amount) Define a class class label classDiagram class Animal["Animal with a label"] class Car["Car with *! symbols"] Animal --> Car classDiagram class Animal["Animal with a label"] class Car["Car with *! symbols"] Animal --> Car Define members of a class classDiagram class BankAccount{ +String owner +BigDecimal balance +deposit(amount) +withdrawal(amount) } classDiagram class BankAccount{ +String owner +BigDecimal balance +deposit(amount) bool +withdrawal(amount) int } 区别 attributes 和 methods 的方法是,带()的是 methods。...

2 min

Syntax ->> 同步消息,-)异步消息。 sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later! sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later! Participants sequenceDiagram participant Alice participant Bob Bob->>Alice: Hi Alice Alice->>Bob: Hi Bob sequenceDiagram participant Alice participant Bob Bob->>Alice: Hi Alice Alice->>Bob: Hi Bob Actors actor 会有一个人物的标志。 sequenceDiagram actor Alice actor Bob Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice sequenceDiagram actor Alice actor Bob Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice Aliases sequenceDiagram participant A as Alice participant J as John A->>J: Hello John, how are you?...

2 min

Lab >>> print('Go') Go HW Q1 A Plus Abs B python3 ok -q a_plus_abs_b --local def a_plus_abs_b(a, b): if b < 0: f = sub else: f = add return f(a, b) Q2 Two of Three python3 ok -q two_of_three --local 返回三个数中最小的两个数。先取 min(i, j)得到较小的一个数,在从 min(max(i, j), k)中得到第二小的数。 def two_of_three(i, j, k): return min(i, j)**2 + min(max(i, j), k)**2 Q3 Largest Factor python3 ok -q largest_factor --local 返回能被整除的最大数。从 1 到 n 遍历,如果 n%i==0 即能够整除,返回最大值。...

1 min

Lab Q1 Short Circuiting >>> True and 13 13 >>> False or 0 0 >>> not 10 False >>> print(3) or "" # 首先会打印3,再打印“” 3 "" Q2 High-order Function ...

1 min

Lab Q1 WWPD: Lists & Ranges python3 ok -q lists-wwpd -u --local >>> list(range(3, 6)) [3,4,5,6,7,8] >>> range(3, 6) range(3,6) >>> range(4)[-1] 3 Q4 WWPD: List Comprehensions >>> [[1] + s for s in [[4], [5, 6]]] [[1, 4], [1, 5, 6]] Q8 Making Onions HW Q1 Num Eights 计算 n 中 8 出现的次数。 def num_eights(n): """Returns the number of times 8 appears as a digit of n. >>> num_eights(3) 0 >>> num_eights(8) 1 >>> num_eights(88888888) 8 >>> num_eights(2638) 1 >>> num_eights(86380) 2 >>> num_eights(12345) 0 >>> num_eights(8782089) 3 """ if n == 0: return 0 return num_eights(n // 10) + (1 if n % 10 == 8 else 0) Q2 Digit Distance 递归计算 n 各位差的总和。...

4 min

Lab HW Q2 Deep map

1 min

Lab 检查所有得分: python3 ok --score --local Q1: WWPD: List-Mutation python3 ok -q list-mutation -u --local >>> s = [9, 7, 8] >>> a, b = s, s[:] # s[:] 是 s 的浅拷贝 >>> s = [3] >>> s.extend([4, 5]) >>> a [9, 7, 8] 注意在 s 重新赋值后, a 和 s 不指向同一位置了. 初始状态: s —-> [9,7,8] a —-> [9,7,8] (和 s 指向同一个对象) b —-> [9,7,8] (独立的副本) 执行 s = [3] 后: s —-> [3] a —-> [9,7,8] (保持不变) b —-> [9,7,8] (保持不变)...

6 min