コード例 #1
0
ファイル: main.c プロジェクト: jovanbulck/thesis-src
int main()
{
    WDTCTL = WDTPW | WDTHOLD;
    uart_init();
    printf_int("\n---------------\n[main] started, I have id %d\n\n",
    sancus_get_self_id());
    
    sancus_enable(&a);
    sancus_enable(&foo);
    sancus_enable(&bar);
    sancus_enable(&scheduler);

    //do_control_flow_integrity_hack();
    
    puts("[main] set sm internal vars");
    set_a_vars();
    set_bar_vars();
    set_foo_vars();
    
    puts("[main] initializing scheduler");
    initialize_scheduler();
    
    register_thread_portal(&a, SM_GET_ENTRY_IDX(a, enter_a));
    register_thread_portal(&foo, SM_GET_ENTRY_IDX(foo, enter_foo));    
    register_thread_portal(&bar, SM_GET_ENTRY_IDX(bar, call_a_illegal_ret));
    dump_scheduler();
    
    puts("[main] dumping thr ids");
    print_a_cur_thr_id();
    print_bar_cur_thr_id();
    print_foo_cur_thr_id();
    
    puts("[main] starting scheduler");
    start_scheduling();

    puts("[main] return from scheduler:");
    dump_scheduler();
    
    puts("[main] dumping thr ids");
    print_a_cur_thr_id();
    print_bar_cur_thr_id();
    print_foo_cur_thr_id();
    
    puts("\n[main] exiting\n-----------------");
    EXIT
}
コード例 #2
0
static void x212 () {
  //DEPLOY FUNCTION
  sancus_enable(&mod1);
  sm_register_existing(&mod1);

}