Part Number:AM5728Other Parts Discussed in Thread:SYSBIOS
由于程序中使用到了多个GPIO bank的管脚作为中断使用,此时发现注册多个中断时会报以下错误:
[ 0.394] -I- GPIO_Init()
[ 0.395] [t=0x2ebf2d9f] ti.sysbios.family.c64p.Hwi: ERROR: line 194: E_alreadyDefined: Hwi already defined: intr# 15
[ 0.395] ti.sysbios.family.c64p.Hwi: line 194: E_alreadyDefined: Hwi already defined: intr# 15
跟踪后发现是在GPIO_soc.c文件中定义,看里的内容,所有bank的中断号都为15了,所以使用不同bank的管脚同时作为中断时,就会出现后注册的中断不能成功。
如图:
请问怎么知道哪个中断号未被使用,可以作为bank的中断号?
Shine:
sys/bios系统会占用timer定时器中断,应用程序中要避开这些HWI中断号。http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/6_40_01_15/exports/bios_6_40_01_15/docs/cdoc/ti/sysbios/timers/dmtimer/doc-files/TimerTables.html
,
Kevin Le82:
关于中断号,有没有一个列表,说明每个中断号用于哪些用途的吗?
目前是1个个中断号试过去,试到没有报错为止,这样不知道会不会有什么隐患
,
Shine:
C66x CPU级有16个硬件中断,RESET优先级最高,INT15优先级最低,具体请看下面的user guide。Chapter 16。https://www.ti.com/lit/ug/sprugh7/sprugh7.pdfsys/bios系统会占用timer定时器中断,上面的表格已经给出,其他的中断号都可以用。
,
Kevin Le82:
只能使用尝试的方法,使用没有被使用的中断号解决先