程序计数器(寄存器)

本文解释了Java源代码编译后,JVM指令执行中的ProgramCountRegister的作用,它是一个线程私有的计数器,用于跟踪每个线程的指令地址。由于其内容少且不涉及大量内存,因此避免了内存溢出。同时,时间片的概念被用来管理多任务并发,确保公平分配CPU资源,提高系统性能。

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

Program Count Register程序计数器(寄存器)

    java源代码经过编译,变成jvm指令

    作用:    在jvm指令的执行过程中,记录下一个指令的执行地址,一条一条执行


    特点:    
        线程私有    :    
            在多个线程时,会分配时间片,
            线程1在时间片内未执行完会暂存线程1,
            然后执行线程2的代码,如果也在时间片内没有执行完,会暂存线程2,继续执行线程1..

            
            
            其中暂存的是存储下一个jvm指令执行的地址,存在对应线程计数器中,不同线程单独存放
            并且每一个线程有属于自己的程序计数器,存自己要执行的命令

        不会内存溢出:    因为程序计算器所维护的只是下一条待执行的命令的地址,内容很少就一条
                所以不存在OutOfMemoryError,没有内存溢出

    

相关概念:


    时间片:
        操作系统分配给正在运行的进程/线程的一段CPU时间,用来实现多任务的并发执行。
        时间片通常很短,如几毫秒到几百毫秒,这样用户就感觉不到程序之间的切换。
        时间片的分配由操作系统内核调度程序决定,会考虑进程/线程的优先级、交互、资源需求等因素
        时间片的长度和分配策略会影响系统的性能和响应速度。

    为什么要有时间片:
        因为CPU的速度远高于其他设备,如内存、磁盘、网络等,
        如果没有时间片,CPU就会一直等待一个进程或线程完成它的所有任务,其他进程或线程
        会被饿死,无法得到运行机会。会造成CPU资源的浪费以及降低系统的性能和用户的体验。

### 28335 PWM 计数器寄存器的技术文档与操作方法 对于 TMS320F28335 的PWM模块中的计数器寄存器,该器件提供了多种功能来实现精确的脉宽调制控制。TMS320F28335 中的 ePWM (Enhanced Pulse Width Modulation) 模块具有多个专用寄存器用于配置监控 PWM 波形发生过程。 #### 主要涉及的关键寄存器有: - **TBCTR(Time Base Counter Register)** 此时间基准计数器是一个16位递增/递减计数器,在每个周期内从零增加到 CMPA 或者 CMPB 值再减少回零[^1]。 - **CMPA CMPB (Compare A/B Registers)** 这两个比较寄存器存储着用来决定何时触发事件的时间点数值;当 TBCTR 达到这些设定值时会引发相应的动作,比如改变输出状态等[^1]。 - **TBPRD(Time Base Period Register)** 定义了一个完整的 PWM 周期长度,即最大计数值。一旦达到这个极限,计数方向将会反转并重新开始新的循环[^1]。 为了初始化上述提到的相关寄存器以启动一个简单的 PWM 输出信号,可以按照如下方式编写代码片段: ```c // 设置定时器周期为 1ms,假设系统频率为 150MHz EALLOW; CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0; // 关闭同步更新使能 EPwm1Regs.TBCTL.bit.CTRMODE = UP_COUNT; // 设定向上计数模式 EPwm1Regs.TBPRD = SYSCLK / 1e3 - 1; // 定义周期(单位:s) EALLOW; EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD * dutyCyclePercent / 100.0f; // 配置占空比 EDIS; // 开启同步更新使能 CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1; ``` 通过这段 C 语言程序示例可以看出如何设置特定参数从而获得所需的 PWM 特性。需要注意的是实际应用中还需要考虑更多细节如中断处理、死区保护等功能扩展[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值