]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Added checks for the maximum number of ISRs. New vectors does NOT install over old...
authormahi <devnull@localhost>
Wed, 22 Jun 2011 20:56:04 +0000 (22:56 +0200)
committermahi <devnull@localhost>
Wed, 22 Jun 2011 20:56:04 +0000 (22:56 +0200)
1  2 
common/msl_port.c
system/kernel/isr.c

index d88feb0def94ab8ad79b69bf36356f1a606b6975,da5fe48c158b693bf9cb4bd3e2b1a1c34390ef13..a605e45861b79c54f44250fcb1c794a9b2827718
@@@ -108,6 -109,8 +109,16 @@@ void __init_user(void
  \r
  void exit(int exit ) {\r
        (void)exit;\r
++      /* !! WARNING !! !! WARNING !! !! WARNING !!\r
++       *\r
++       * ENDING UP HERE CAN BE VERY BAD:\r
++       * 1. You got an assert() (calls exit())\r
++       * 2. For some other reason (deliberately exited main() ?)\r
++       *\r
++       * TODO: Call reset of card?\r
++       * */\r
+       DisableAllInterrupts();\r
+       while(1);\r
  }\r
  \r
  \r
index 12fb916e976cbe382ae018bf901d17d93b032255,f4201b0fce6e97f7df21d12b81fa64ab2e6a0fd9..1cbfdf657b94bac7b3cf4b8c8150615c0b11bcc8
@@@ -75,6 -76,9 +76,9 @@@ void Os_IsrInit( void ) 
  \r
        Irq_Init();\r
  \r
 -      memset(&Os_VectorToIsr[OS_ISR_CNT],ILL_VECTOR,OS_ISR_MAX_CNT-OS_ISR_CNT);\r
+       /* Probably something smarter, but I cant figure out what */\r
++      memset(&Os_VectorToIsr[OS_ISR_CNT],ILL_VECTOR,NUMBER_OF_INTERRUPTS_AND_EXCEPTIONS-OS_ISR_CNT);\r
\r
  #if OS_ISR_CNT != 0\r
        /* Attach the interrupts */\r
        for (int i = 0; i < Os_Sys.isrCnt; i++) {\r