GCC精彩之旅_1

本文详细介绍了GCC编译器的工作原理及使用技巧,包括编译流程、代码优化、警告提示和库依赖等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明: 本文共两篇,转自GCC精彩之旅 。第一篇着重介绍GCC编译一个程序的过程与优化,第二篇侧重在GCC结合GDB对代码的调试。

 在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。
    开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段:
  ◆ 预处理(Pre-Processing)
  ◆ 编译(Compiling)
  ◆ 汇编(Assembling)
  ◆ 链接(Linking)
    Linux程序员可以根据自己的需要让GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。
    GCC提供了30多条警告信息和三个警告级别,使用它们有助于增强程序的稳定性和可移植性。此外,GCC还对标准的C和C++语言进行了大量的扩展,提高程序的执行效率,有助于编译器进行代码优化,能够减轻编程的工作量。


GCC起步
    在学习使用GCC之前,下面的这个例子能够帮助用户迅速理解GCC的工作原理,并将其立即运用到实际的项目开发中去。首先用熟悉的编辑器输入清单1所示的代码:
    清单1:hello.c

#include
int main(void)
{
        printf ("Hello world, Linux programming!\n");
        return 0;
}
 

    然后执行下面的命令编译和运行这段程序:

# gcc hello.c -o hello
# ./hello
Hello world, Linux programming!
 

    从程序员的角度看,只需简单地执行一条GCC命令就可以了,但从编译器的角度来看,却需要完成一系列非常繁杂的工作。首先,GCC需要调用预处理程序cpp,由它负责展开在源文件中定义的宏,并向其中插入“#include”语句所包含的内容;接着,GCC会调用ccl和as将处理后的源代码编译成目标代码;最后,GCC会调用链接程序ld,把生成的目标代码链接成一个可执行程序。
    为了更好地理解GCC的工作过程,可以把上述编译过程分成几个步骤单独进行,并观察每步的运行结果。第一步是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:

#  gcc -E hello.c -o hello.i
 

    此时若查看hello.cpp文件中的内容,会发现stdio.h的内容确实都插到文件里去了,而其它应当被预处理的宏定义也都做了相应的处理。下一步是将hello.i编译为目标代码,这可以通过使用-c参数来完成:

#  gcc -c hello.i -o hello.o
 

    GCC默认将.i文件看成是预处理后的C语言源代码,因此上述命令将自动跳过预处理步骤而开始执行编译过程,也可以使用-x参数让GCC从指定的步骤开始编译。最后一步是将生成的目标文件链接成可执行文件:

#  gcc hello.o -o hello
 

    在采用模块化的设计思想进行软件开发时,通常整个程序是由多个源文件组成的,相应地也就形成了多个编译单元,使用GCC能够很好地管理这些编译单元。假设有一个由foo1.c和foo2.c两个源文件组成的程序,为了对它们进行编译,并最终生成可执行程序foo,可以使用下面这条命令:

#  gcc foo1.c foo2.c -o foo
 

    如果同时处理的文件不止一个,GCC仍然会按照预处理、编译和链接的过程依次进行。如果深究起来,上面这条命令大致相当于依次执行如下三条命令:

# gcc -c foo1.c -o foo1.o
# gcc -c foo2.c -o foo2.o
# gcc foo1.o foo2.o -o foo
 

    在编译一个包含许多源文件的工程时,若只用一条GCC命令来完成编译是非常浪费时间的。假设项目中有100个源文件需要编译,并且每个源文件中都包含10000行代码,如果像上面那样仅用一条GCC命令来完成编译工作,那么GCC需要将每个源文件都重新编译一遍,然后再全部连接起来。很显然,这样浪费的时间相当多,尤其是当用户只是修改了其中某一个文件的时候,完全没有必要将每个文件都重新编译一遍,因为很多已经生成的目标文件是不会改变的。要解决这个问题,关键是要灵活运用GCC,同时还要借助像Make这样的工具。


警告提示功能 
    GCC包含完整的出错检查和警告提示功能,它们可以帮助Linux程序员写出更加专业和优美的代码。先来读读清单2所示的程序,这段代码写得很糟糕,仔细检查一下不难挑出很多毛病:
    ◆main函数的返回值被声明为void,但实际上应该是int;
    ◆使用了GNU语法扩展,即使用long long来声明64位整数,不符合ANSI/ISO C语言标准;
    ◆main函数在终止前没有调用return语句。
    清单2:illcode.c

#include
void main(void)
{
  long long int var = 1;
  printf("It is not standard C code!\n");
}
 

    下面来看看GCC是如何帮助程序员来发现这些错误的。当GCC在编译不符合ANSI/ISO C语言标准的源代码时,如果加上了-pedantic选项,那么使用了扩展语法的地方将产生相应的警告信息:

# gcc -pedantic illcode.c -o illcode
illcode.c: In function `main':
illcode.c:9: ISO C89 does not support `long long'
illcode.c:8: return type of `main' is not `int'
 

    需要注意的是,-pedantic编译选项并不能保证被编译程序与ANSI/ISO C标准的完全兼容,它仅仅只能用来帮助Linux程序员离这个目标越来越近。或者换句话说,-pedantic选项能够帮助程序员发现一些不符合ANSI/ISO C标准的代码,但不是全部,事实上只有ANSI/ISO C语言标准中要求进行编译器诊断的那些情况,才有可能被GCC发现并提出警告。
    除了-pedantic之外,GCC还有一些其它编译选项也能够产生有用的警告信息。这些选项大多以-W开头,其中最有价值的当数-Wall了,使用它能够使GCC产生尽可能多的警告信息:

# gcc -Wall illcode.c -o illcode
illcode.c:8: warning: return type of `main' is not `int'
illcode.c: In function `main':
illcode.c:9: warning: unused variable `var'
 

    GCC给出的警告信息虽然从严格意义上说不能算作是错误,但却很可能成为错误的栖身之所。一个优秀的Linux程序员应该尽量避免产生警告信息,使自己的代码始终保持简洁、优美和健壮的特性。
    在处理警告方面,另一个常用的编译选项是-Werror,它要求GCC将所有的警告当成错误进行处理,这在使用自动编译工具(如Make等)时非常有用。如果编译时带上-Werror选项,那么GCC会在所有产生警告的地方停止编译,迫使程序员对自己的代码进行修改。只有当相应的警告信息消除时,才可能将编译过程继续朝前推进。执行情况如下:

# gcc -Wall -Werror illcode.c -o illcode
cc1: warnings being treated as errors
illcode.c:8: warning: return type of `main' is not `int'
illcode.c: In function `main':
illcode.c:9: warning: unused variable `var'
 

    对Linux程序员来讲,GCC给出的警告信息是很有价值的,它们不仅可以帮助程序员写出更加健壮的程序,而且还是跟踪和调试程序的有力工具。建议在用GCC编译源代码时始终带上-Wall选项,并把它逐渐培养成为一种习惯,这对找出常见的隐式编程错误很有帮助。

 库依赖
    在Linux下开发软件时,完全不使用第三方函数库的情况是比较少见的,通常来讲都需要借助一个或多个函数库的支持才能够完成相应的功能。从程序员的角度看,函数库实际上就是一些头文件(.h)和库文件(.so或者.a)的集合。虽然Linux下的大多数函数都默认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下,但并不是所有的情况都是这样。正因如此,GCC在编译时必须有自己的办法来查找所需要的头文件和库文件。
    GCC采用搜索目录的办法来查找所需要的文件,-I选项可以向GCC的头文件搜索路径中添加新的目录。例如,如果在/home/xiaowp/include/目录下有编译时所需要的头文件,为了让GCC能够顺利地找到它们,就可以使用-I选项:

# gcc foo.c -I /home/xiaowp/include -o foo
 

    同样,如果使用了不在标准位置的库文件,那么可以通过-L选项向GCC的库文件搜索路径中添加新的目录。例如,如果在/home/xiaowp/lib/目录下有链接时所需要的库文件libfoo.so,为了让GCC能够顺利地找到它,可以使用下面的命令:             

# gcc foo.c -L /home/xiaowp/lib -lfoo -o foo


    值得好好解释一下的是-l选项,它指示GCC去连接库文件libfoo.so。Linux下的库文件在命名时有一个约定,那就是应该以lib三个字母开头,由于所有的库文件都遵循了同样的规范,因此在用-l选项指定链接的库文件名时可以省去lib三个字母,也就是说GCC在对-lfoo进行处理时,会自动去链接名为libfoo.so的文件。

    Linux下的库文件分为两大类分别是动态链接库(通常以.so结尾)和静态链接库(通常以.a结尾),两者的差别仅在程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。默认情况下,GCC在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库,如果需要的话可以在编译时加上-static选项,强制使用静态链接库。例如,如果在/home/xiaowp/lib/目录下有链接时所需要的库文件libfoo.so和libfoo.a,为了让GCC在链接时只用到静态链接库,可以使用下面的命令:

# gcc foo.c -L /home/xiaowp/lib -static -lfoo -o foo
 

代码优化
    代码优化指的是编译器通过分析源代码,找出其中尚未达到最优的部分,然后对其重新进行组合,目的是改善程序的执行性能。GCC提供的代码优化功能非常强大,它通过编译选项-On来控制优化代码的生成,其中n是一个代表优化级别的整数。对于不同版本的GCC来讲,n的取值范围及其对应的优化效果可能并不完全相同,比较典型的范围是从0变化到2或3。
    编译时使用选项-O可以告诉GCC同时减小代码的长度和执行时间,其效果等价于-O1。在这一级别上能够进行的优化类型虽然取决于目标处理器,但一般都会包括线程跳转(Thread Jump)和延迟退栈(Deferred Stack Pops)两种优化。选项-O2告诉GCC除了完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等。选项-O3则除了完成所有-O2级别的优化之外,还包括循环展开和其它一些与处理器特性相关的优化工作。通常来说,数字越大优化的等级越高,同时也就意味着程序的运行速度越快。许多Linux程序员都喜欢使用-O2选项,因为它在优化长度、编译时间和代码大小之间,取得了一个比较理想的平衡点。
    下面通过具体实例来感受一下GCC的代码优化功能,所用程序如清单3所示。
    清单3:optimize.c

#include
int main(void)
{
  double counter;
  double result;
  double temp;
  for (counter = 0;
   counter < 2000.0 * 2000.0 * 2000.0  / 20.0 + 2020;
   counter += (5 - 1) / 4) {
    temp = counter / 1979;
    result  = counter;   
  }
  printf("Result is %lf\n", result);
  return 0;
}
 

    首先不加任何优化选项进行编译:

# gcc -Wall optimize.c -o optimize
 

    借助Linux提供的time命令,可以大致统计出该程序在运行时所需要的时间:

# time ./optimize
Result is 400002019.000000
real    0m14.942s
user    0m14.940s
sys     0m0.000s
 

    接下去使用优化选项来对代码进行优化处理:

# gcc -Wall -O optimize.c -o optimize
 

    在同样的条件下再次测试一下运行时间:

# time ./optimize
Result is 400002019.000000
real    0m3.256s
user    0m3.240s
sys     0m0.000s
 

    对比两次执行的输出结果不难看出,程序的性能的确得到了很大幅度的改善,由原来的14秒缩短到了3秒。这个例子是专门针对GCC的优化功能而设计的,因此优化前后程序的执行速度发生了很大的改变。尽管GCC的代码优化功能非常强大,但作为一名优秀的Linux程序员,首先还是要力求能够手工编写出高质量的代码。如果编写的代码简短,并且逻辑性强,编译器就不会做更多的工作,甚至根本用不着优化。
    优化虽然能够给程序带来更好的执行性能,但在如下一些场合中应该避免优化代码:
    ◆ 程序开发的时候 优化等级越高,消耗在编译上的时间就越长,因此在开发的时候最好不要使用优化选项,只有到软件发行或开发结束的时候,才考虑对最终生成的代码进行优化。
    ◆ 资源受限的时候 一些优化选项会增加可执行代码的体积,如果程序在运行时能够申请到的内存资源非常紧张(如一些实时嵌入式设备),那就不要对代码进行优化,因为由这带来的负面影响可能会产生非常严重的后果。
    ◆ 跟踪调试的时候 在对代码进行优化的时候,某些代码可能会被删除或改写,或者为了取得更佳的性能而进行重组,从而使跟踪和调试变得异常困难。

转载于:https://www.cnblogs.com/space-place/p/8109457.html

# clock.sh info list Clock Ref Flags cam_cc_bps_clk 0 0x0 cam_cc_spdm_bps_clk 0 0x0 cam_cc_bps_axi_clk 0 0x0 cam_cc_camnoc_axi_clk 1 0x0 cam_cc_ife_0_axi_clk 1 0x0 cam_cc_ife_1_axi_clk 1 0x0 cam_cc_ife_2_axi_clk 1 0x0 cam_cc_ife_3_axi_clk 1 0x0 cam_cc_ipe_0_axi_clk 0 0x0 cam_cc_ipe_1_axi_clk 0 0x0 cam_cc_cci_0_clk 2 0x0 cam_cc_cci_1_clk 2 0x0 cam_cc_cci_2_clk 2 0x0 cam_cc_cci_3_clk 1 0x0 cam_cc_csiphy0_clk 1 0x0 cam_cc_csiphy1_clk 1 0x0 cam_cc_csiphy2_clk 1 0x0 cam_cc_csiphy3_clk 1 0x0 cam_cc_ife_0_cphy_rx_clk 1 0x0 cam_cc_ife_1_cphy_rx_clk 1 0x0 cam_cc_ife_2_cphy_rx_clk 1 0x0 cam_cc_ife_3_cphy_rx_clk 1 0x0 cam_cc_ife_lite_0_cphy_rx_clk 1 0x0 cam_cc_ife_lite_1_cphy_rx_clk 1 0x0 cam_cc_ife_lite_2_cphy_rx_clk 1 0x0 cam_cc_ife_lite_3_cphy_rx_clk 1 0x0 cam_cc_csi0phytimer_clk 1 0x0 cam_cc_csi1phytimer_clk 1 0x0 cam_cc_csi2phytimer_clk 1 0x0 cam_cc_csi3phytimer_clk 1 0x0 cam_cc_debug_clk 0 0x0 cam_cc_bps_areg_clk 0 0x0 cam_cc_ipe_0_areg_clk 0 0x0 cam_cc_ipe_1_areg_clk 0 0x0 cam_cc_icp_clk 0 0x0 cam_cc_ife_0_atspeedreg_clk 0 0x0 cam_cc_ife_0_clk 1 0x0 cam_cc_ife_0_dsp_clk 1 0x0 cam_cc_spdm_ife_0_clk 1 0x0 cam_cc_ife_0_csid_clk 1 0x0 cam_cc_spdm_ife_0_csid_clk 1 0x0 cam_cc_ife_1_atspeedreg_clk 0 0x0 cam_cc_ife_1_clk 1 0x0 cam_cc_ife_1_dsp_clk 1 0x0 cam_cc_spdm_ife_1_clk 0 0x0 cam_cc_ife_1_csid_clk 1 0x0 cam_cc_spdm_ife_1_csid_clk 0 0x0 cam_cc_ife_2_atspeedreg_clk 0 0x0 cam_cc_ife_2_clk 1 0x0 cam_cc_ife_2_dsp_clk 1 0x0 cam_cc_spdm_ife_2_clk 0 0x0 cam_cc_ife_2_csid_clk 1 0x0 cam_cc_spdm_ife_2_csid_clk 0 0x0 cam_cc_ife_3_atspeedreg_clk 0 0x0 cam_cc_ife_3_clk 1 0x0 cam_cc_ife_3_dsp_clk 1 0x0 cam_cc_spdm_ife_3_clk 0 0x0 cam_cc_ife_3_csid_clk 1 0x0 cam_cc_spdm_ife_3_csid_clk 0 0x0 cam_cc_ife_lite_0_clk 1 0x0 cam_cc_ife_lite_0_csid_clk 1 0x0 cam_cc_ife_lite_1_clk 1 0x0 cam_cc_ife_lite_1_csid_clk 1 0x0 cam_cc_ife_lite_2_clk 1 0x0 cam_cc_ife_lite_2_csid_clk 1 0x0 cam_cc_ife_lite_3_clk 1 0x0 cam_cc_ife_lite_3_csid_clk 1 0x0 cam_cc_ipe_0_clk 0 0x0 cam_cc_ipe_1_clk 0 0x0 cam_cc_spdm_ipe_0_clk 0 0x0 cam_cc_spdm_ipe_1_clk 0 0x0 cam_cc_jpeg_clk 0 0x0 cam_cc_spdm_jpeg_clk 0 0x0 cam_cc_lrme_clk 1 0x0 cam_cc_mclk0_clk 0 0x0 cam_cc_mclk1_clk 0 0x0 cam_cc_mclk2_clk 0 0x0 cam_cc_mclk3_clk 0 0x0 cam_cc_mclk4_clk 0 0x0 cam_cc_mclk5_clk 0 0x0 cam_cc_mclk6_clk 0 0x0 cam_cc_mclk7_clk 0 0x0 cam_cc_pll_test_clk 0 0x0 cam_cc_qdss_debug_clk 1 0x0 cam_cc_sleep_clk 0 0x0 cam_cc_bps_ahb_clk 0 0x0 cam_cc_core_ahb_clk 1 0x0 cam_cc_cpas_ahb_clk 4 0x0 cam_cc_icp_ahb_clk 0 0x0 cam_cc_ipe_0_ahb_clk 0 0x0 cam_cc_ipe_1_ahb_clk 0 0x0 cam_cc_sm_obs_clk 0 0x0 cam_cc_camnoc_dcd_xo_clk 1 0x0 cam_cc_gdsc_clk 0 0x0 cam_cc_pll_lock_monitor_clk 0 0x0 cam_cc_qdss_debug_xo_clk 1 0x0 mdss_0_disp_cc_mdss_ahb1_clk 0 0x0 mdss_0_disp_cc_mdss_ahb_clk 1 0x0 mdss_0_disp_cc_mdss_non_gdsc_ahb_clk 1 0x0 mdss_0_disp_cc_mdss_rscc_ahb_clk 0 0x0 mdss_0_disp_cc_mdss_byte0_clk 1 0x0 mdss_0_disp_cc_mdss_byte0_intf_clk 1 0x0 mdss_0_disp_cc_mdss_byte1_clk 1 0x0 mdss_0_disp_cc_mdss_byte1_intf_clk 1 0x0 mdss_0_disp_cc_mdss_dptx0_aux_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_dp_crypto_clk 0 0x0 mdss_0_disp_cc_mdss_dptx0_link_clk 1 0x0 mdss_0_disp_cc_mdss_dptx0_link_intf_clk 1 0x0 mdss_0_disp_cc_mdss_dptx0_usb_router_link_intf_clk 0 0x0 mdss_0_disp_cc_mdss_dptx0_pixel0_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_dp_pixel_clk 0 0x0 mdss_0_disp_cc_mdss_dptx0_pixel1_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_dp_pixel1_clk 0 0x0 mdss_0_disp_cc_mdss_dptx1_aux_clk 1 0x0 mdss_0_disp_cc_mdss_dptx1_link_clk 1 0x0 mdss_0_disp_cc_mdss_dptx1_link_intf_clk 1 0x0 mdss_0_disp_cc_mdss_dptx1_usb_router_link_intf_clk 0 0x0 mdss_0_disp_cc_mdss_dptx1_pixel0_clk 1 0x0 mdss_0_disp_cc_mdss_dptx1_pixel1_clk 1 0x0 mdss_0_disp_cc_mdss_dptx2_aux_clk 1 0x0 mdss_0_disp_cc_mdss_dptx2_link_clk 1 0x0 mdss_0_disp_cc_mdss_dptx2_link_intf_clk 1 0x0 mdss_0_disp_cc_mdss_dptx2_pixel0_clk 1 0x0 mdss_0_disp_cc_mdss_dptx2_pixel1_clk 1 0x0 mdss_0_disp_cc_mdss_dptx3_aux_clk 1 0x0 mdss_0_disp_cc_mdss_dptx3_link_clk 1 0x0 mdss_0_disp_cc_mdss_dptx3_link_intf_clk 1 0x0 mdss_0_disp_cc_mdss_dptx3_pixel0_clk 1 0x0 mdss_0_disp_cc_mdss_esc0_clk 1 0x0 mdss_0_disp_cc_mdss_esc1_clk 1 0x0 mdss_0_disp_cc_mdss_mdp1_clk 0 0x0 mdss_0_disp_cc_mdss_mdp_clk 1 0x0 mdss_0_disp_cc_mdss_mdp_lut1_clk 0 0x0 mdss_0_disp_cc_mdss_mdp_lut_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_mdp_clk 0 0x0 mdss_0_disp_cc_mdss_pclk0_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_pclk0_clk 0 0x0 mdss_0_disp_cc_mdss_pclk1_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_pclk1_clk 0 0x0 mdss_0_disp_cc_mdss_rot1_clk 0 0x0 mdss_0_disp_cc_mdss_rot_clk 1 0x0 mdss_0_disp_cc_mdss_spdm_rot_clk 0 0x0 mdss_0_disp_cc_mdss_rscc_vsync_clk 1 0x0 mdss_0_disp_cc_mdss_vsync1_clk 0 0x0 mdss_0_disp_cc_mdss_vsync_clk 1 0x0 mdss_0_disp_cc_pll_test_clk 0 0x0 mdss_0_disp_cc_sleep_clk 0 0x0 mdss_0_disp_cc_sm_obs_clk 0 0x0 mdss_0_disp_cc_mdss_pll_lock_monitor_clk 0 0x0 mdss_0_disp_cc_xo_clk 0 0x0 mdss_1_disp_cc_mdss_ahb1_clk 0 0x0 mdss_1_disp_cc_mdss_ahb_clk 0 0x0 mdss_1_disp_cc_mdss_non_gdsc_ahb_clk 0 0x0 mdss_1_disp_cc_mdss_rscc_ahb_clk 0 0x0 mdss_1_disp_cc_mdss_byte0_clk 0 0x0 mdss_1_disp_cc_mdss_byte0_intf_clk 0 0x0 mdss_1_disp_cc_mdss_byte1_clk 0 0x0 mdss_1_disp_cc_mdss_byte1_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx0_aux_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_dp_crypto_clk 0 0x0 mdss_1_disp_cc_mdss_dptx0_link_clk 0 0x0 mdss_1_disp_cc_mdss_dptx0_link_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx0_usb_router_link_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx0_pixel0_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_dp_pixel_clk 0 0x0 mdss_1_disp_cc_mdss_dptx0_pixel1_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_dp_pixel1_clk 0 0x0 mdss_1_disp_cc_mdss_dptx1_aux_clk 0 0x0 mdss_1_disp_cc_mdss_dptx1_link_clk 0 0x0 mdss_1_disp_cc_mdss_dptx1_link_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx1_usb_router_link_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx1_pixel0_clk 0 0x0 mdss_1_disp_cc_mdss_dptx1_pixel1_clk 0 0x0 mdss_1_disp_cc_mdss_dptx2_aux_clk 0 0x0 mdss_1_disp_cc_mdss_dptx2_link_clk 0 0x0 mdss_1_disp_cc_mdss_dptx2_link_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx2_pixel0_clk 0 0x0 mdss_1_disp_cc_mdss_dptx2_pixel1_clk 0 0x0 mdss_1_disp_cc_mdss_dptx3_aux_clk 0 0x0 mdss_1_disp_cc_mdss_dptx3_link_clk 0 0x0 mdss_1_disp_cc_mdss_dptx3_link_intf_clk 0 0x0 mdss_1_disp_cc_mdss_dptx3_pixel0_clk 0 0x0 mdss_1_disp_cc_mdss_esc0_clk 0 0x0 mdss_1_disp_cc_mdss_esc1_clk 0 0x0 mdss_1_disp_cc_mdss_mdp1_clk 0 0x0 mdss_1_disp_cc_mdss_mdp_clk 0 0x0 mdss_1_disp_cc_mdss_mdp_lut1_clk 0 0x0 mdss_1_disp_cc_mdss_mdp_lut_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_mdp_clk 0 0x0 mdss_1_disp_cc_mdss_pclk0_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_pclk0_clk 0 0x0 mdss_1_disp_cc_mdss_pclk1_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_pclk1_clk 0 0x0 mdss_1_disp_cc_mdss_rot1_clk 0 0x0 mdss_1_disp_cc_mdss_rot_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_rot_clk 0 0x0 mdss_1_disp_cc_mdss_rscc_vsync_clk 0 0x0 mdss_1_disp_cc_mdss_vsync1_clk 0 0x0 mdss_1_disp_cc_mdss_vsync_clk 0 0x0 mdss_1_disp_cc_pll_test_clk 0 0x0 mdss_1_disp_cc_sleep_clk 0 0x0 mdss_1_disp_cc_sm_obs_clk 0 0x0 mdss_1_disp_cc_mdss_pll_lock_monitor_clk 0 0x0 mdss_1_disp_cc_xo_clk 0 0x0 cam_cc_csiphy_bist_clk 0 0x0 dsi_phy_refgen_en 1 0x0 gcc_cxo2_rxtap2_clkref_en 0 0x0 gcc_edp0_phy_clkref_en 1 0x0 gcc_edp1_phy_clkref_en 1 0x0 gcc_edp2_phy_clkref_en 0 0x0 gcc_edp3_phy_clkref_en 0 0x0 gcc_gpll0_ufs_card_rx_symbol_0_clk 0 0x0 gcc_gpll0_ufs_card_rx_symbol_1_clk 0 0x0 gcc_gpll0_ufs_card_tx_symbol_0_clk 0 0x0 gcc_gpll0_ufs_phy_rx_symbol_0_clk 0 0x0 gcc_gpll0_ufs_phy_rx_symbol_1_clk 0 0x0 gcc_gpll0_ufs_phy_tx_symbol_0_clk 0 0x0 gcc_gpu_gpll0_clk_src 0 0x0 gcc_gpu_gpll0_div_clk_src 0 0x0 gcc_gpu_iref_en 0 0x0 gcc_gpu_memnoc_gfx_clk_en 0 0x0 gcc_hlos1_vote_aggre_noc_mmu_audio_tbu_clk 0 0x0 gcc_hlos1_vote_aggre_noc_mmu_pcie_tbu_clk 0 0x0 gcc_hlos1_vote_aggre_noc_mmu_tbu1_clk 0 0x0 gcc_hlos1_vote_aggre_noc_mmu_tbu2_clk 0 0x0 gcc_hlos1_vote_aggre_noc_mmu_usb_tbu_clk 0 0x0 gcc_hlos1_vote_all_smmu_mmu_clk 0 0x0 gcc_hlos1_vote_gpu_smmu_clk 1 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_camera_hf4_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_camera_hf5_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_disp1_hf2_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_disp1_hf3_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_hf0_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_hf1_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_sf0_clk 0 0x0 gcc_hlos1_vote_mmnoc_mmu_tbu_sf1_clk 0 0x0 gcc_hlos1_vote_mmu3_tcu_clk 0 0x0 gcc_hlos1_vote_mmu_tcu_clk 0 0x0 gcc_hlos1_vote_turing_mmu_tbu0_clk 0 0x0 gcc_hlos1_vote_turing_mmu_tbu1_clk 0 0x0 gcc_hlos1_vote_turing_mmu_tbu2_clk 0 0x0 gcc_hlos1_vote_turing_mmu_tbu3_clk 0 0x0 gcc_memnoc_mss_offline_clk_en 0 0x0 gcc_memnoc_mss_q6_clk_en 0 0x0 gcc_memnoc_pcie_tbu_tcu_clk_en 0 0x0 gcc_memnoc_turing1_clk_en 0 0x0 gcc_memnoc_turing_clk_en 0 0x0 gcc_mmu_memnoc_tcu_clk_en 0 0x0 gcc_pcie_2a2b_clkref_en 0 0x0 gcc_pcie_3a3b_clkref_en 0 0x0 gcc_pcie_4_clkref_en 0 0x0 gcc_top_edp0_phy_clkref_en 0 0x0 gcc_top_edp1_phy_clkref_en 0 0x0 gcc_ufs_1_card_clkref_en 0 0x0 gcc_ufs_1_card_clkref_clk 0 0x0 gcc_ufs_card_clkref_en 0 0x0 gcc_ufs_ref_clkref_en 1 0x0 gcc_ufs_ref_clkref_clk 0 0x0 gcc_usb2_hs0_clkref_en 0 0x0 gcc_usb2_hs1_clkref_en 0 0x0 gcc_usb2_hs2_clkref_en 0 0x0 gcc_usb2_hs3_clkref_en 0 0x0 gcc_usb3_mp0_clkref_en 0 0x0 gcc_usb3_mp1_clkref_en 0 0x0 gcc_usb4_clkref_en 0 0x0 gcc_usb4_eud_clkref_en 1 0x0 gcc_usb4_eud_clkref_clk 0 0x0 gpu_cc_cb_clk 0 0x0 gpu_cc_cx_apb_clk 0 0x0 gpu_cc_cx_qdss_tsctr_clk 0 0x0 gpu_cc_gx_qdss_tsctr_clk 0 0x0 apcs_gold_sysleaf_clk 0 0x0 apcs_goldplus_sysleaf_clk 0 0x0 apcs_l3_sysleaf_clk 0 0x0 ddr_clk 0 0x20000000 gcc_pcie_0_link_down_bcr 0 0x0 gcc_pcie_0_nocsr_com_phy_bcr 0 0x0 gcc_pcie_0_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_1_link_down_bcr 0 0x0 gcc_pcie_1_nocsr_com_phy_bcr 0 0x0 gcc_pcie_1_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_2a_link_down_bcr 0 0x0 gcc_pcie_2a_nocsr_com_phy_bcr 0 0x0 gcc_pcie_2a_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_2b_link_down_bcr 0 0x0 gcc_pcie_2b_nocsr_com_phy_bcr 0 0x0 gcc_pcie_2b_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_3a_link_down_bcr 0 0x0 gcc_pcie_3a_nocsr_com_phy_bcr 0 0x0 gcc_pcie_3a_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_3b_link_down_bcr 0 0x0 gcc_pcie_3b_nocsr_com_phy_bcr 0 0x0 gcc_pcie_3b_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_4_link_down_bcr 0 0x0 gcc_pcie_4_nocsr_com_phy_bcr 0 0x0 gcc_pcie_4_phy_nocsr_com_phy_bcr 0 0x0 gcc_pcie_phy_cfg_ahb_bcr 0 0x0 gcc_pcie_phy_com_bcr 0 0x0 gcc_qusb2phy_hs0_mp_bcr 0 0x0 gcc_qusb2phy_hs1_mp_bcr 0 0x0 gcc_qusb2phy_hs2_mp_bcr 0 0x0 gcc_qusb2phy_hs3_mp_bcr 0 0x0 gcc_qusb2phy_prim_bcr 0 0x0 gcc_qusb2phy_sec_bcr 0 0x0 gcc_usb2_phy_prim_bcr 0 0x0 gcc_usb2_phy_sec_bcr 0 0x0 gcc_usb3_dp_phy_prim_bcr 0 0x0 gcc_usb3_dp_phy_sec_bcr 0 0x0 gcc_usb3_phy_prim_bcr 0 0x0 gcc_usb3_phy_sec_bcr 0 0x0 gcc_usb3_uniphy_mp0_bcr 0 0x0 gcc_usb3_uniphy_mp1_bcr 0 0x0 gcc_usb30_prim_bcr 0 0x0 gcc_usb3phy_phy_prim_bcr 0 0x0 gcc_usb3phy_phy_sec_bcr 0 0x0 gcc_usb3uniphy_phy_mp0_bcr 0 0x0 gcc_usb3uniphy_phy_mp1_bcr 0 0x0 gcc_usb4_1_dp_phy_prim_bcr 0 0x0 gcc_usb4_1_dpphy_aux_bcr 0 0x0 gcc_usb4_1_phy_prim_bcr 0 0x0 gcc_usb4_dp_phy_prim_bcr 0 0x0 gcc_usb4_dpphy_aux_bcr 0 0x0 gcc_usb4_phy_prim_bcr 0 0x0 gcc_usb4phy_1_phy_prim_bcr 0 0x0 gcc_usb4phy_phy_prim_bcr 0 0x0 gpu_cc_gx_vsense_clk 0 0x0 gpucc_gpu_cc_gmu_bcr 0 0x0 mdss_0_disp_cc_debug_clk 0 0x0 mdss_0_disp_cc_mdss_spdm_debug_clk 0 0x0 mdss_1_disp_cc_debug_clk 0 0x0 mdss_1_disp_cc_mdss_spdm_debug_clk 0 0x0 video_cc_debug_clk 0 0x0 gcc_emac0_axi_clk 0 0x0 gcc_emac1_axi_clk 1 0x0 gcc_qupv3_wrap_0_m_ahb_clk 3 0x0 gcc_qupv3_wrap_1_m_ahb_clk 2 0x0 gcc_qupv3_wrap_2_m_ahb_clk 4 0x0 gcc_aggre_noc_pcie_south_sf_axi_clk 0 0x0 gcc_ddrss_pcie_sf_tbu_clk 0 0x0 gcc_pcie_2a_mstr_axi_clk 1 0x0 gcc_pcie_2b_mstr_axi_clk 0 0x0 gcc_pcie_3a_mstr_axi_clk 0 0x0 gcc_pcie_3b_mstr_axi_clk 0 0x0 gcc_aggre_noc_pcie0_tunnel_axi_clk 0 0x0 gcc_aggre_noc_pcie1_tunnel_axi_clk 0 0x0 gcc_pcie_0_mstr_axi_clk 0 0x0 gcc_pcie_1_mstr_axi_clk 0 0x0 gcc_aggre_noc_pcie_4_axi_clk 0 0x1200 gcc_pcie_4_mstr_axi_clk 1 0x1200 gcc_pcie_2a_bcr 0 0x0 gcc_pcie_2b_bcr 0 0x0 gcc_pcie_3a_bcr 0 0x0 gcc_pcie_3b_bcr 0 0x0 gcc_pcie_4_bcr 0 0x0 gcc_pcie_2a_phy_bcr 0 0x0 gcc_pcie_2b_phy_bcr 0 0x0 gcc_pcie_3a_phy_bcr 0 0x0 gcc_pcie_3b_phy_bcr 0 0x0 gcc_pcie_4_phy_bcr 0 0x0 gcc_aggre_usb_noc_axi_clk 1 0x0 gcc_aggre_usb_noc_north_axi_clk 0 0x0 gcc_aggre_usb_noc_south_axi_clk 0 0x0 gcc_sys_noc_usb_axi_clk 0 0x0 gcc_cnoc_pcie4_qx_clk 0 0x1200 gcc_pcie_4_slv_axi_clk 0 0x0 gcc_pcie_4_slv_q2a_axi_clk 0 0x0 gcc_emac0_slv_ahb_clk 0 0x0 gcc_emac1_slv_ahb_clk 1 0x0 gcc_pdm_ahb_clk 0 0x0 gcc_sdcc2_ahb_clk 0 0x0 gcc_sdcc4_ahb_clk 0 0x0 gcc_ahb2phy0_clk 1 0x0 gcc_ahb2phy2_clk 1 0x0 gcc_boot_rom_ahb_clk 0 0x0 gcc_camera_ahb_clk 1 0x100800200 gcc_disp1_ahb_clk 0 0x0 gcc_disp_ahb_clk 1 0x0 gcc_gpu_cfg_ahb_clk 2 0x100000200 gcc_gpu_tcu_throttle_ahb_clk 0 0x0 gcc_pcie_0_cfg_ahb_clk 0 0x0 gcc_pcie_1_cfg_ahb_clk 0 0x0 gcc_pcie_2a_cfg_ahb_clk 1 0x0 gcc_pcie_2b_cfg_ahb_clk 0 0x0 gcc_pcie_3a_cfg_ahb_clk 0 0x0 gcc_pcie_3b_cfg_ahb_clk 0 0x0 gcc_pcie_4_cfg_ahb_clk 1 0x1200 gcc_pcie_rscc_ahb_clk 0 0x0 gcc_pcie_throttle_cfg_clk 0 0x0 gcc_qmip_camera_nrt_ahb_clk 0 0x0 gcc_qmip_camera_rt_ahb_clk 0 0x0 gcc_qmip_disp1_ahb_clk 0 0x0 gcc_qmip_disp1_rot_ahb_clk 0 0x0 gcc_qmip_disp_ahb_clk 0 0x0 gcc_qmip_disp_rot_ahb_clk 0 0x0 gcc_qmip_video_cvp_ahb_clk 0 0x0 gcc_qmip_video_vcodec_ahb_clk 0 0x0 gcc_qupv3_wrap_0_s_ahb_clk 3 0x0 gcc_qupv3_wrap_1_s_ahb_clk 2 0x0 gcc_qupv3_wrap_2_s_ahb_clk 4 0x0 gcc_ufs_card_ahb_clk 1 0x0 gcc_ufs_phy_ahb_clk 1 0x0 gcc_usb4_1_cfg_ahb_clk 0 0x0 gcc_usb4_cfg_ahb_clk 0 0x0 gcc_ufs_card_bcr 0 0x0 gcc_dp_usb_0_bcr 0 0x0 gcc_dp_usb_1_bcr 0 0x0 gcc_video_ahb_clk 1 0x0 gcc_cnoc_pcie0_tunnel_clk 0 0x0 gcc_cnoc_pcie1_tunnel_clk 0 0x0 gcc_pcie_0_slv_axi_clk 0 0x0 gcc_pcie_0_slv_q2a_axi_clk 0 0x0 gcc_pcie_1_slv_axi_clk 0 0x0 gcc_pcie_1_slv_q2a_axi_clk 0 0x0 gcc_pcie_2a_slv_axi_clk 0 0x0 gcc_pcie_2a_slv_q2a_axi_clk 0 0x0 gcc_pcie_2b_slv_axi_clk 0 0x0 gcc_pcie_2b_slv_q2a_axi_clk 0 0x0 gcc_pcie_3a_slv_axi_clk 0 0x0 gcc_pcie_3a_slv_q2a_axi_clk 0 0x0 gcc_pcie_3b_slv_axi_clk 0 0x0 gcc_pcie_3b_slv_q2a_axi_clk 0 0x0 gcc_emac0_ptp_clk 0 0x0 gcc_emac0_rgmii_clk 0 0x0 gcc_emac1_ptp_clk 1 0x0 gcc_emac1_rgmii_clk 1 0x0 gcc_gp1_clk 0 0x0 gcc_gp2_clk 0 0x0 gcc_gp3_clk 0 0x0 gcc_ddrss_gpu_axi_clk 1 0x0 gcc_gpu_memnoc_gfx_clk 0 0x0 gcc_gpu_snoc_dvm_gfx_clk 0 0x0 gcc_gpu_tcu_throttle_clk 0 0x0 gpu_cc_cx_snoc_dvm_clk 0 0x0 gcc_camera_hf_axi_clk 1 0x0 gcc_camera_throttle_rt_axi_clk 0 0x0 gcc_disp1_hf_axi_clk 0 0x0 gcc_disp1_throttle_rt_axi_clk 0 0x0 gcc_disp_hf_axi_clk 1 0x0 gcc_disp_throttle_rt_axi_clk 0 0x0 gcc_camera_sf_axi_clk 1 0x0 gcc_camera_throttle_nrt_axi_clk 0 0x0 gcc_disp1_sf_axi_clk 0 0x0 gcc_disp1_throttle_nrt_axi_clk 0 0x0 gcc_disp_sf_axi_clk 1 0x0 gcc_disp_throttle_nrt_axi_clk 0 0x0 gcc_video_axi0_clk 1 0x0 gcc_video_axi1_clk 0 0x0 gcc_video_cvp_throttle_clk 0 0x0 gcc_video_vcodec_throttle_clk 0 0x0 gcc_pcie_0_aux_clk 0 0x0 gcc_pcie0_phy_rchng_clk 0 0x0 gcc_pcie_1_aux_clk 0 0x0 gcc_pcie1_phy_rchng_clk 0 0x0 gcc_pcie_2a_aux_clk 0 0x0 gcc_pcie2a_phy_rchng_clk 0 0x0 gcc_pcie_2a_pipe_clk 0 0x0 gcc_pcie_2a_pipe_clk_src 0 0x1000000 gcc_pcie_2a_pipediv2_clk 0 0x0 gcc_pcie_2b_aux_clk 0 0x0 gcc_pcie2b_phy_rchng_clk 0 0x0 gcc_pcie_2b_pipe_clk 0 0x0 gcc_pcie_2b_pipe_clk_src 0 0x1000000 gcc_pcie_2b_pipediv2_clk 0 0x0 gcc_pcie_3a_aux_clk 0 0x0 gcc_pcie3a_phy_rchng_clk 0 0x0 gcc_pcie_3a_pipe_clk 0 0x0 gcc_pcie_3a_pipe_clk_src 0 0x1000000 gcc_pcie_3a_pipediv2_clk 0 0x0 gcc_pcie_3b_aux_clk 0 0x0 gcc_pcie3b_phy_rchng_clk 0 0x0 gcc_pcie_3b_pipe_clk 0 0x0 gcc_pcie_3b_pipe_clk_src 0 0x1000000 gcc_pcie_3b_pipediv2_clk 0 0x0 gcc_pcie_4_aux_clk 0 0x1200 gcc_pcie4_phy_rchng_clk 0 0x0 gcc_pcie_4_pipe_clk_src 0 0x1000000 gcc_pcie_4_pipe_clk 0 0x0 gcc_pcie_4_pipediv2_clk 0 0x0 gcc_pcie_rscc_xo_clk 0 0x0 gcc_pdm2_clk 0 0x0 gcc_usb4_1_apb_clk 0 0x0 gcc_usb4_apb_clk 0 0x0 gcc_camera_at_clk 0 0x0 gcc_disp1_at_clk 0 0x0 gcc_disp_at_clk 1 0x0 gcc_sdcc2_at_clk 0 0x0 gcc_sdcc4_at_clk 0 0x0 gcc_usb4_1_at_clk 0 0x0 gcc_usb4_at_clk 0 0x0 gcc_video_at_clk 0 0x0 gpu_cc_cx_qdss_at_clk 0 0x0 gcc_camera_trig_clk 0 0x0 gcc_disp1_trig_clk 0 0x0 gcc_disp_trig_clk 1 0x0 gcc_video_trig_clk 0 0x0 gpu_cc_cx_qdss_trig_clk 0 0x0 gcc_qupv3_wrap0_core_2x_clk 2 0x0 gcc_qupv3_wrap0_core_clk 2 0x0 gcc_qupv3_wrap0_s0_clk 0 0x0 gcc_qupv3_wrap0_s1_clk 1 0x0 gcc_qupv3_wrap0_s2_clk 1 0x0 gcc_qupv3_wrap0_s3_clk 0 0x0 gcc_qupv3_wrap0_qspi0_clk 0 0x0 gcc_qupv3_wrap0_s4_clk 1 0x0 gcc_qupv3_wrap0_s5_clk 0 0x0 gcc_qupv3_wrap0_s6_clk 0 0x0 gcc_qupv3_wrap0_s7_clk 0 0x0 gcc_qupv3_wrap1_core_2x_clk 2 0x0 gcc_qupv3_wrap1_core_clk 2 0x0 gcc_qupv3_wrap1_s0_clk 0 0x0 gcc_qupv3_wrap1_s1_clk 0 0x0 gcc_qupv3_wrap1_s2_clk 0 0x0 gcc_qupv3_wrap1_s3_clk 0 0x0 gcc_qupv3_wrap1_qspi0_clk 0 0x0 gcc_qupv3_wrap1_s4_clk 1 0x0 gcc_qupv3_wrap1_s5_clk 0 0x0 gcc_qupv3_wrap1_s6_clk 0 0x0 gcc_qupv3_wrap1_s7_clk 1 0x0 gcc_qupv3_wrap2_core_2x_clk 4 0x0 gcc_qupv3_wrap2_core_clk 4 0x0 gcc_qupv3_wrap2_s0_clk 0 0x0 gcc_qupv3_wrap2_s1_clk 1 0x0 gcc_qupv3_wrap2_s2_clk 0 0x0 gcc_qupv3_wrap2_s3_clk 0 0x0 gcc_qupv3_wrap2_qspi0_clk 0 0x0 gcc_qupv3_wrap2_s4_clk 0 0x0 gcc_qupv3_wrap2_s5_clk 1 0x0 gcc_qupv3_wrap2_s6_clk 1 0x0 gcc_qupv3_wrap2_s7_clk 1 0x0 gcc_sdcc2_apps_clk 0 0x0 gcc_sdcc4_apps_clk 0 0x0 gcc_usb30_mp_sleep_clk 0 0x0 gcc_usb30_prim_sleep_clk 1 0x0 gcc_usb30_sec_sleep_clk 1 0x0 gpu_cc_sleep_clk 0 0x0 gcc_aggre_ufs_card_axi_clk 0 0x0 gcc_ufs_card_axi_clk 0 0x0 gcc_ufs_card_ice_core_clk 0 0x0 gcc_ufs_card_phy_aux_clk 0 0x0 gcc_ufs_card_rx_symbol_0_clk 0 0x0 gcc_ufs_card_rx_symbol_1_clk 0 0x0 gcc_ufs_card_tx_symbol_0_clk 0 0x0 gcc_ufs_card_unipro_core_clk 0 0x0 gcc_aggre_ufs_phy_axi_clk 1 0x0 gcc_ufs_phy_axi_clk 1 0x0 gcc_ufs_phy_ice_core_clk 1 0x0 gcc_ufs_phy_phy_aux_clk 1 0x0 gcc_ufs_phy_rx_symbol_0_clk 1 0x800000 gcc_ufs_phy_rx_symbol_1_clk 1 0x800000 gcc_ufs_phy_tx_symbol_0_clk 1 0x800000 gcc_ufs_phy_unipro_core_clk 1 0x0 gcc_aggre_usb3_mp_axi_clk 0 0x0 gcc_cfg_noc_usb3_mp_axi_clk 1 0x0 gcc_usb30_mp_master_clk 0 0x0 gcc_usb30_mp_mock_utmi_clk 0 0x0 gcc_aggre_usb3_prim_axi_clk 1 0x0 gcc_cfg_noc_usb3_prim_axi_clk 1 0x0 gcc_usb30_prim_master_clk 1 0x0 gcc_usb30_prim_mock_utmi_clk 1 0x0 gcc_aggre_usb3_sec_axi_clk 1 0x0 gcc_cfg_noc_usb3_sec_axi_clk 1 0x0 gcc_usb30_sec_master_clk 1 0x0 gcc_usb30_sec_mock_utmi_clk 1 0x0 gcc_usb3_prim_phy_pipe_clk 1 0x0 gcc_usb3_prim_phy_pipe_clk_src 0 0x1000000 gcc_usb4_phy_usb_pipe_clk 0 0x0 gcc_usb3_sec_phy_pipe_clk 0 0x0 gcc_usb3_sec_phy_pipe_clk_src 0 0x1000000 gcc_usb4_1_phy_usb_pipe_clk 0 0x0 gcc_usb3_mp_phy_aux_clk 0 0x0 gcc_usb3_mp_phy_com_aux_clk 0 0x0 gcc_usb3_mp_phy_pipe_0_clk 0 0x0 gcc_usb3_mp_phy_pipe_0_clk_src 0 0x1000000 gcc_usb3_mp_phy_pipe_1_clk 0 0x0 gcc_usb3_mp_phy_pipe_1_clk_src 0 0x1000000 gcc_usb3_prim_phy_aux_clk 1 0x0 gcc_usb3_prim_phy_com_aux_clk 1 0x0 gcc_usb3_sec_phy_aux_clk 0 0x0 gcc_usb3_sec_phy_com_aux_clk 0 0x0 gcc_aggre_usb4_1_axi_clk 0 0x0 gcc_usb4_1_master_clk 0 0x0 gcc_usb4_1_dp_clk 0 0x0 gcc_usb4_1_phy_p2rr2p_pipe_clk 0 0x0 gcc_pcie_1_pipe_clk 0 0x0 gcc_usb4_1_phy_pcie_pipe_clk 0 0x0 gcc_usb4_1_phy_rx0_clk 0 0x0 gcc_usb4_1_phy_rx1_clk 0 0x0 gcc_usb4_1_sys_clk 0 0x0 gcc_usb4_1_sb_if_clk 0 0x0 gcc_usb4_1_tmu_clk 0 0x0 gcc_aggre_usb4_axi_clk 0 0x0 gcc_usb4_master_clk 0 0x0 gcc_usb4_dp_clk 0 0x0 gcc_usb4_phy_p2rr2p_pipe_clk 0 0x0 gcc_pcie_0_pipe_clk 0 0x0 gcc_usb4_phy_pcie_pipe_clk 0 0x0 gcc_usb4_phy_rx0_clk 0 0x0 gcc_usb4_phy_rx1_clk 0 0x0 gcc_usb4_sys_clk 0 0x0 gcc_usb4_sb_if_clk 0 0x0 gcc_usb4_tmu_clk 0 0x0 gcc_camera_throttle_xo_clk 0 0x0 gcc_camera_xo_clk 1 0x0 gcc_disp1_xo_clk 0 0x0 gcc_disp_xo_clk 1 0x0 gcc_pdm_xo4_clk 0 0x0 gcc_video_xo_clk 1 0x0 gpu_cc_acd_cxo_clk 0 0x0 gpu_cc_cxo_aon_clk 0 0x0 gpu_cc_cxo_clk 1 0x0 gpu_cc_freq_measure_clk 0 0x0 gpu_cc_gx_cxo_clk 0 0x0 gpu_cc_debug_clk 0 0x0 gpu_cc_debug_measure_clk 0 0x0 gpu_cc_cx_gmu_clk 1 0x0 gpu_cc_gx_gmu_clk 1 0x0 gpu_cc_cx_gfx3d_clk 0 0x0 gpu_cc_cx_gfx3d_slv_clk 0 0x0 gpu_cc_gx_gfx3d_clk 0 0x0 gpu_cc_gx_gfx3d_rdvm_clk 0 0x0 gpu_cc_mnd1x_0_gfx3d_clk 0 0x0 gpu_cc_mnd1x_1_gfx3d_clk 0 0x0 gpu_cc_spdm_gx_gfx3d_div_clk 0 0x0 gpu_cc_acd_ahb_clk 0 0x0 gpu_cc_ahb_clk 1 0x0 gpu_cc_crc_ahb_clk 0 0x0 gpu_cc_hub_aon_clk 0 0x0 gpu_cc_hub_cx_int_clk 0 0x0 gpu_cc_pll_test_clk 0 0x0 video_cc_ahb_clk 1 0x0 video_cc_mvs0_clk 1 0x0 video_cc_mvs0c_clk 1 0x0 video_cc_mvs1_clk 0 0x0 video_cc_mvs1_div2_clk 0 0x0 video_cc_mvs1c_clk 0 0x0 video_cc_pll_test_clk 0 0x0 video_cc_sleep_clk 0 0x0 video_cc_xo_clk 0 0x0 gcc_mmnoc_hf_qx_clk_readonly 0 0x20000000 gcc_memnoc_clk_readonly 0 0x20000000 gcc_sys_noc_sf_axi_clk_readonly 0 0x20000000 gcc_turing_q6_axi_clk_readonly 0 0x20000000 gcc_hwkm_ahb_clk_readonly 0 0x20000000 gcc_hwkm_core_clk_readonly 0 0x20000000 gcc_vs_prim_ctrl_ahb_clk 0 0x0 gcc_vs_rd_ctrl_ahb_clk 0 0x0 gcc_vs_prim_ctrl_clk 0 0x0 gcc_vs_rd_ctrl_clk 0 0x0 gcc_apc0_vs_prim_clk 0 0x0 gcc_apc1_vs_prim_clk 0 0x0 gcc_gpu_vs_prim_clk 0 0x0 gcc_vdd_safe_cx_vs_prim_clk 0 0x0 gcc_vdd_safe_mx_vs_prim_clk 0 0x0 gcc_vddaddr_vs_prim_clk 0 0x0 gcc_vddcx_vs_prim_clk 0 0x0 gcc_vddmmcx_vs_prim_clk 0 0x0 gcc_vddmxa_vs_prim_clk 0 0x0 gcc_vddmxc_vs_prim_clk 0 0x0 gcc_vddnsp_vs_prim_clk 0 0x0 gcc_apc0_vs_rd_clk 0 0x0 gcc_apc1_vs_rd_clk 0 0x0 gcc_gpu_vs_rd_clk 0 0x0 gcc_vdd_safe_cx_vs_rd_clk 0 0x0 gcc_vdd_safe_mx_vs_rd_clk 0 0x0 gcc_vddaddr_vs_rd_clk 0 0x0 gcc_vddcx_vs_rd_clk 0 0x0 gcc_vddmmcx_vs_rd_clk 0 0x0 gcc_vddmxa_vs_rd_clk 0 0x0 gcc_vddmxc_vs_rd_clk 0 0x0 gcc_vddnsp_vs_rd_clk 0 0x0 Power Domain Ref Flags cam_cc_bps_gdsc 0 0x0 cam_cc_ife_0_gdsc 1 0x0 cam_cc_ife_1_gdsc 1 0x0 cam_cc_ife_2_gdsc 1 0x0 cam_cc_ife_3_gdsc 1 0x0 cam_cc_ipe_0_gdsc 0 0x0 cam_cc_ipe_1_gdsc 0 0x0 cam_cc_titan_top_gdsc 4 0x0 mdss_0_disp_cc_mdss_core_gdsc 1 0x0 mdss_0_disp_cc_mdss_core_int2_gdsc 0 0x0 mdss_1_disp_cc_mdss_core_gdsc 0 0x0 mdss_1_disp_cc_mdss_core_int2_gdsc 0 0x0 gcc_emac0_gdsc 1 0x0 gcc_emac1_gdsc 1 0x0 gcc_hlos1_vote_aggre_noc_mmu_audio_tbu_gds 0 0x1000 gcc_hlos1_vote_aggre_noc_mmu_pcie_tbu_gds 0 0x1000 gcc_hlos1_vote_aggre_noc_mmu_tbu1_gds 0 0x1000 gcc_hlos1_vote_aggre_noc_mmu_tbu2_gds 0 0x1000 gcc_hlos1_vote_aggre_noc_mmu_usb_tbu_gds 0 0x1000 gcc_hlos1_vote_all_smmu_mmu_gds 0 0x1000 gcc_hlos1_vote_gpu_smmu_gds 1 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_camera_hf4_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_camera_hf5_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_disp1_hf2_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_disp1_hf3_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_hf0_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_hf1_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_sf0_gds 0 0x1000 gcc_hlos1_vote_mmnoc_mmu_tbu_sf1_gds 0 0x1000 gcc_hlos1_vote_mmu3_tcu_gds 0 0x1000 gcc_hlos1_vote_mmu_tcu_gds 0 0x1000 gcc_hlos1_vote_turing_mmu_tbu0_gds 0 0x1000 gcc_hlos1_vote_turing_mmu_tbu1_gds 0 0x1000 gcc_hlos1_vote_turing_mmu_tbu2_gds 0 0x1000 gcc_hlos1_vote_turing_mmu_tbu3_gds 0 0x1000 gcc_pcie_0_tunnel_gdsc 0 0x0 gcc_pcie_1_tunnel_gdsc 0 0x0 gcc_pcie_2a_gdsc 1 0x1200 gcc_pcie_2b_gdsc 1 0x1200 gcc_pcie_3a_gdsc 1 0x1200 gcc_pcie_3b_gdsc 1 0x1200 gcc_pcie_4_gdsc 2 0x1200 gcc_ufs_card_gdsc 1 0x0 gcc_ufs_phy_gdsc 1 0x0 gcc_usb30_mp_gdsc 1 0x200 gcc_usb30_prim_gdsc 1 0x200 gcc_usb30_sec_gdsc 1 0x200 gcc_usb4_1_gdsc 0 0x0 gcc_usb4_gdsc 0 0x0 gpu_cc_cx_gdsc 1 0x1000 gpu_cc_gx_gdsc 1 0x0 video_cc_mvs0_gdsc 1 0x0 video_cc_mvs0c_gdsc 1 0x0 video_cc_mvs1_gdsc 0 0x0 video_cc_mvs1c_gdsc 0 0x0 请解释如上每个参数,使用中文解释
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值