完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
哪一个寄存器写在调用CyGalGalabnabl?
以上来自于百度翻译 以下为原文 Which register is written on calling CyGlobalIntEnable? |
|
相关推荐
2个回答
|
|
在CyLib你找到了
{ ELIF定义(α-GnUcj*)定义CyGualActhiabl {α-ASM(“CPSIEE I”);}定义CyGulalaltuabele{{asi-ASM(“CPSID I”);} 鲍勃 以上来自于百度翻译 以下为原文 In CyLib.h you find #elif defined(__GNUC__) #define CyGlobalIntEnable {__asm("CPSIE i");} #define CyGlobalIntDisable {__asm("CPSID i");} Bob |
|
|
|
ncmza 发表于 2019-6-10 10:11 详述鲍伯的回答: CyGalAcActuable是执行汇编指令“CPSIEE I”的宏,这意味着“更改处理器状态、中断使能”,而“i”指定中断IRQ而不是其他选项。这是一个原子命令,它写到“Primase'(优先级掩码)寄存器中,它看起来是1位寄存器,(据我所知)不是内存可寻址的(不能用调试器查看)。您可以使用函数y*GETyPrimask.()读取寄存器值。因为它是一个掩码寄存器,0的值使中断,1禁用它们。 附加细节如下: 从随机人的WordPress站点(谷歌搜索): CORTEX-M3中断/异常控制嵌入式FRACK… “CPSIEE I”是一个用于启用优先级可配置中断的汇编指令。事实上,这是一个捷径: ASM易失性(“MOVS R0,α0”n MSR引物,R0“”; MSR操作码=从ARM寄存器移动到系统协处理器寄存器。 汇编用户指南:CPS 在CyBootAsmRv UCIT8细胞临界切片(空白) 细胞临界截面函数 出口循环临界断面 保存和返回中断状态R0 禁用中断 BX-LR 终端功能 从PSOC5LPYCY8C58LP系列数据表: Prasase: 1位中断屏蔽寄存器。设置时,它允许 只有不可屏蔽中断(NMI)和硬故障 例外。所有其他异常和中断都是 蒙面的 来自CMSISARMARCC /** 简短获取优先级掩码 细节从优先级掩码寄存器返回优先级掩码位的当前状态。 返回优先级掩码值 */ UnthistaIn内联UIT32 { 注册UTIN 32×T.RigPraskasyASM(“Primask”); 退货(退货); } 以上来自于百度翻译 以下为原文 To elaborate on Bob's answer: CyGlobalIntEnable is a macro that executes the Assembly instruction "CPSIE i", which means "Change Processor State, Interrupt Enable", and the 'i' specifies interrupt IRQs instead of other options. This is an atomic command that writes to the "PRIMASK" (Priority Mask) register, which appears to be a 1-bit register that (as far as I can find) is not memory-addressable (can't view with the debugger). You can read the register value using the function __get_PRIMASK(). Because it's a masking register, a value of 0 enables interrupts and 1 disables them. Additional details follow: From random person's Wordpress site (Google search): Cortex-M3 Interrupt/Exception Control | Embedded Freaks.. “CPSIE I” is a assembly instruction to enable the priority configurable interrupts. Actually, it’s a shortcut to this longer procedure: asm volatile ("MOVS r0, #0n MSR PRIMASK, r0"); MSR opcode = Move to system coprocessor register from ARM register. Assembler User Guide: CPS In CyBootAsmRv.s ; uint8 CyEnterCriticalSection(void) CyEnterCriticalSection FUNCTION EXPORT CyEnterCriticalSection MRS r0, PRIMASK ; Save and return interrupt state CPSID I ; Disable interrupts BX lr ENDFUNC From the PSoC5LP_CY8C58LP Family Datasheet: PRIMASK: A 1-bit interrupt mask register. When set, it allows only the nonmaskable interrupt (NMI) and hard fault exception. All other exceptions and interrupts are masked. From cmsis_armcc.h /** brief Get Priority Mask details Returns the current state of the priority mask bit from the Priority Mask Register. return Priority Mask value */ __STATIC_INLINE uint32_t __get_PRIMASK(void) { register uint32_t __regPriMask __ASM("primask"); return(__regPriMask); } |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2103 浏览 1 评论
1849 浏览 1 评论
3667 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1784 浏览 6 评论
1534 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
566浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
420浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
435浏览 2评论
381浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
913浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:05 , Processed in 0.888873 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号