? ? ? ? 在上一篇《HPM6750系列--第十篇 时钟系统》我们仅粗略讲解了一下资源节点相关内容,本篇会从代码角度详解讲解一下资源节点的相关内容。
????????
????????在系统电源域中,各种能够被开启或关闭的节点称为资源节点 (resource),包括各功能模块、功能时钟、子系统电源和复位、时钟源等,如下图所示:
????????
? ? ? ? 上图是调试窗口查看SYSCTL外设resource寄存器组相关信息。
?
?????????
?????????
? ? ? ? 下游资源节点依赖中游资源节点,中游资源节点又依赖上游资源节点,中上游资源节点可以根据下游资源节点的请求自动打开和关闭,也强制保持打开。?
? ? ? ? 上图中ENET0和SDXC0都依赖CLK_TOP_AXI,如果ENET0关闭,CLK_TOP_AXI会收到关闭请求,但是因为SDXC0也依赖CLK_TOP_AXI,故CLK_TOP_AXI就保持打开,如果后续SDXC0也请求关闭,CLK_TOP_AXI才会关闭。这就是链式结构的自动开关机制。
????????中游和上游资源节点工作在自动模式时,会根据其下游节点的请求自动执行开启和关闭,而下游的功能模块资源节点工作在自动模式时,则能够根据处理器的状态执行开启和关闭。
????????SYSCTL 供两个连接组 (link group 0/1) 用来将功能模块与处理器连接起来,通常 CPU0 使用 group0,CPU1使用 group1。
????????
?
? ? ? ? 上图中如果设置ENET0、SDXC0工作在自动模式,那么当CPU0进入等待或者休眠状态时,ENET0也会自动进行休眠状态,SDXC0只有CPU0/1都进入等待或者休眠状态才会进入休眠。
????????
cd ~/workspace/work/hpm/hello_world
code .
?????????
? ? ? ? 上图中将各个外设时钟添加到资源组0,然后资源组0和CPU0绑定
?
? ? ? ? 上图中将clock_uart0添加到资源组0中。
? ? ? ? 以上就是HPM6750资源节点基本内容,涉及到资源节点定义、链式结构、自动开关、CPU绑定。?
?????????
?
?
????????