0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

openharmony代码注释 加注释方式是怎样的

独爱72H 来源:DoNews、CSDN 作者:DoNews、CSDN 2021-06-23 09:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

OpenHarmony是由基金会孵化及运营的开源项目,由基金会的OpenHarmony项目群工作委员会负责运作,遵循Apache 2.0等开源协议,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台。

OpenHarmony 2.0 自主研发,不兼容安卓。众多开发合作伙伴将以开源社区为中心,分阶段快速迭代,不断完善系统能力,逐步构建起面向万物互联时代的OpenHarmony生态。在全球范围内有兴趣、有需要的组织和个人都可以基于开源项目的章程参与OpenHarmony开源项目,实现共商、共建、共享、共赢。

openharmony加注释方式是怎样的?

鸿蒙内核6W+代码量,本身只有很少的注释, 中文注解以不对原有代码侵入为前提,源码所有英文部分都是原有鸿蒙注释,所有中文部分都是笔者的注释,尽量不去增加代码的行数,不破坏文件的结构,注释多类似以下的方式,笔者试图把每个知识点当场讲透彻。另外用字符画了一些图方便理解,直接嵌入到头文件中,比如虚拟内存的全景图,因没有这些图是很难理解内存是如何管理的,后续还会陆续加入更多的图方便理解。

精读内核源码当然是件很困难的事,时间上要以月为单位,但正因为很难才值得去做! 内心不渴望的永远不可能靠近自己。笔者一直坚信兴趣是最好的老师,加注也是在做自己感兴趣的事。如果能让更多人参与到内核的研究,减少学习的成本,哪怕就节省一天的时间,这么多人能节省多少时间, 这是件多好玩,多有意义的事情啊。

时代需要仰望星空的人,但也需要埋头走路的人, 从鸿蒙一行行的代码中笔者能深深体会到各中艰辛和坚持,及时鸿蒙对未来的价值,只因心中有目标,就不怕道阻且长。

本文整合自 DoNews、CSDN

责任编辑:fqj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73155
  • 注释
    +关注

    关注

    0

    文章

    11

    浏览量

    6665
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    69349
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    E203内核移植到FPGA开发板时出现时序违例的解决方式

    在移植内核时,用VIVADO进行综合实现后会出现时序违例,如图: 虽然可以上板正常进行开发,但是还是想把这些违例解决下^_^ 检查后,发现是 apb_adv_timer 这条路径报的违例,解决方式
    发表于 10-27 07:32

    蜂鸟E203乘法器代码注释

    // Use booth-4 algorithm to conduct the multiplication计算部分积 /*** wire [32:0] part_prdt_hi_r; //高位信息(即操作数相加后从dpath返回的信息) wire [32:0] part_prdt_lo_r;//低位信息(即需要右移的信息,参见蜂鸟书中153页图右移1位下面的框) wire [32:0] part_prdt_hi_nxt; //更新后的高低位信息 wire [32:0] part_prdt_lo_nxt; wire part_prdt_sft1_r; wire [2:0] booth_code = cycle_0th? {muldiv_i_rs1[1:0],1\'b0} // cycle0低位补0,高位补符号位,取后三位作为编码 : cycle_16th ? {mul_rs1_sign,part_prdt_lo_r[0],part_prdt_sft1_r} //周期结束,根据Booth算法补符号位与最后的低位信息 : {part_prdt_lo_r[1:0],part_prdt_sft1_r}; //取后两位并补低位形成3位boothcode //booth_code == 3\'b000 =0参考booth算法编码表 //booth_code == 3\'b001 =1 //booth_code == 3\'b010 =1 //booth_code == 3\'b011 =2 //booth_code == 3\'b100 = -2 //booth_code == 3\'b101 = -1 //booth_code == 3\'b110 = -1 //booth_code == 3\'b111 = -0 wire booth_sel_zero = (booth_code == 3\'b000) | (booth_code == 3\'b111); wire booth_sel_two= (booth_code == 3\'b011) | (booth_code == 3\'b100); wire booth_sel_one= (~booth_sel_zero) & (~booth_sel_two); wire booth_sel_sub= booth_code[2]; // 35 bits adder needed乘法中加减法操作数生成 wire [`E203_MULDIV_ADDER_WIDTH-1:0] mul_exe_alu_res = muldiv_req_alu_res; //取出返回值也即高位数值 wire [`E203_MULDIV_ADDER_WIDTH-1:0] mul_exe_alu_op2 = ({`E203_MULDIV_ADDER_WIDTH{booth_sel_zero}} & `E203_MULDIV_ADDER_WIDTH\'b0)//0*数=0 | ({`E203_MULDIV_ADDER_WIDTH{booth_sel_one }} & {mul_rs2_sign,mul_rs2_sign,mul_rs2_sign,muldiv_i_rs2}) //数字不变,仅符号拓展 | ({`E203_MULDIV_ADDER_WIDTH{booth_sel_two }} & {mul_rs2_sign,mul_rs2_sign,muldiv_i_rs2,1\'b0}) //2则左移一位,符号位不变 ; wire [`E203_MULDIV_ADDER_WIDTH-1:0] mul_exe_alu_op1 =//cycle0时,装入全0,后面填入乘数,参加蜂鸟书中153页部分积指向加法器的线路 cycle_0th ? `E203_MULDIV_ADDER_WIDTH\'b0 : {part_prdt_hi_r[32],part_prdt_hi_r[32],part_prdt_hi_r}; wire mul_exe_alu_add = (~booth_sel_sub);//dpath指示信号生成 wire mul_exe_alu_sub = booth_sel_sub; wire mul_exe_alu_mul = cycle_0th? 1\'b0 //周期结束信号 : cycle_16th ? 1\'b1 : 1\'b0; assign part_prdt_hi_nxt = mul_exe_alu_res[34:2]; //下一个部分积, 传入dpath保存 assign part_prdt_lo_nxt = {mul_exe_alu_res[1:0], //同理,只不过每次右移两位 (cycle_0th ? {mul_rs1_sign,muldiv_i_rs1[31:2]} : part_prdt_lo_r[32:2]) }; wire part_prdt_sft1_nxt = cycle_0th ? muldiv_i_rs1[1] : part_prdt_lo_r[1]; //设muldiv_i_rs1=10,首先在后面补0,此时为100,这样muldiv_i_rs1[1]即为右移两位后的末位,part同理 wire mul_exe_cnt_set = exec_cnt_set & i_op_mul; //控制最后一位的更新 wire mul_exe_cnt_inc = exec_cnt_inc & i_op_mul; wire part_prdt_hi_ena = mul_exe_cnt_set | mul_exe_cnt_inc | state_exec_exit_ena;//使能信号,控制传入dpath进行更新,dpath会传回最新的乘积信息 wire part_prdt_lo_ena = part_prdt_hi_ena; sirv_gnrl_dfflr #(1) part_prdt_sft1_dfflr (part_prdt_lo_ena, part_prdt_sft1_nxt, part_prdt_sft1_r, clk, rst_n); // This mul_res is not back2back case, so directly from the adder result若不是back2back情况,可以直接取出,Booth编码运算后最终结果取[32:1] wire[`E203_XLEN-1:0] mul_res = i_mul ? part_prdt_lo_r[32:1] : mul_exe_alu_res[31:0];
    发表于 10-22 07:11

    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例

    本文介绍OpenHarmony开源鸿蒙系统的USB控制传输功能实现及相关代码示例,基于触觉智能RK3576开发板PurplePiOH2演示。OpenHarmony的USB通信介绍实现
    的头像 发表于 09-30 16:31 1224次阅读
    触觉智能RK3576开发板<b class='flag-5'>OpenHarmony</b>开源鸿蒙系统USB控制传输功能示例

    两款搭载KaihongOS的开鸿开发板被评为“OpenHarmony 明星开发板”

    OpenHarmony
    深开鸿
    发布于 :2025年09月11日 10:10:02

    企业和个人基于业务知识和代码库增强的大模型生成代码实践

    :“这个功能之前做过类似的,你参考下历史代码。”可当他打开代码仓库,却发现注释寥寥,变量名像密码一样难懂,更找不到任何需求文档。他硬着头皮修改,结果上线后引发了线上故障——原来有个隐藏的业务规则,只有老员工才知道。 第二周:
    的头像 发表于 07-08 15:31 336次阅读
    企业和个人基于业务知识和<b class='flag-5'>代码</b>库增强的大模型生成<b class='flag-5'>代码</b>实践

    请问下,openharmony支持哪一款龙芯的开发板?有没有开源的龙芯的openharmony源码?

    想买个2k0300的开发板学习龙芯和openharmony,愣是没有看到提供openharmony源码的,也没与看到开源的代码。gitee上,openharmony的龙芯sig仓库也是
    发表于 04-26 13:06

    有几个关于MCUXpresso深色主题(模式)设置的问题求解

    我有几个关于 MCUXpresso 深色主题(模式)设置的问题。 请参阅附件。 我想修改 C 代码注释颜色和用于在项目资源管理器中突出显示源文件的颜色。 这些在哪里发生了变化?
    发表于 03-20 06:04

    STM32CUBEide有没有像KEIL一样可以自己指定函数注释模板的方法?

    最近从keil转到CUBEIDE编程了,现在非常不舒服的一点是函数注释方面。STM32CUBEide有没有像KEIL一样可以自己指定函数注释模板的方法,可以注释函数形参啊、函数返回值说明的方法
    发表于 03-11 08:06

    stm32cubemx 6.13.0(win)版本生成代码中文注释乱码怎么解决?

    stm32cubemx 6.13.0(win)版本生成代码中文注释乱码
    发表于 03-11 07:10

    深入HarmonyOS NEXT开发中的ArkData操作SQLite数据库

    大家好,我是 V 哥。今天给大家整理的内容是关于鸿蒙 NEXT 开发中使用 ArkData 操作 SQLite 数据库的详细介绍,从入门到精通,包含案例代码注释,帮助小白快速入门到提升。先赞后看,家财万贯。
    的头像 发表于 03-07 10:55 785次阅读

    DLP4710LC开发模块数据的加载方式怎样的?

    您好,最近购买了贵司的DLP4710LC开发模块,我了解到其有32位输入数据总线,我想知道数据的加载方式怎样的,就是这32位数据总线是如何控制1920×1080个像素的,他的工作流程是怎样的,相关资料有吗,谢谢。
    发表于 02-20 06:51

    是德InfiniiVision 3000X系列示波器添加注释功能 #是德科技 #示波器使用教程

    示波器
    安泰仪器维修
    发布于 :2025年02月17日 15:54:46

    CS4228该如何跟TUSB3200相连接?

    设备。在EVM2的Demo中,我已经将CS4228相关的代码注释掉了,程序也跑起来了(根据Led灯来调试,UART口不知道如何使用,希望知道的人这一点也指点一下我)。但是就是弹出来“无法识别的USB设备
    发表于 02-14 08:22

    OpenHarmony程序分析框架论文入选ICSE 2025

      近日,ICSE 2025软件工程实践Track放榜,面向OpenAtom OpenHarmony(以下简称“OpenHarmony”)的ArkTS程序分析基础框架--方舟程序分析器(论文题目为
    的头像 发表于 01-02 13:41 1858次阅读
    <b class='flag-5'>OpenHarmony</b>程序分析框架论文入选ICSE 2025

    STM32CubeMX生成的代码,是怎样的HAL架构?

    需要注意,CubeMX只是一个初始化工具,它只是帮你完成了HAL库外设和时钟的初始化,具体程序的编写还需要查阅HAL库的说明,使用相关函数实现你想实现的功能。CubeMX生成的代码包含了丰富的注释
    的头像 发表于 01-01 21:01 1245次阅读
    STM32CubeMX生成的<b class='flag-5'>代码</b>,是<b class='flag-5'>怎样</b>的HAL架构?