完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大佬好,打扰了,求助一个问题。最经尝试让 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) { // ............. } } 输出:
|
|
相关推荐
3个回答
|
|
突然想到 gic 对于两个 cpu 核而言似乎也是共享资源,不太好办了。。。
|
|
|
|
您好,我也碰到了这个spi中断不响应的问题,只要一中断就直接异常了,请问您解决了吗?
|
|
|
|
除了安装中断,还应该设置触发模式,触发模式使用以下函数进行设置
rt_hw_interrupt_set_triger_mode(id,mode); 这个函数的注释: mode: interrupt triger mode; 0: level triger, 1: edge triger 触发模式应该设置为1. 但是参考xilinx的bsp优先级设置函数 void XScuGic_SetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id,u8 Priority, u8 Trigger) 以及查询ug585,SPI中断的这个触发模式只能设置为0和3,3代表上升沿。 所以触发模式设置为3就能正常SPI中断了。 rt_hw_interrupt_set_triger_mode(id,3); |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
565 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2147 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1211 浏览 0 评论
1741 浏览 0 评论
1454 浏览 0 评论
74780 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:54 , Processed in 0.698674 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号