各位大佬好,打扰了,求助一个问题。最经尝试让 rt-thrad 在 zynq7000 的cpu1 启动运行 (注: libcpu 使用的 v4.0.5 cortex-a 的), 基本框架已经可以正常运行了(私有定时器可以正常中断驱动调度器, 在一个线程下可以让led灯正常闪烁) 但似乎无法响应共享的外设中断 (SPI). 例如外部串口设备, 之前在 cpu0 上是可以正常使用的。尝试使用 rt_hw_interrupt_set_target_cpus, rt_hw_interrupt_get_target_cpus数值确实改变了, 但是似乎也并不起作用. 请问哪位大佬知道应该如何做, 谢谢!
测试代码:
extern unsigned int rt_hw_interrupt_get_target_cpus(int vector);
extern void rt_hw_interrupt_set_target_cpus(int vector, unsigned int cpu_mask);
int main()
{
rt_pin_mode(15, PIN_MODE_OUTPUT);
// 设置 console 口
rt_console_set_device("pl_uart7");
rt_kprintf("rt_hw_interrupt_get_target_cpus: %x \n", rt_hw_interrupt_get_target_cpus(68U));
system("gic_dump");
rt_hw_interrupt_set_target_cpus(68, 0x02);
rt_kprintf("gic_dump after set target: \n");
system("gic_dump");
rt_kprintf("rt_hw_interrupt_get_target_cpus: %x \n", rt_hw_interrupt_get_target_cpus(68U));
while(1)
{
// .............
}
}
输出:
但通过串口输入无响应