Add stack monitor. Change internal uip address to 200 for RPL.
This commit is contained in:
parent
46297de770
commit
ef4bb08c3e
3 changed files with 37 additions and 4 deletions
|
@ -581,7 +581,22 @@ extern uip_ds6_netif_t uip_ds6_if;
|
|||
PRINTF_P(PSTR(" * Configuration: %d, USB<->ETH is "), usb_configuration_nb);
|
||||
if (usb_eth_is_active == 0) PRINTF_P(PSTR("not "));
|
||||
PRINTF_P(PSTR("active\n\r"));
|
||||
|
||||
|
||||
#if CONFIG_STACK_MONITOR
|
||||
/* See contiki-raven-main.c for initialization of the magic numbers */
|
||||
{
|
||||
extern uint16_t __bss_end;
|
||||
uint16_t p=(uint16_t)&__bss_end;
|
||||
do {
|
||||
if (*(uint16_t *)p != 0x4242) {
|
||||
printf_P(PSTR(" * Never-used stack > %d bytes\n\r"),p-(uint16_t)&__bss_end);
|
||||
break;
|
||||
}
|
||||
p+=100;
|
||||
} while (p<RAMEND-100);
|
||||
}
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
|
|
|
@ -99,6 +99,9 @@ unsigned long clock_seconds(void);
|
|||
/* Starting address for code received via the codeprop facility. Not tested on Jackdaw */
|
||||
//#define EEPROMFS_ADDR_CODEPROP 0x8000
|
||||
|
||||
/* Simple stack monitor. Status is displayed from the USB menu with 'm' command */
|
||||
#define CONFIG_STACK_MONITOR 1
|
||||
|
||||
/* ************************************************************************** */
|
||||
//#pragma mark USB Ethernet Hooks
|
||||
/* ************************************************************************** */
|
||||
|
@ -349,7 +352,7 @@ extern void mac_log_802_15_4_rx(const uint8_t* buffer, size_t total_len);
|
|||
#define UIP_CONF_ND6_RETRANS_TIMER 10000
|
||||
|
||||
/* Save all the RAM we can */
|
||||
#define PROCESS_CONF_NO_PROCESS_NAMES 0
|
||||
#define PROCESS_CONF_NO_PROCESS_NAMES 1
|
||||
#undef QUEUEBUF_CONF_NUM
|
||||
#define QUEUEBUF_CONF_NUM 2
|
||||
#undef QUEUEBUF_CONF_REF_NUM
|
||||
|
|
|
@ -157,7 +157,8 @@ PROCESS_THREAD(border_router_process, ev, data)
|
|||
memcpy_P(buf,dag_id,sizeof(dag_id));
|
||||
dag = rpl_set_root((uip_ip6addr_t *)buf);
|
||||
|
||||
/* Assign bbbb::11 to the uip stack, and bbbb::1 to the host network interface, e.g. $ip -6 address add bbbb::1/64 dev usb0 */
|
||||
/* Assign bbbb::200 to the uip stack, and bbbb::1 to the host network interface, e.g. $ip -6 address add bbbb::1/64 dev usb0 */
|
||||
/* Note the jackdaw uip stack will get packets intended for usb if they have the same address! */
|
||||
/* $ifconfig usb0 -arp on Ubuntu to skip the neighbor solicitations. Add explicit neighbors on other OSs */
|
||||
if(dag != NULL) {
|
||||
PRINTF("created a new RPL dag\n");
|
||||
|
@ -168,7 +169,7 @@ PROCESS_THREAD(border_router_process, ev, data)
|
|||
|
||||
#else
|
||||
uip_ip6addr_t ipaddr;
|
||||
uip_ip6addr(&ipaddr, 0xbbbb, 0, 0, 0, 0, 0, 0, 0x1);
|
||||
uip_ip6addr(&ipaddr, 0xbbbb, 0, 0, 0, 0, 0, 0, 0x200);
|
||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL);
|
||||
rpl_set_prefix(dag, &ipaddr, 64);
|
||||
#endif
|
||||
|
@ -304,6 +305,20 @@ static void initialize(void) {
|
|||
watchdog_init();
|
||||
watchdog_start();
|
||||
|
||||
#if CONFIG_STACK_MONITOR
|
||||
/* Simple stack pointer highwater monitor. The 'm' command in cdc_task.c
|
||||
* looks for the first overwritten magic number.
|
||||
*/
|
||||
{
|
||||
extern uint16_t __bss_end;
|
||||
uint16_t p=(uint16_t)&__bss_end;
|
||||
do {
|
||||
*(uint16_t *)p = 0x4242;
|
||||
p+=100;
|
||||
} while (p<RAMEND-100);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize hardware */
|
||||
// Checks for "finger", jumps to DFU if present.
|
||||
init_lowlevel();
|
||||
|
|
Loading…
Reference in a new issue