完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
问题:
在DSP触发中断SYSCFG_CHIPINT0(28)一次,ARM能收到两次。 有用过的指点一下 附相关代码: /******************************************* * DSP 代码 main.c *******************************************/ struct mdsp_info g_ctx; #pragma DATA_SECtiON(g_ctx,"mem_stru") void ARM_Interrupt() [ L138_SYSTEM->CHIPSIG|=0x0000001; ] void udelay(int n) [ int f=456*1000; while(n>0)[ n--; while(f>0) [ f--; __asm("NOP"); ] ] ] void main() [ struct mdsp_info *info=(struct mdsp_info *)&g_ctx; L138_init();// pinmux etc... for(;;) [ ARM_Interrupt(); udelay(4*1000); info->resvd1[6]++; ] ] ////////////////////////////////////////// // cmd 文件 ////////////////////////////////////////// SECTIONS [ boot > BOOT_MEM [ -l bios.a674 ] mem_stru [] >0x80000000 ] /****************************************** * ARM Linux驱动代码 ******************************************/ struct mdsp_info* p_mdsp=NULL; #define CHIPSIG *(volatile unsigned int*)DA8XX_SYSCFG0_VIRT(0x174) static int mdsp_open(struct inode *inode, struct file *filp) [ return 0; ] static int mdsp_release(struct inode *inode, struct file *filp) [ return 0; ] static ssize_t mdsp_read(struct file* file, char __user *buf, size_t size, loff_t *off) [ return 0; ] static ssize_t mdsp_write(struct file* file, char __user *buf, size_t size, loff_t *off) [ return 0; ] static long mdsp_ioctl (struct file * filp, unsigned int cmd, unsigned long arg) [ struct mdsp_info *info = (struct mdsp_info *)p_mdsp; void __user *argp = (void __user *)arg; printk("dsp_int=%d arm_int=%dn", info->resvd1[6], info->resvd1[8]); return 0; ] static const struct file_operations mdsp_fops = [ .owner = THIS_MODULE, .read = mdsp_read, .write = mdsp_write, .open = mdsp_open, .release = mdsp_release, .unlocked_ioctl = mdsp_ioctl, ]; static struct miscdevice mdsp_dev = [ MISC_DYNAMIC_MINOR, "mdsp", &mdsp_fops ]; static irqreturn_t dsp_data_isr(int irq, void* ctx) [ struct mdsp_info *info=(struct mdsp_info *)ctx; (CHIPSIG_CLR) |=0x1; info->resvd1[8]++; return IRQ_HANDLED; ] static int __init mdsp_init(void) [ p_mdsp = (struct mdsp_info*)ioremap_nocache((dma_addr_t)0x80000000, 0x20000); memset((void*)p_mdsp, 0, sizeof(struct mdsp_info)); request_irq(28, dsp_data_isr, IRQF_TRIGGER_RISING|IRQF_DISABLED, "mdsp", (void*)p_mdsp); misc_register(&mdsp_dev); return 0; ] static int __exit mdsp_exit(void) [ free_irq(28, (void*)p_mdsp); misc_deregister(&mdsp_dev); if (p_mdsp) [ iounmap(p_mdsp); p_mdsp = NULL; ] ] module_init(mdsp_init); module_exit(mdsp_exit); |
|
相关推荐
1 个讨论
|
|
|
请参考勘误表http://www.ti.com/lit/pdf/sprz301
Advisory 2.3.5 A Single CHIPINTn Interrupt Event Will Register Multiple Times in the DSP Event Combiner Module (ECM) http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
601 浏览 0 评论
1655 浏览 0 评论
2096 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1542 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1387 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1794浏览 29评论
2821浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1748浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1668浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1681浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-15 09:48 , Processed in 0.702511 second(s), Total 65, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1771