Przeglądaj źródła

Merge pull request #3004 from xuzhuoyi/tms320-int-bugfix

[bsp][tms320f28379d] Fix an issue that interrupts are disabled in the thread
Bernard Xiong 5 lat temu
rodzic
commit
a712f6804f

+ 0 - 2
bsp/tms320f28379d/applications/startup.c

@@ -47,8 +47,6 @@ void rtthread_startup(void)
     /* init board */
     rt_hw_board_init();
 
-    rt_hw_interrupt_disable();
-
     /* show version */
     rt_show_version();
 

+ 0 - 1
bsp/tms320f28379d/drivers/drv_sci.c

@@ -223,7 +223,6 @@ int rt_hw_sci_init(void)
     PieCtrlRegs.PIECTRL.bit.ENPIE = 1;   // Enable the PIE block
     PieCtrlRegs.PIEIER9.bit.INTx1 = 1;   // PIE Group 9, INT1
     IER |= 0x100;                        // Enable CPU INT
-    EINT;
 
     struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
     rt_err_t result = 0;

+ 1 - 1
libcpu/ti-dsp/c28x/cpuport.c

@@ -78,7 +78,7 @@ rt_uint8_t *rt_hw_stack_init(void       *tentry,
     stack_frame->exception_stack_frame.acc     = 0x33332222;
     stack_frame->exception_stack_frame.ar1_ar0 = 0x00001111 & (unsigned long)parameter; /* ar0 : argument */
     stack_frame->exception_stack_frame.p       = 0x55554444;                            /* p */
-    stack_frame->exception_stack_frame.dp_st1  = (0x00000000) | rt_hw_get_st1();        /* dp_st1 */
+    stack_frame->exception_stack_frame.dp_st1  = (0x00000000) | rt_hw_get_st1() & 0xFFFFFFFE;        /* dp_st1 */
     stack_frame->exception_stack_frame.dbgstat_ier    = 0;                              /* dbgstat_ier */
     stack_frame->exception_stack_frame.return_address = (unsigned long)tentry;          /* return_address */
     stack_frame->rpc = (unsigned long)texit;