We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi all!
My problem started with migration from MDK 401 to MDK 410 and is still happening on all new versions. Compile on my old computer with MDK401 always produced a flawless code, while program compiled with a newer version of Keil never worked. Furthermore, even if I install 401 on a new clean system, the problem does not disappear anymore.
The program always crashes when exiting from interrupt (timer, serial, ...) in which an event flag was set (using isr_evt_set). The error appears in line 5 of the os function os_evt_psh (STRH R0,[R4,#0x18]), where the simulator reports an error: *** error 65: access violation at 0x00000118 : no 'write' permission. The error disappears by either disabling the interrupt or commenting the isr_evt_set call. However, it is not necessary that an interrupt with isr_evt_set call will crash. E.g. a serial interrupt with two isr_evt_set calls was working, but as I added another call, one of previously working calls started crashing. I am really lost, so any help would be appreciated! Target:LPC2148.
Regards,
Matic
Might you have too short queue configured?
I finally figured it out. It was not the queue size, although thanx for your suggestion.
The problem was calling isr_evt_set when the target task didn't exist. It all makes sense now, the event was written to a non-ram location, where the write permission triggered an error.
I just can't figure it out, why the same code was working on my old computer.
Regards, Matic