当前位置:网站首页>B_ QuRT_ User_ Guide(27)
B_ QuRT_ User_ Guide(27)
2022-06-28 08:08:00 【weixin_ thirty-eight million four hundred and ninety-eight thou】
B_QuRT_User_Guide(27)
17.4 qurt_interrupt_disable()
17.4.1 Function document
17.4.1.1 unsigned int qurt_interrupt_disable ( int int_num )
Disable an interrupt with an interrupt number .
Before calling this function , The interrupt must be registered . stay qurt_interrupt_disable() After the return ,Hexagon The subsystem can no longer move to Hexagon The core sends the corresponding interrupt , Until... Is called for the same interrupt qurt_interrupt_enable().
Avoid frequent calls in a short time qurt_interrupt_disable() and qurt_interrupt_enable().(1) When calling qurt_interrupt_disable() when ,Hexagon There may already be pending interrupts in the kernel . So after a while ,Hexagon A pending interrupt is received on the hardware thread .(2) In an interrupt from Hexagon Subsystem sends to Hexagon After the core ,Hexagon The hardware automatically disables the interrupt , Until the kernel software re enables the interrupt in the interrupt confirmation phase . If qurt_interrupt_enable() Called by some thread earlier , The interrupt will be re enabled in advance , This triggers an interrupt to when the kernel software is still processing the previous interrupt Hexagon The core sends a new interrupt .
Parameters 
Return value
QURT_EOK - Interrupt successfully disabled .QURT_EINT - Invalid interrupt number .QURT_EVAL - The interrupt is not closed .
Dependencies
None.
17.5 qurt_interrupt_enable()
17.5.1 Function document
17.5.1.1 unsigned int qurt_interrupt_enable ( int int_num )
Enable an interrupt with an interrupt number .
Before calling this function , The interrupt must be registered first .
Parameters 
Return value
QURT_EOK - Interrupt successfully enabled .QURT_EINT - Invalid interrupt number .QURT_EVAL - Interrupt not registered .
Dependencies
None.
17.6 qurt_interrupt_get_config()
17.6.1 Function document
17.6.1.1 unsigned int qurt_interrupt_get_config ( unsigned int int_num, unsigned int ∗ int_type, unsigned int ∗ int_polarity )
obtain L2VIC Interrupt configuration .
This function returns the specified L2VIC Type and polarity of interrupts .
Parameters 
Return value
QURT_EOK - Configuration succeeded, return .QURT_EINT - Invalid interrupt number .
Dependencies
None.
17.7 qurt_interrupt_raise()
17.7.1 Function document
17.7.1.1 int qurt_interrupt_raise ( unsigned int interrupt_num )
Cause an interruption .
stay V5 Hexagon On the processor , This function will trigger a level trigger L2VIC interrupt , And accept 0 To 1023 Interrupt number in the range .
Parameters 
Return value
QURT_EOK - success
-1 - Failure ; The interrupt is not supported .
Dependencies
None.
17.8 qurt_interrupt_register()
17.8.1 Function document
17.8.1.1 unsigned int qurt_interrupt_register ( int int_num, qurt_anysignal_t ∗ int_signal, int signal_mask )
Registration interrupted .
Enable the specified interrupt , And compare it with the specified QuRT A signal object is associated with a signal mask .
The signal is 32 The bit mask value is represented as the... Th 0 To 31 position . The mask bit value is 1 Indicates that you must wait for the signal ,0 It means not to wait .
When the interrupt occurs , The signal specified in the signal mask is set in the signal object . Interrupt the service thread (IST) Routinely wait for the signal to process the interrupt . The thread that registers interrupts is set to IST Threads .
A signal object can be registered at most 31 Separate interrupts , This is determined by the number of independent signals that the object can store .QuRT Keep the signal 31. therefore , One IST Can handle several different interrupts .
QuRT Some interrupts are reserved for internal use - The rest of the interrupts are available to the application , Therefore, it is a valid interrupt number . If the specified interrupt number is not within the valid range , The registration operation will return the status value QURT_EINT.
Only one thread can be registered with a particular interrupt at a time . Attempting to register an already registered interrupt will return a status value QURT_EVAL.
In a signal object , Only one signal bit can be registered in a particular interrupt at a time . Trying to register multiple signal bits into an interrupt , The status value will be returned QURT_ESIG.
Once the signal registers an interrupt ,QuRT The signal bit can only be set when an interrupt is received . From other software threads QuRT The signal API The signal cannot be set , Even unused signal bits .
Be careful : The valid range of interrupt number may be different in the target execution environment outside the simulator . For more information , Refer to the appropriate hardware documentation .
Related data types
qurt_anysignal_t
Parameters 
Return value
QURT_EOK - Interrupt successful registration .
QURT_EINT - Invalid interrupt number .
QURT_ESIG - Invalid signal bitmask ( Multiple signals cannot be set at the same time ).QURT_EVAL - Interrupt has been registered .
Dependencies
None.
17.9 qurt_interrupt_set_config()
17.9.1 Function document
17.9.1.1 unsigned int qurt_interrupt_set_config ( unsigned int int_num, unsigned int int_type, unsigned int int_polarity )
Set specified L2VIC Type and polarity of interrupts . Be careful : In reconfiguration L2VIC Before the interruption , To unregister them .
Parameters 
Return value
QURT_EOK - success .
QURT_ENOTALLOWED - Don't allow ; Registering interrupts .QURT_EINT - Invalid interrupt number .
Dependencies
None.
17.10 qurt_interrupt_status()
17.10.1 Define documents
17.10.1.1 unsigned int qurt_interrupt_status ( int int_num, int ∗ status )
Returns a value representing the pending status of the specified interrupt .
Parameters
| in | timer | Timer object . |
Return value
QURT_EOK - success .
QURT_EINT - Failure ; Invalid interrupt number .
Dependencies
None.
边栏推荐
- MySQL implements transaction persistence using redo logs
- Explanation and application of instr() function in Oracle
- Ambari (VIII) --- ambari integrated impala document (valid for personal test)
- HJ explicit random number
- Section 9: dual core startup of zynq
- 抗洪救灾,共克时艰,城联优品捐赠10万元爱心物资驰援英德
- HJ character count
- At 19:00 on Tuesday evening, the 8th live broadcast of battle code Pioneer - how to participate in openharmony's open source contribution in multiple directions
- MySQL tablespace parsing
- B_QuRT_User_Guide(28)
猜你喜欢

Buffer pool in MySQL

Upgrade HDP spark to spark 2.4.8 without upgrading ambari

Eslint 语法监测关闭

Redis persistence problem and final solution

SQL analysis (query interception analysis for SQL optimization)

SQL Master slave Replication Build

ROS 笔记(08)— 服务数据的定义与使用

kubernetes集群命令行工具kubectl

Connaissez - vous le protocole TCP (2)?

Devops Basics: Jenkins deployment and use (I)
随机推荐
Software testing and quality final review
解决npm ERR! Unexpected end of JSON input while parsing near问题
MySQL row format parsing
MySQL implements transaction persistence using redo logs
Software design of power control board
【学习笔记】模拟
Co process, asyncio, asynchronous programming
Redis cluster deployment and application scenarios
【学习笔记】差分约束
HJ明明的随机数
Prometheus service discovery
Devops Basics: Jenkins deployment and use (I)
MySQL single table access method
Soft exam -- software designer -- afternoon question data flow diagram DFD
Configuring multiple instances of MySQL under Linux
协程、asyncio、异步编程
flex布局
How to use redis to solve concurrency problems
Localization SoC development plan
Prometheus deployment alarm docking QQ mailbox