mirror of
https://github.com/apache/nuttx-apps.git
synced 2025-10-16 22:38:41 +08:00
nshlib/irqaff: add irq affinity command
add support for set an IRQ affinity to CPUs by software qemu-armv7a/bmp: switch uart irq to different CPUs nsh> ps PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND 0 0 0 FIFO Kthread - Ready 0000000000000000 004080 000536 13.1% CPU0 IDLE 1 1 192 RR Kthread - Waiting Semaphore 0000000000000000 004032 000296 7.3% hpwork 0x4013f51c 0x4013f530 2 2 100 RR Task - Running 0000000000000000 004056 001168 28.7% nsh_main nsh> irqaff 33 0x2 nsh> ps PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND 0 0 0 FIFO Kthread - Ready 0000000000000000 004080 000736 18.0% CPU1 IDLE 1 1 192 RR Kthread - Waiting Semaphore 0000000000000000 004032 000296 7.3% hpwork 0x4013f544 0x4013f558 2 2 100 RR Task - Running 0000000000000000 004056 001288 31.7% nsh_main nsh> irqaff 33 0x4 nsh> ps PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND 0 0 0 FIFO Kthread - Ready 0000000000000000 004080 000736 18.0% CPU2 IDLE 1 1 192 RR Kthread - Waiting Semaphore 0000000000000000 004032 000296 7.3% hpwork 0x4013f56c 0x4013f580 2 2 100 RR Task - Running 0000000000000000 004056 001168 28.7% nsh_main nsh> irqaff 33 0x8 nsh> ps PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND 0 0 0 FIFO Kthread - Ready 0000000000000000 004080 000736 18.0% CPU3 IDLE 1 1 192 RR Kthread - Waiting Semaphore 0000000000000000 004032 000296 7.3% hpwork 0x4013f594 0x4013f5a8 2 2 100 RR Task - Running 0000000000000000 004056 001168 28.7% nsh_main Signed-off-by: chao an <anchao@lixiang.com>
This commit is contained in:
@@ -518,6 +518,32 @@ int cmd_reset_cause(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_irq_affinity
|
||||
****************************************************************************/
|
||||
|
||||
#if defined(CONFIG_BOARDCTL_IRQ_AFFINITY) && !defined(CONFIG_NSH_DISABLE_IRQ_AFFINITY)
|
||||
int cmd_irq_affinity(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
unsigned int affinity[2];
|
||||
|
||||
if (argc == 3)
|
||||
{
|
||||
affinity[0] = strtoul(argv[1], NULL, 0);
|
||||
affinity[1] = strtoul(argv[2], NULL, 0);
|
||||
|
||||
if (affinity[1] == 0)
|
||||
{
|
||||
affinity[1] = 0x1;
|
||||
}
|
||||
|
||||
return boardctl(BOARDIOC_IRQ_AFFINITY, (uintptr_t)affinity);
|
||||
}
|
||||
|
||||
return ERROR;
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_rpmsg
|
||||
****************************************************************************/
|
||||
|
Reference in New Issue
Block a user