void cyg_hal_user_break( CYG_ADDRWORD *regs ) { #if defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs) \ || defined(CYGSEM_HAL_USE_ROM_MONITOR_CygMon) \ || defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) CYG_ADDRWORD __ra; CYG_WORD32 __pc; HAL_SavedRegisters *sreg = (HAL_SavedRegisters *)regs; CYGARC_HAL_GET_RETURN_ADDRESS(__ra, _cyg_hal_compiler_dummy); if( regs == NULL ) __pc = __ra; else CYGARC_HAL_GET_PC_REG(sreg, __pc); CYGACC_CALL_IF_INSTALL_BPT_FN((void *)__pc); CYGARC_HAL_GET_RETURN_ADDRESS_BACKUP(_cyg_hal_compiler_dummy); #else HAL_BREAKPOINT(breakinst); #endif }
void cyg_hal_user_break( CYG_ADDRWORD *regs ) { #if defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs) { extern CYG_ADDRESS hal_virtual_vector_table[64]; typedef void install_bpt_fn(void *pc); CYG_WORD32 retpc = ((CYG_WORD32 *)(®s))[-1]; CYG_WORD32 pc; HAL_SavedRegisters *sreg = (HAL_SavedRegisters *)regs; install_bpt_fn *ibp = (install_bpt_fn *)hal_virtual_vector_table[35]; if( regs == NULL ) pc = retpc; else pc = sreg->pc; if( ibp != NULL ) ibp((void *)pc); } #elif defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) { extern void breakpoint(void); breakpoint(); } #else HAL_BREAKPOINT(breakinst); #endif }
/**************************************************************************** * * NAME: AppColdStart * * DESCRIPTION: * Entry point for application from boot loader. Initialises system and runs * main loop. * * RETURNS: * Never returns. * ****************************************************************************/ PUBLIC void AppColdStart(void) { /* Debug hooks: include these regardless of whether debugging or not */ HAL_GDB_INIT(); HAL_BREAKPOINT(); /* Set network information */ JZS_sConfig.u32Channel = WSN_CHANNEL; JZS_sConfig.u16PanId = WSN_PAN_ID; /* General initialisation */ vInit(); /* No return from the above function call */ }
void breakpoint(void) { HAL_BREAKPOINT(_breakinst); }
static void ieee_mcpspt(MAC_McpsDcfmInd_s *ev) /* packet input and output thread */ { rimeaddr_t rime; switch(ev->u8Type) { case MAC_MCPS_IND_DATA: GDB2_PUTS(","); /* new frame received */ packetbuf_clear(); packetbuf_copyfrom(asdataframe(ev).au8Sdu, asdataframe(ev).u8SduLength); packetbuf_set_datalen(asdataframe(ev).u8SduLength); packetbuf_set_addr(PACKETBUF_ADDR_SENDER, asrimeaddr(&asdataframe(ev).sSrcAddr.uAddr.sExt, &rime)); if(asdataframe(ev).sDstAddr.u8AddrMode==LONG) { /* addressed frame */ packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, asrimeaddr(&asdataframe(ev).sDstAddr.uAddr.sExt, &rime)); } else if(asdataframe(ev).sDstAddr.u8AddrMode==SHORT && asdataframe(ev).sDstAddr.u16PanId==BROADCAST_PANID && asdataframe(ev).sDstAddr.uAddr.u16Short==BROADCAST_ADDR) { /* broadcast frame */ packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, &rimeaddr_null); } /* update lqi stuff and call lqi callback */ packetbuf_set_attr(PACKETBUF_ATTR_RSSI, asdataframe(ev).u8LinkQuality); if (asdataframe(ev).sSrcAddr.u8AddrMode == LONG && lqicb) lqicb(asrimeaddr(&asdataframe(ev).sSrcAddr.uAddr.sExt, &rime), asdataframe(ev).u8LinkQuality); else if (lqicb) lqicb(NULL, asdataframe(ev).u8LinkQuality); #if USE_TS current_timestamp = asdataframe(ev).timestamp; #endif //{ // static char buf[512]; // uint8_t i; // uint16_t j; // printf("delay:%d len:%d data:", (int32_t) (clock_hrtime()-asdataframe(ev).timestamp), asdataframe(ev).u8SduLength); // for (i=0,j=0; i<asdataframe(ev).u8SduLength; i++) // j+=snprintf(buf+j,sizeof(buf)-j,"0x%x ",asdataframe(ev).au8Sdu[i]); // buf[j]='\n'; // puts(buf); //} /* call upper layer */ NETSTACK_NETWORK.input(); break; case MAC_MCPS_DCFM_DATA: mac_call_sent_callback(mac_cb, mac_cb_ptr, tx_status(&asdataind(ev)), 1); break; case MAC_MCPS_DCFM_PURGE: default: HAL_BREAKPOINT(); break; } }