Originally posted by Developer12
View Post
Agree.. one just asks... what's going on here?
One of the reasons why I didn't started already doing some micro-controller stuff with riscv, its exactly because of the mess of the Interrupts in Riscv..
Depending on the microcontroller you may find some of the above, all, or almost none, and some closed spec interrupt controller from that company.
Why companies implement their own version?I believe its because Interrupts are still a case where RIscv is "in Development"..
To give you a concrete example..
Just look to GD32VF103, yes it does some stuff that doesn't exist in Riscv standard, one of them is the interrupt controller that is different, and you will need a special toolchain for it
However it also implements, I believe CLIC..but its basic.
I was expecting something like ARM NVIC, but for Riscv.
I don't know but some interrupt controllers, are very slow, they don't do the interrupt house keeping in hardware( like arm does ).
Others you need to be inside a interrupt handler checking what source of interrupt launched the interrupt, puff,a lot of cycles burned for nothing..why not a Vector interrupt like arm has?!
I am not a expert on it, but I read a lot before starting Riscv, and I found a lot of people complaining about this problem.So I went to Gigadevice GD32VF103 programming manual, and started to see that they implemented a proprietary interrupt controller, trying to be a vector interrupt controller like arm, but was a weird implementation.
So I give up until everything is sorted out.
Comment