[ese519-group2] r68 committed - really now all the stuff :)

35 views
Skip to first unread message

ese519...@googlecode.com

unread,
Dec 11, 2010, 3:39:36 PM12/11/10
to ese519upe...@googlegroups.com
Revision: 68
Author: philasare
Date: Sat Dec 11 12:36:09 2010
Log: really now all the stuff :)
http://code.google.com/p/ese519-group2/source/detail?r=68

Added:
/trunk/monome/controller_base_comm
/trunk/monome/controller_base_comm/base_station
/trunk/monome/controller_base_comm/base_station/main.c
/trunk/monome/controller_base_comm/base_station/main.d
/trunk/monome/controller_base_comm/base_station/main.elf
/trunk/monome/controller_base_comm/base_station/main.hex
/trunk/monome/controller_base_comm/base_station/main.lss
/trunk/monome/controller_base_comm/base_station/main.lst
/trunk/monome/controller_base_comm/base_station/main.map
/trunk/monome/controller_base_comm/base_station/main.sym
/trunk/monome/controller_base_comm/base_station/makefile
/trunk/monome/controller_base_comm/base_station/nrk_cfg.h
/trunk/monome/controller_base_comm/controllers
/trunk/monome/controller_base_comm/controllers/main.c
/trunk/monome/controller_base_comm/controllers/main.d
/trunk/monome/controller_base_comm/controllers/main.elf
/trunk/monome/controller_base_comm/controllers/main.hex
/trunk/monome/controller_base_comm/controllers/main.lss
/trunk/monome/controller_base_comm/controllers/main.lst
/trunk/monome/controller_base_comm/controllers/main.map
/trunk/monome/controller_base_comm/controllers/main.sym
/trunk/monome/controller_base_comm/controllers/makefile
/trunk/monome/controller_base_comm/controllers/nrk_cfg.h
/trunk/monome/controller_base_comm/controllers_semi-complete
/trunk/monome/controller_base_comm/controllers_semi-complete/main.c
/trunk/monome/controller_base_comm/controllers_semi-complete/main.d
/trunk/monome/controller_base_comm/controllers_semi-complete/main.elf
/trunk/monome/controller_base_comm/controllers_semi-complete/main.hex
/trunk/monome/controller_base_comm/controllers_semi-complete/main.lss
/trunk/monome/controller_base_comm/controllers_semi-complete/main.lst
/trunk/monome/controller_base_comm/controllers_semi-complete/main.map
/trunk/monome/controller_base_comm/controllers_semi-complete/main.sym
/trunk/monome/controller_base_comm/controllers_semi-complete/makefile
/trunk/monome/controller_base_comm/controllers_semi-complete/nrk_cfg.h
/trunk/monome/controller_icomm_test_bed
/trunk/monome/controller_icomm_test_bed/controller
/trunk/monome/controller_icomm_test_bed/controller/main.c
/trunk/monome/controller_icomm_test_bed/controller/main.d
/trunk/monome/controller_icomm_test_bed/controller/main.elf
/trunk/monome/controller_icomm_test_bed/controller/main.hex
/trunk/monome/controller_icomm_test_bed/controller/main.lss
/trunk/monome/controller_icomm_test_bed/controller/main.lst
/trunk/monome/controller_icomm_test_bed/controller/main.map
/trunk/monome/controller_icomm_test_bed/controller/main.sym
/trunk/monome/controller_icomm_test_bed/controller/makefile
/trunk/monome/controller_icomm_test_bed/controller/nrk_cfg.h
/trunk/monome/controller_icomm_test_bed/state_gen
/trunk/monome/controller_icomm_test_bed/state_gen/main.c
/trunk/monome/controller_icomm_test_bed/state_gen/main.d
/trunk/monome/controller_icomm_test_bed/state_gen/main.elf
/trunk/monome/controller_icomm_test_bed/state_gen/main.hex
/trunk/monome/controller_icomm_test_bed/state_gen/main.lss
/trunk/monome/controller_icomm_test_bed/state_gen/main.lst
/trunk/monome/controller_icomm_test_bed/state_gen/main.map
/trunk/monome/controller_icomm_test_bed/state_gen/main.sym
/trunk/monome/controller_icomm_test_bed/state_gen/makefile
/trunk/monome/controller_icomm_test_bed/state_gen/nrk_cfg.h

=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.c Sat Dec 11
12:36:09 2010
@@ -0,0 +1,248 @@
+/*
+ * main.c
+ *
+ *
+ * Created by Philip Asare on 12/6/10.
+ * Copyright 2010. All rights reserved.
+ *
+ *
+ * monome sketch-it base station
+ *
+ * communication
+ * -------------
+ * to controllers --> wireless (RT-Link)
+ * to console display --> UART
+ *
+ */
+
+
+#include <nrk.h>
+#include <include.h>
+#include <ulib.h>
+#include <stdio.h>
+#include <avr/sleep.h>
+#include <hal.h>
+#include <rt_link.h>
+#include <nrk_error.h>
+
+/* controller tx slots --> base station rx slots */
+#define C1_TX 2
+#define C2_TX 4
+#define C3_TX 6
+#define C4_TX 8
+
+/* controller rx slots --> base station rx slots */
+#define ALL_RX 3
+#define C1_RX 5
+#define C2_RX 7
+#define C3_RX 9
+#define C4_RX 11
+
+/* game states and controller tracking */
+#define MAX_NUM_PLAYERS 4
+
+uint8_t state, num_players;
+uint8_t player_tx[MAX_NUM_PLAYERS];
+uint8_t player_rx[MAX_NUM_PLAYERS];
+
+#define SYNC 1
+#define SELECT (1<<1)
+#define PREGAME (1<<2)
+
+/* monome helper functions */
+
+#define type(x) (sizeof(x) + PKT_DATA_START)
+
+typedef struct{
+ uint8_t player;
+} monome_comm_sync_pkt;
+
+typedef struct{
+ uint8_t players;
+ uint8_t game_type;
+} monome_comm_select_pkt;
+
+monome_comm_sync_pkt sync_pkt;
+
+uint8_t tx_len;
+
+/* task setup */
+
+NRK_STK Stack1[NRK_APP_STACKSIZE];
+nrk_task_type TaskOne;
+void Task1(void);
+
+inline void monome_comm_init();
+inline void monome_setup_system();
+inline void monome_add_controller(uint8_t slot);
+void nrk_create_taskset();
+
+uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+
+int
+main ()
+{
+ uint16_t div;
+ nrk_setup_ports();
+ nrk_setup_uart(UART_BAUDRATE_115K2);
+
+ printf( "Starting up...\r\n" );
+
+
+ nrk_init();
+
+ nrk_led_clr(0);
+ nrk_led_clr(1);
+ nrk_led_clr(2);
+ nrk_led_clr(3);
+
+ nrk_time_set(0,0);
+
+
+ rtl_task_config();
+
+ nrk_create_taskset ();
+
+ nrk_start();
+
+ return 0;
+}
+
+void Task1()
+{
+ //uint8_t j, i;
+ uint8_t *local_rx_buf;
+ uint8_t length,slot;
+ int8_t rssi;
+
+ monome_comm_init();
+ monome_setup_system();
+ while(!rtl_ready()) nrk_wait_until_next_period();
+
+
+
+ while(1){
+ if( rtl_rx_pkt_check()!=0 )
+ {
+ nrk_led_set(BLUE_LED);
+ local_rx_buf=rtl_rx_pkt_get(&length, &rssi, &slot);
+ printf( "Got Packet on slot %d %d: \r\n",slot,length );
+ if(length == type(monome_comm_sync_pkt)){
+ rtl_rx_pkt_release();
+ if((state & SYNC) && (num_players < MAX_NUM_PLAYERS)){
+ monome_add_controller(slot);
+ }
+ else{
+ printf("maximum number of players synced\r\n");
+ }
+ }
+ if(length == type(monome_comm_select_pkt)){
+
+ }
+ nrk_led_clr(BLUE_LED);
+ }
+
+ nrk_wait_until_next_period();
+
+ }
+
+}
+
+
+void
+nrk_create_taskset()
+{
+
+
+ TaskOne.task = Task1;
+ TaskOne.Ptos = (void *) &Stack1[NRK_APP_STACKSIZE-1];
+ TaskOne.Pbos = (void *) &Stack1[0];
+ TaskOne.prio = 2;
+ TaskOne.FirstActivation = TRUE;
+ TaskOne.Type = BASIC_TASK;
+ TaskOne.SchType = PREEMPTIVE;
+ TaskOne.period.secs = 1;
+ TaskOne.period.nano_secs = 0;
+ TaskOne.cpu_reserve.secs = 0;
+ TaskOne.cpu_reserve.nano_secs = 100*NANOS_PER_MS;
+ TaskOne.offset.secs = 0;
+ TaskOne.offset.nano_secs= 0;
+ nrk_activate_task (&TaskOne);
+
+
+ printf ("Create done\r\n");
+}
+
+inline void monome_comm_init(){
+ rtl_init (RTL_COORDINATOR);
+
+ /* rx schedules */
+ rtl_set_schedule( RTL_RX, C1_TX, 1 );
+ rtl_set_schedule( RTL_RX, C2_TX, 1 );
+ rtl_set_schedule( RTL_RX, C3_TX, 1 );
+ rtl_set_schedule( RTL_RX, C4_TX, 1 );
+
+ /* tx schedules */
+ rtl_set_schedule( RTL_TX, ALL_RX, 1 );
+ rtl_set_schedule( RTL_TX, C1_RX, 1 );
+ rtl_set_schedule( RTL_TX, C2_RX, 1 );
+ rtl_set_schedule( RTL_TX, C3_RX, 1 );
+ rtl_set_schedule( RTL_TX, C4_RX, 1 );
+
+ rtl_start();
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+}
+
+inline void monome_setup_system(){
+ int i;
+ state = SYNC;
+ num_players = 0;
+ for(i = 0; i < MAX_NUM_PLAYERS; i++){
+ player_rx[i] = -1;
+ player_tx[i] = -1;
+ }
+
+}
+
+inline void monome_add_controller(uint8_t slot){
+ int i, already_player;
+ already_player = 0;
+ for(i = 0; i<num_players; i++){
+ if(slot == player_tx[i]){
+ already_player = 1;
+ }
+ }
+ if(already_player == 0){
+ /* consider code to add player back if player is lost */
+ switch(slot){
+ case C1_TX: player_tx[num_players] = C1_TX;
+ player_rx[num_players] = C1_RX;
+ break;
+ case C2_TX: player_tx[num_players] = C2_TX;
+ player_rx[num_players] = C2_RX;
+ break;
+ case C3_TX: player_tx[num_players] = C3_TX;
+ player_rx[num_players] = C3_RX;
+ break;
+ case C4_TX: player_tx[num_players] = C4_TX;
+ player_rx[num_players] = C4_RX;
+ break;
+ default: break;
+ }
+ while( rtl_tx_pkt_check(player_rx[num_players])!=0 );
+ sync_pkt.player = num_players;
+ printf("player number sent: %d\r\n", sync_pkt.player);
+ memcpy(&tx_buf[PKT_DATA_START], &sync_pkt, sizeof(monome_comm_sync_pkt));
+ tx_len = type(monome_comm_sync_pkt);
+ rtl_tx_pkt( tx_buf, tx_len, player_rx[num_players]);
+ rtl_wait_until_tx_done(player_rx[num_players]);
+ num_players++;
+ printf("added new player: player %d\r\n", num_players);
+ }
+
+}
+
+
+
+
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.d Sat Dec 11
12:36:09 2010
@@ -0,0 +1,17 @@
+main.o main.d : main.c ../../../../../src/kernel/include/nrk.h \
+ ../../../../../src/kernel/hal/include/nrk_cpu.h nrk_cfg.h \
+ ../../../../../src/kernel/include/nrk_time.h \
+ ../../../../../src/platform/firefly2_2/include/include.h \
+ ../../../../../src/platform/firefly2_2/include/hal.h \
+ ../../../../../src/platform/firefly2_2/include/hal_firefly2_2.h \
+ ../../../../../src/radio/cc2420/include/hal_cc2420.h \
+ ../../../../../src/radio/cc2420/hal/atmega1281/cc2420_mcu_hal.h \
+ ../../../../../src/radio/cc2420/platform/firefly2_2/cc2420_platform_hal.h
\
+ ../../../../../src/radio/cc2420/include/basic_rf.h \
+ ../../../../../src/kernel/include/nrk_events.h \
+ ../../../../../src/platform/include/ulib.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_pin_define.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_platform_time.h \
+ ../../../../../src/kernel/include/nrk_task.h \
+ ../../../../../src/net/rt_link/rt_link.h \
+ ../../../../../src/kernel/include/nrk_error.h
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.elf Sat Dec 11
12:36:09 2010
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.hex Sat Dec 11
12:36:09 2010
@@ -0,0 +1,1710 @@
+:100000000C948F010C94E72E0C94B92E0C94AE0135
+:100010000C94AE010C94AE010C94AE010C94AE01A4
+:100020000C94AE010C94152F0C94AE010C94AE01FF
+:100030000C94AE010C949A2C0C94AE010C949A2C56
+:100040000C94AE010C94CD2C0C94AE010C94AE012A
+:100050000C94AE010C94AE010C94AE010C94AE0164
+:100060000C94AE010C94AE010C94AE010C94AE0154
+:100070000C94AE010C94AE010C94AE010C94AE0144
+:100080000C94D72C0C94AE010C94AE010C94AE01E0
+:100090000C94AE010C94AE010C94AE010C94AE0124
+:1000A0000C94AE010C94AE010C94AE010C94AE0114
+:1000B0000C94AE010C94AE010C94AE010C94AE0104
+:1000C0000C94AE010C94AE010C94AE01321F381F9B
+:1000D0003B1F3E1F411F441F4A1F471F4D1F501FFC
+:1000E000531F591F5C1F5F1F621F561F2F1F351F95
+:1000F00052542D4C696E6B204552524F523A206338
+:1001000072656174696E67207478207369676E61C7
+:100110006C206661696C65640D0A0052542D4C694F
+:100120006E6B204552524F523A206372656174697A
+:100130006E67207278207369676E616C20666169F2
+:100140006C65640D0A00554E4B4F574E0046616971
+:100150006C656420746F20637265617465205365FB
+:100160006D6170686F7265004661696C65642074CA
+:100170006F20637265617465205369676E616C00FE
+:100180004B65726E656C2066756E6374696F6E2068
+:100190006E6F7420696D706C656D656E746564005A
+:1001A000446576696365204472697665722045729C
+:1001B000726F72005761746368646F672052657371
+:1001C000746172740054696D6572204F7665726651
+:1001D0006C6F7700556E68616E646C656420496E63
+:1001E0007465727275707420566563746F72004C1A
+:1001F0006F7720566F6C7461676500457874726123
+:10020000205461736B20737461727465642C20696F
+:1002100073206E726B5F6366672E68206F6B3F00A2
+:1002200049646C65206F72204B65726E656C20535B
+:100230007461636B204F766572666C6F7700556EE4
+:100240006578706563746564205265737461727457
+:10025000004475706C696361746564205461736BEC
+:10026000204944005363686564756C6572204D696C
+:10027000737365642057616B657570005461736BAF
+:1002800020526573657276652056696F6C6174657E
+:10029000640052657365727665204572726F7220D4
+:1002A000696E205363686564756C657200496E768B
+:1002B000616C696420537461636B20506F696E7464
+:1002C0006572005461736B20537461636B204F76C9
+:1002D0006572666C6F7700537461636B207761732E
+:1002E000206E6F7420646566696E6564206173209A
+:1002F0006C6172676520656E6F7567682100293AC9
+:1003000020002A4E524B204552524F5228000D0ACF
+:10031000535441434B2044554D500D0A00001124C5
+:100320001FBECFEFD1E2DEBFCDBF13E0A0E0B2E051
+:10033000EAEBF9E600E00BBF02C007900D92A03196
+:10034000B107D9F718E0A0E1B3E001C01D92AE31CA
+:10035000B107E1F70E9457030C94DC340C94052D8F
+:1003600081E08093F70310920F0420E030E0F90160
+:10037000E35FFA4F8FEF8083F901E357F94F8083F2
+:100380002F5F3F4F2430310591F70895982F8091CA
+:100390000F04A82FBB27EDE8F6E040E050E09D01F8
+:1003A0002E0F3F1F06C08081981711F441E050E0E6
+:1003B0003196E217F307B9F7452B09F073C0943073
+:1003C00091F0953018F4923031F505C0963099F0DF
+:1003D000983009F518C0FD01E357F94F9083A35FEA
+:1003E000BA4F85E017C0FD01E357F94F9083A35F33
+:1003F000BA4F87E00FC0FD01E357F94F9083A35F29
+:10040000BA4F89E007C0FD01E357F94F9083A35F1E
+:10041000BA4F8BE08C93E0910F04FF27E35FFA4F14
+:1004200080810E94A8038823B1F780910F048093F4
+:10043000850499279F938F9380E092E09F938F93F9
+:100440000E94D632809185048093170584E08093C2
+:100450009605E0910F04FF27E35FFA4F408164E0C7
+:1004600084E195E00E94C007E0910F04FF27E35F5D
+:10047000FA4F80810E94640A80910F048F5F8093FD
+:100480000F0499279F938F9389E192E09F938F9315
+:100490000E94D6328DB79EB708960FB6F8949EBFCD
+:1004A0000FBE8DBF089582E00E948B0441E062E0A0
+:1004B00080E00E94D60A41E064E080E00E94D60A13
+:1004C00041E066E080E00E94D60A41E068E080E01A
+:1004D0000E94D60A41E063E081E00E94D60A41E032
+:1004E00065E081E00E94D60A41E067E081E00E9479
+:1004F000D60A41E069E081E00E94D60A41E06BE063
+:1005000081E00E94D60A0E94470464E781E194E0FA
+:100510000E94E203089588EE92E09093DA038093BC
+:10052000D90386E095E09093D6038093D50387E8BE
+:1005300094E09093D8038093D70382E08093DC0308
+:1005400081E08093DB038093DD038093DE0381E011
+:1005500090E0A0E0B0E08093DF039093E003A093ED
+:10056000E103B093E2031092E3031092E4031092CC
+:10057000E5031092E6031092E7031092E80310924D
+:10058000E9031092EA0380E091EEA5EFB5E08093D5
+:10059000EB039093EC03A093ED03B093EE03109262
+:1005A000EF031092F0031092F1031092F2031092F5
+:1005B000F3031092F4031092F5031092F60384ED06
+:1005C00093E00E947E2687E392E00E94F63208952F
+:1005D0008F929F92AF92BF92CF92DF92EF92FF9253
+:1005E0000F931F93CF93DF93CDB7DEB723970FB64B
+:1005F000F894DEBF0FBECDBF0E9453020E94B0012F
+:1006000002C00E9440260E948E038823D1F322E07C
+:10061000822E912C8C0E9D1E93E0A92EB12CAC0E37
+:10062000BD1E6E010894C11CD11C84E4E82E82E03A
+:10063000F82E01E612E00E94C3038823A9F181E0AD
+:1006400090E00E94781BA401B501C6010E949D0A9A
+:10065000898199279F938F938A8199279F938F935D
+:10066000FF92EF920E94D6328DB79EB706960FB6D4
+:10067000F8949EBF0FBE8DBF8981843089F40E949B
+:10068000A5038091F703813041F480910F048430F9
+:1006900020F48A810E94C60103C0C8010E94F6327C
+:1006A00081E090E00E945B1B0E944026C4CFCFEF08
+:1006B000D1E2DEBFCDBF0E94BB1787E090E00E9471
+:1006C000F01B83E892E00E94F6320E944B1E80E00D
+:1006D00090E00E945B1B81E090E00E945B1B82E047
+:1006E00090E00E945B1B83E090E00E945B1B20E097
+:1006F00030E040E050E060E070E080E090E00E9498
+:10070000E2270E94F2030E948B020E94EB1D80E010
+:1007100090E00C94DC348FEF9FEF089580912303D9
+:10072000813019F481E090E008958FEF9FEF0895F4
+:100730008091290790912A0708958091A90399270C
+:1007400008958091880599270895109213050895BA
+:10075000282F813231F480911004992787FD9095DC
+:1007600008958091A4039091A503A091A603B09150
+:10077000A70304C0B695A795979587952A95D2F7B4
+:1007800081709070089580911305992787FD909549
+:1007900008959093220380932103089590938A05EE
+:1007A000809389050895909312058093110508950B
+:1007B0009093AC038093AB03089590938D05809341
+:1007C0008C050895662359F0009749F0909305042D
+:1007D000809304046093030481E090E008958FEF18
+:1007E0009FEF08950F931F9384E098E09093B303D5
+:1007F0008093B2030DEA13E040E850E064E273E056
+:10080000C8010E94F12F84E18093B50381E08093B9
+:10081000B4038093B6038093B7031092B803109289
+:10082000B9031092BA031092BB038BE49CE1A6E8D3
+:10083000B0E08093BC039093BD03A093BE03B0933C
+:10084000BF031092C0031092C1031092C203109212
+:10085000C3031092C4031092C5031092C6031092F2
+:10086000C7031092C8031092C9031092CA031092D2
+:10087000CB031092CC031092CD031092CE031092B2
+:10088000CF03C8010E947E261F910F910895809189
+:100890008B058230B1F48091D0039091D103A09167
+:1008A000D203B091D30380FF07C080912E07992710
+:1008B0008F70907005972CF044E060E081E00E941A
+:1008C000D60A0E94820C82E08093230308950F933E
+:1008D0001F93CF93DF93062F8093AA038823B1F051
+:1008E0001FE1CFE1D0E0C81BD1090BC0402F612F21
+:1008F00080E00E94D60A402F612F81E00E94D60A34
+:100900001150812F9927C817D90784F3DF91CF9110
+:100910001F910F9108951F93182F0E94A520809377
+:1009200002078F3F19F48BE191E008C00E94A520D7
+:1009300080935E078F3F69F480EF90E00E94111C66
+:10094000E091F507F091F60760858EE00E949E1F0A
+:100950007DC01092050410920404109203040E94BA
+:10096000DA2B109208041092910610921C07109234
+:100970001B07109204071092030781E094E0909304
+:100980001807809317071092A90310938B051092F4
+:10099000AA031092100410921205109211051092E1
+:1009A000AC031092AB0310928D0510928C0510923F
+:1009B0008A0510928905109222031092210384E681
+:1009C0008093200380E49FE190931F0380931E0394
+:1009D00080EA9FE090931D0380931C038AE080933C
+:1009E0001A0380E899E19093190380931803EEE2CB
+:1009F000F7E0119287E0EE33F807D9F71092070578
+:100A0000109208051092090510920A051092D00361
+:100A10001092D1031092D2031092D30310921305B7
+:100A20001092A4031092A5031092A6031092A7039C
+:100A30000E94A40B209118033091190360911A03AE
+:100A400040E254E28FEF93E00E94A8161F910895B0
+:100A50000E94980E08951F93CF93DF93182F8091D3
+:100A6000A903882309F484C0E091AB03F091AC039F
+:100A7000309711F0812F0995C12FDD27FE01EE0F70
+:100A8000FF1FEC0FFD1FEE56F94F8181928190936D
+:100A9000920580939105808180939005E091910566
+:100AA000F09192058091170790911807892F992747
+:100AB0008083E0919105F0919205809117079091C4
+:100AC00018078183E0919105F0919205809191063C
+:100AD000828380919005833011F010E008C0E0918E
+:100AE0009105F091920582818068828311E04091A6
+:100AF0001C0350911D0360910D0770910E078EE845
+:100B000095E00E94D61321E030E040E050E00C2E4A
+:100B100004C0220F331F441F551F0A94D2F720959B
+:100B20003095409550958091A4039091A503A09194
+:100B3000A603B091A70382239323A423B523809314
+:100B4000A4039093A503A093A603B093A7032091B9
+:100B5000AA0380E290E0821B9109C817D90714F01C
+:100B600010921004112321F480915E070E94082244
+:100B7000DF91CF911F9108950F931F93CF93DF9330
+:100B8000CDB7DEB722970FB6F894DEBF0FBECDBF4C
+:100B9000082F60911A038FEF93E00E948A160E943B
+:100BA000350F0E94962C99279A83898389819A818F
+:100BB00004969A8389830BC00E94962C29813A81DE
+:100BC00099272817390718F40E94490F56C00E9428
+:100BD000680F882389F30E94962C99279A8389832A
+:100BE0000E94962C99279A83898389819A810596F8
+:100BF0009A83898308C00E94962C29813A8199277B
+:100C00002817390728F00E94720F182F882399F3AC
+:100C10000E94490F113089F5109313050093860443
+:100C2000E0910404F091050480819927982F88278A
+:100C300021813327282B392B809117079091180792
+:100C40002817390721F03093180720931707E091F0
+:100C50001105F0911205309711F0802F0995E09160
+:100C60000404F0910504828187FD05C0809102078C
+:100C70000E94082202C01092130522960FB6F89423
+:100C8000DEBF0FBECDBFDF91CF911F910F910895B1
+:100C9000CF93DF93EC01FA01842F8F7121E030E0D4
+:100CA00040E050E004C0220F331F441F551F8A95B7
+:100CB000D2F78091D0039091D103A091D203B0914B
+:100CC000D303282339234A235B232115310541050A
+:100CD000510519F080E090E013C0D093F706C0935F
+:100CE000F6066093F506F0930A04E093090460E0C9
+:100CF000CF010E94B70B81E08093880581E090E0EE
+:100D0000DF91CF910895AF92BF92CF92DF92EF9291
+:100D1000FF920F931F93CF93DF93CDB7DEB7229748
+:100D20000FB6F894DEBF0FBECDBFCC24DD24EE2479
+:100D30006FEFA62E63E0B62EE0910404F091050457
+:100D40008FEF8083E0910404F0910504818360912A
+:100D50001A03C5010E948A160E94350F1092A9033A
+:100D60008AEF0E94272C10E01EC00E94962C1817B4
+:100D7000D1F00E94962C182F0894C11CD11C21E19F
+:100D8000C21627E2D20678F010929106E39485E02D
+:100D90008E1518F0CC24DD240BC00E94782FCC24B3
+:100DA000DD24EE2405C00E94680FF82E8823E9F2A6
+:100DB0000E94DE2B0E94E62B9A8389830E94962C48
+:100DC000082F11270C5F1F4FFF2061F006C00E9403
+:100DD000962C99270817190728F00E94720FF82EF1
+:100DE0008823A9F30E94490F21E0F21609F0A4CF4D
+:100DF0008091020418160CF09FCFF0921305E09139
+:100E00000404F0910504808199279093180780933A
+:100E100017078091170790911807982F88279093AC
+:100E200018078093170720911707309118078181C1
+:100E30009927822B932B9093180780931707228171
+:100E4000122F1F7780919106811730F08F3608F4AA
+:100E500073CF1A3008F070CF809117079091180760
+:100E60008F718093860427FD18C02091860480919D
+:100E7000070590910805A0910905B0910A0504C0E5
+:100E8000B695A795979587952A95D2F780FF05C0C7
+:100E9000809102070E94082202C0109213058091DF
+:100EA0001707909118078F71809386048091170718
+:100EB00090911807019790932A0780932907109221
+:100EC00008041093910681E08093A90380911B0789
+:100ED00090911C070E94F80B8091170790911807BA
+:100EE0008050944030F48091170790911807029732
+:100EF00018F48EEF93E005C08091170790911807C2
+:100F0000029790931C0780931B0760E080911B075A
+:100F100090911C070E94B70B0E94820C0E94012C2A
+:100F20000E94182C87E00E940C2C66E67CE680E08C
+:100F300090E00E941B2D0E94182C0E940F2C0E94F2
+:100F4000DE2B0E94E62B90930E0780930D07809175
+:100F5000A903992722960FB6F894DEBF0FBECDBF26
+:100F6000DF91CF911F910F91FF90EF90DF90CF9085
+:100F7000BF90AF90089580931A030E94A51608951C
+:100F80001F93CF93DF93EC01162F413261F40E943F
+:100F900040326091AA0377270E9478344FE1481BC2
+:100FA00081E080931004842F9927FC01EE0FFF1F2E
+:100FB000E80FF91FEE56F94FD283C183108321E069
+:100FC00030E040E050E004C0220F331F441F551FA3
+:100FD0008A95D2F78091A4039091A503A091A603CE
+:100FE000B091A703822B932BA42BB52B8093A40342
+:100FF0009093A503A093A603B093A70381E090E08C
+:10100000DF91CF911F9108956F927F928F929F925F
+:10101000AF92BF92DF92EF92FF920F931F93CF9305
+:10102000DF93109223030E9440268091230388239C
+:10103000D1F381E0809323031092980510929705D5
+:1010400080E193E00E94592910E1612E13E0712E96
+:10105000B5EF8B2EB6E09B2EA8EFAA2EA3E0BA2EFA
+:101060000E94E62B90930E0780930D07C3010E9408
+:1010700059298091170790911807909398058093AC
+:1010800097058150944021F410929805109297058D
+:10109000809117079091180790932A07809329074A
+:1010A00080911707909118078050944008F1109292
+:1010B0001807109217078091030790910407019673
+:1010C0009093040780930307E0912103F09122039A
+:1010D000309729F0809103079091040709950E94A9
+:1010E000820C80918B05823019F481E08093A903F2
+:1010F000E0918905F0918A05309729F080911707D2
+:1011000090911807099580918B05882381F420918F
+:1011100017073091180780911B0790911C070196C3
+:101120002817390721F40E9483068823E1F3809170
+:101130001707909118070E942D0C813059F4E09107
+:101140008C05F0918D05309729F0809117079091CB
+:101150001807099580911707909118070E94A40C11
+:10116000EC0180911707909118070E94610C00977D
+:1011700039F0209709F40AC18C179D0758F406C16D
+:10118000209741F48091170790911807C0E0D4E0B0
+:10119000C81BD90B8091170790911807FFE1DF2E2C
+:1011A000D82280918B05823099F480911707909115
+:1011B0001807892B09F0ECC0809191068F5F80930E
+:1011C000910687FFE5C010929106E2C010920804D4
+:1011D0004D2D5527E1E0EE2EF12C012D112D042E81
+:1011E00004C0EE0CFF1C001F111F0A94D2F780915F
+:1011F0000804882309F043C08091D0039091D10363
+:10120000A091D203B091D3038E219F21A023B123BB
+:101210000097A105B10599F18091A4039091A503D0
+:10122000A091A603B091A7038E219F21A023B123F3
+:101230000097A105B10501F59092FC038092FB0394
+:101240008091F70680688093F70683E08093FA0325
+:101250002091AA0380E290E0821B910984179507F0
+:1012600034F480911004882339F441E201C04D2DFB
+:1012700063E0C5010E94C00781E0809308042091CB
+:1012800017073091180780911B0790911C072817AA
+:10129000390709F448C08091D0039091D103A091FF
+:1012A000D203B091D3032091A4033091A5034091C0
+:1012B000A6035091A70382239323A423B5238E2151
+:1012C0009F21A023B1230097A105B10521F08D2D09
+:1012D0000E942B0528C08091070590910805A091D8
+:1012E0000905B0910A058E219F21A023B123009703
+:1012F000A105B10541F080911305882321F48D2DBE
+:101300000E94BC0510C020911707309118078091EA
+:10131000090490910A042817390729F481E20E94F0
+:101320002B0510928805209117073091180780919E
+:101330001B0790911C072817390791F480918B05A2
+:10134000823071F080911707909118070196909361
+:1013500018078093170785E090E00E94AB2580CEA8
+:1013600080911707909118078C0F9D1F9093180775
+:101370008093170780E090E00E945B1BCE010E94E3
+:101380000D2680E090E00E94781B6ACEEC0102CF2F
+:10139000DD2009F41BCF1CCF6F927F928F929F921A
+:1013A000AF92BF92CF92DF92EF92FF920F931F9373
+:1013B000CF93DF93CDB7DEB728970FB6F894DEBF93
+:1013C0000FBECDBF3E010894611C711CC3010E9479
+:1013D00059298090100390901103A0901203B090AF
+:1013E0001303C0901403D0901503E0901603F090FF
+:1013F000170309811A812B813C814D815E816F81A8
+:101400007885C3010E94D42669817A818B819C8171
+:1014100020E03AEC4AE95BE30E9445349B01AC01D1
+:101420006D817E818F819885620F731F841F951F48
+:1014300028EA3BE246E850E00E948B34DA01C90119
+:101440002091970530919805820F931F28960FB62B
+:10145000F894DEBF0FBECDBFDF91CF911F910F91EA
+:10146000FF90EF90DF90CF90BF90AF909F908F90C4
+:101470007F906F900895809102070E942E218091A5
+:101480005E070E942E2121E030E040E050E0CA01DA
+:10149000B90100905E0704C0660F771F881F991F6F
+:1014A0000A94D2F70090020704C0220F331F441F92
+:1014B000551F0A94D2F7622B732B842B952B0E9415
+:1014C0005A2381E090E008951F93182F80915E07C2
+:1014D0000E942E210FC061E070E080E090E000905B
+:1014E0005E0704C0660F771F881F991F0A94D2F702
+:1014F0000E945A23812F0E94A803882361F781E06C
+:1015000090E01F910895809102070E942E21809102
+:101510001305882379F461E070E080E090E00090AA
+:10152000020704C0660F771F881F991F0A94D2F71D
+:101530000E945A2381E090E00895CF93DF93FC014D
+:10154000DB01EA0180911305882331F410821C929B
+:10155000188280E090E00DC0809102048083809129
+:1015600007048C9380918604888380910404909171
+:101570000504DF91CF91089580912303813019F004
+:101580008FEF9FEF089580910207992787FD90952F
+:10159000089580912303813019F08FEF9FEF089514
+:1015A00080915E07992787FD909508951F93142FCA
+:1015B000403108F052C0603208F04FC0E62FFF27DC
+:1015C00021E030E040E050E00E2E04C0220F331F37
+:1015D000441F551F0A94D2F78823A9F48091070568
+:1015E00090910805A0910905B0910A05822B932BD3
+:1015F000A42BB52B8093070590930805A0930905AC
+:10160000B0930A0514C08091D0039091D103A091AA
+:10161000D203B091D303822B932BA42BB52B8093B1
+:10162000D0039093D103A093D203B093D3036695D4
+:101630007727E0FD06C0FB01E25DF84F8081807FE7
+:1016400007C0FB01E25DF84F80811295107F8F701B
+:10165000812B808381E090E002C08FEF9FEF1F918C
+:101660000895982F803218F08FEF9FEF0895869598
+:10167000E82FFF2790FD09C0E25DF84F8081992790
+:1016800087FD90958F7090700895E25DF84F80818E
+:1016900082958F70992787FD90950895782F6032F5
+:1016A00008F04FC0E62FFF2781E090E00E2E02C029
+:1016B000880F991F0A94E2F79C01442737FD409553
+:1016C000542F20953095409550957723A9F480911B
+:1016D000070590910805A0910905B0910A0582239C
+:1016E0009323A423B5238093070590930805A09323
+:1016F0000905B0930A0514C08091D0039091D103DD
+:10170000A091D203B091D30382239323A423B523C2
+:101710008093D0039093D103A093D203B093D303CB
+:1017200066957727E0FD06C0FB01E25DF84F8081FA
+:10173000807F05C0FB01E25DF84F80818F70808360
+:1017400008958FEF9FEF089581E094E09093100744
+:1017500080930F07909312078093110790931407BB
+:1017600080931307909316078093150708959C01A3
+:1017700080910F07909110079F778150944018F047
+:1017800080E090E023C080911107909112079F772D
+:101790008150944018F081E090E018C080911307C8
+:1017A000909114079F778150944018F082E090E068
+:1017B0000DC080911507909116079F778150944036
+:1017C00018F48FEF9FEF089583E090E0FC01EE0F97
+:1017D000FF1FE15FF84F31832083662319F481E016
+:1017E00090E0089530683183208381E090E008958F
+:1017F0009C0180910F07909110079F7782179307A4
+:1018000019F4E0E0F0E020C08091110790911207F8
+:101810009F778217930719F4E1E0F0E015C08091FB
+:101820001307909114079F778217930719F4E2E04A
+:10183000F0E00AC080911507909116079F778217F4
+:10184000930751F4E3E0F0E0EE0FFF1FE15FF84F84
+:1018500081E094E0918380830895AC0120910F078B
+:1018600030911007C9019F7784179507F1F02091F7
+:10187000110730911207C9019F7784179507A9F0C6
+:101880002091130730911407C9019F77841795079A
+:1018900061F02091150730911607C9019F778417D1
+:1018A000950719F080E090E008952150304818F035
+:1018B00081E090E00895CA010E94F80B81E090E079
+:1018C0000895AC01EFE0F7E081E094E02081318100
+:1018D0003F7764E02030360748F4241B350B12169E
+:1018E000130624F4281739070CF4C901329627E0AF
+:1018F000E731F20759F764E08130960711F480E090
+:1019000090E00895EEE3F7E0119287E0EE35F807F6
+:10191000D9F70895582F662319F481E090E00895CF
+:10192000482F20E030E077276150704003C0459F8A
+:10193000402D1124822F99272F5F3F4F861797073D
+:10194000B4F3842F99270895AF92BF92CF92DF927C
+:10195000EF92FF921F93CF93DF935C016EE3C62E4D
+:1019600067E0D62E51E0E52E54E0F52EC0E0D0E041
+:101970008C2F0E94310B682F882301F1F601108112
+:10198000615082E00E948A0C212F332745E0220F0C
+:10199000331F4A95E1F72C0F3D1FA216B30610F036
+:1019A000180FF2CFF6011083C9018A199B098E1511
+:1019B0009F0520F42150344008F47C0121960894BE
+:1019C000C11CD11CC032D10599F641E0E41644E0B7
+:1019D000F40610F0EE24FF24C701DF91CF911F9190
+:1019E000FF90EF90DF90CF90BF90AF90089520913F
+:1019F0001D0730911E07AC01421B530B5093280763
+:101A00004093270790931E0780931D0708958091A8
+:101A10002707909128070895EFE1F7E08FEF819372
+:101A200097E0E732F907D1F78093FA0610921A0788
+:101A300010921E0710921D070895982F9695957580
+:101A40008575980F892F8695869583739373890F73
+:101A5000982F9F7082958F70890F992708951F93F3
+:101A6000CF93DF93CFE1D7E010E089910E941D0D65
+:101A7000180F87E0C732D807C1F7812F9927DF9168
+:101A8000CF911F9108958091FA060E941D0D99270C
+:101A9000089540911A07E42FE695E695E695FF270D
+:101AA000E15EF84F842F992780959095877090700C
+:101AB00021E030E002C0220F331F8A95E2F78081D7
+:101AC000822B80834F5F40931A07413410F01092AD
+:101AD0001A07089540911A07E42FE695E695E695D2
+:101AE000FF27E15EF84F242F33272095309527708C
+:101AF000307081E090E002C0880F991F2A95E2F7CC
+:101B000080952081822380834F5F40931A07413460
+:101B100010F010921A070895883018F080E090E0D5
+:101B20000895E82FFF27EB5FF84F808199270895EC
+:101B300040912C07E42FE695E695E695FF27A42F24
+:101B4000BB27E650F94FCD01809590958770907036
+:101B500021E030E002C0220F331F8A95E2F7808136
+:101B6000822B8083AB5FB84F1C924F5F40932C0752
+:101B7000493010F010922C07089560912C07E62F41
+:101B8000E695E695E695FF27A62FBB27E650F94F89
+:101B9000AD01409550954770507021E030E002C093
+:101BA000220F331F4A95E2F7209590812923208345
+:101BB000AB5FB84F8C936F5F60932C07693010F068
+:101BC00010922C07089599279C01265A3E4B0B979B
+:101BD000880F991F880F991F280F391FF894409874
+:101BE00088E18EBD0DB407FEFDCF832F99278EBDF2
+:101BF0000DB407FEFDCF2EBD0DB407FEFDCF409AFC
+:101C000078940895F89440981EBC0DB407FEFDCF5B
+:101C10008EB5409A789486FFF5CF08958091740729
+:101C200099270895CF93DF93DC01409889EC8EBD0E
+:101C30000DB407FEFDCF80E88EBD0DB407FEFDCFCD
+:101C400092E09150FD01E90FF11D80818EBD0DB430
+:101C500007FEFDCF9923A9F7409A40988BEC8EBDE3
+:101C60000DB407FEFDCF80E88EBD0DB407FEFDCF9D
+:101C700092E09D012E5F3F4FE9019150F901E90F7C
+:101C8000F11D80818EBD0DB407FEFDCF9923A1F714
+:101C9000409A8C9180937507FD018181809376072E
+:101CA000888180937707838180937807DF91CF9134
+:101CB0000895409889E18EBD0DB407FEFDCF83E005
+:101CC0008EBD0DB407FEFDCF86E08EBD0DB407FEC0
+:101CD000FDCF409A40988AE18EBD0DB407FEFDCF3E
+:101CE0008EE08EBD0DB407FEFDCF8EE08EBD0DB42F
+:101CF00007FEFDCF409A81E08093650708954098E4
+:101D000089E18EBD0DB407FEFDCF81E08EBD0DB41F
+:101D100007FEFDCF84EC8EBD0DB407FEFDCF409ACB
+:101D20001092650708958091630790916407089564
+:101D3000282F33272F713070206E306A409885E14C
+:101D40008EBD0DB407FEFDCF832F99278EBD0DB438
+:101D500007FEFDCF2EBD0DB407FEFDCF409A0895BE
+:101D600020916607309167073860309367072093AA
+:101D70006607409881E18EBD0DB407FEFDCF832F2D
+:101D800099278EBD0DB407FEFDCF2EBD0DB407FE05
+:101D9000FDCF409A08952091660730916707377FFD
+:101DA0003093670720936607409881E18EBD0DB49C
+:101DB00007FEFDCF832F99278EBD0DB407FEFDCF03
+:101DC0002EBD0DB407FEFDCF409A089581E08093AB
+:101DD000730720916607309167072061309367078A
+:101DE00020936607409881E18EBD0DB407FEFDCFBC
+:101DF000832F99278EBD0DB407FEFDCF2EBD0DB4E8
+:101E000007FEFDCF409A0895109273072091660750
+:101E1000309167072F7E30936707209366074098BD
+:101E200081E18EBD0DB407FEFDCF832F99278EBDB6
+:101E30000DB407FEFDCF2EBD0DB407FEFDCF409AB9
+:101E4000089581E080937007409883E08EBD0DB4C3
+:101E500007FEFDCF409A409888E08EBD0DB407FE86
+:101E6000FDCF409A10927907089581E08093700722
+:101E7000409883E08EBD0DB407FEFDCF409A409898
+:101E800088E08EBD0DB407FEFDCF409A1092790711
+:101E9000089510927007409886E08EBD0DB407FE3D
+:101EA000FDCF409A10927907089589B1992776E07D
+:101EB000969587957A95E1F78170907008958CB129
+:101EC000992787FD90958827990F881F992708954E
+:101ED00089B19927F6E096958795FA95E1F7817093
+:101EE00090700895CF93DF93CDB7DEB724970FB6E8
+:101EF000F894DEBF0FBECDBF679903C080E090E0CD
+:101F00000FC210927407679B1FC031991DC0409883
+:101F10008FE78EBD0DB407FEFDCF1EBC0DB407FECE
+:101F2000FDCF8EB5409A409888E08EBD0DB407FE77
+:101F3000FDCF409A409888E08EBD0DB407FEFDCFDE
+:101F4000409A8FEF9FEFECC140988FE78EBD0DB4A4
+:101F500007FEFDCF1EBC0DB407FEFDCF4EB5409A67
+:101F60004F77E9F440988FE78EBD0DB407FEFDCFA3
+:101F70001EBC0DB407FEFDCF8EB5409A409888E098
+:101F80008EBD0DB407FEFDCF409A409888E08EBD0F
+:101F90000DB407FEFDCF409A8EEF9FEFC1C14530D3
+:101FA0008CF0E0916807F0916907242F332727FD13
+:101FB00030952B5030408481992787FD909582176A
+:101FC0009307C4F540988FE78EBD0DB407FEFDCF93
+:101FD00060E070E0242F332727FD309506C01EBC3B
+:101FE0000DB407FEFDCF6F5F7F4F862F99278217B5
+:101FF000930714F43199F3CF409A40988FE78EBD40
+:102000000DB407FEFDCF1EBC0DB407FEFDCF8EB58F
+:10201000409A409888E08EBD0DB407FEFDCF409AEF
+:10202000409888E08EBD0DB407FEFDCF409A8DEF3D
+:102030009FEF76C1E0916807F09169074C504383A8
+:1020400040988FE78EBD0DB407FEFDCFFE0131969F
+:102050009E012D5F3F4F1EBC0DB407FEFDCF8EB518
+:102060008193E217F307B9F7409AE0916807F0917E
+:10207000690789819A81A5E096958795AA95E1F7E8
+:102080008170878340988FE78EBD0DB407FEFDCF2A
+:102090001EBC0DB407FEFDCFE0916807F091690703
+:1020A0008EB58083409A40988FE78EBD0DB407FEB1
+:1020B000FDCF80E007C01EBC0DB407FEFDCF8F5FD3
+:1020C000843011F03199F7CF409A40988FE78EBD58
+:1020D0000DB407FEFDCF20E030E01EBC0DB407FEBE
+:1020E000FDCFE0916807F0916907E20FF31F8EB50D
+:1020F00081832F5F3F4F2230310579F7409A8981E4
+:102100009A8183FF56C040988FE78EBD0DB407FEBD
+:10211000FDCFEFE5F7E01EBC0DB407FEFDCF8EB599
+:10212000819387E0E336F807B1F7409A409889E950
+:102130008EBD0DB407FEFDCF80E88EBD0DB407FE49
+:10214000FDCF92E09150E92FFF27E15AF84F8081AF
+:102150008EBD0DB407FEFDCF9923A1F7409A40989C
+:102160008BE98EBD0DB407FEFDCF80E88EBD0DB4AA
+:1021700007FEFDCF92E09150E92FFF27EF59F84F6E
+:1021800080818EBD0DB407FEFDCF9923A1F7409A43
+:1021900040988CE08EBD0DB407FEFDCF409A81E0E3
+:1021A00080937407E0916807F091690783818450F8
+:1021B000838340988FE78EBD0DB407FEFDCF40E0CE
+:1021C00050E011C01EBC0DB407FEFDCFE0916807C2
+:1021D000F09169070580F681E02DE60FF11D8EB5BF
+:1021E00080834F5F5F4F642FE0916807F09169072C
+:1021F000242F33278381992787FD90952817390746
+:102200000CF3409A40988FE78EBD0DB407FC0AC0CE
+:10221000FCCF0DB407FEFDCF5EB5409A40988FE726
+:102220008EBD02C01EBCF5CF0DB407FEFDCFFE0172
+:1022300033969E012B5F3F4F1EBC0DB407FEFDCFB2
+:102240008EB58193E217F307B9F7409AE0916807DA
+:10225000F09169078B81808740E020E030E00AC080
+:10226000E0916807F091690785819681A80FB91FF1
+:102270008C91480F822FE0916807F09169072F5FDA
+:102280003F4FA82FBB278381992787FD9095A817DB
+:10229000B90734F34517E9F040988FE78EBD0DB4C8
+:1022A00007FEFDCF1EBC0DB407FEFDCF8EB5409AD4
+:1022B000409888E08EBD0DB407FEFDCF409A40984F
+:1022C00088E08EBD0DB407FEFDCF409A8CEF9FEFE6
+:1022D00027C08C8187FF08C0809179078F5F80932A
+:1022E000790781E090E01CC040988FE78EBD0DB467
+:1022F00007FEFDCF1EBC0DB407FEFDCF8EB5409A84
+:10230000409888E08EBD0DB407FEFDCF409A4098FE
+:1023100088E08EBD0DB407FEFDCF409A8BEF9FEF96
+:1023200024960FB6F894DEBF0FBECDBFDF91CF91DC
+:10233000089580917907882319F480E090E008954A
+:102340008091790710927907992787FD90950895D4
+:10235000409888E08EBD0DB407FEFDCF409A4098AE
+:1023600088E08EBD0DB407FEFDCF409A08959927F1
+:1023700087FD9095382F22272068409883E18EBDF5
+:102380000DB407FEFDCF832F99278EBD0DB407FE38
+:10239000FDCF2EBD0DB407FEFDCF409A08954098A5
+:1023A00086E08EBD0DB407FEFDCF409A409882E1D5
+:1023B0008EBD0DB407FEFDCF85E08EBD0DB407FECA
+:1023C000FDCF88E08EBD0DB407FEFDCF409A40984A
+:1023D0008EE28EBD0DB407FEFDCF88E18EBD0DB43B
+:1023E00007FEFDCF1EBC0DB407FEFDCF409A0E9434
+:1023F000A8110895409886E08EBD0DB407FEFDCF6C
+:10240000409A409882E18EBD0DB407FEFDCF85E075
+:102410008EBD0DB407FEFDCF1EBC0DB407FEFDCF73
+:10242000409A40988EE28EBD0DB407FEFDCF1EBCD3
+:102430000DB407FEFDCF1EBC0DB407FEFDCF409AC4
+:102440000E94A8110895409884E08EBD0DB407FE47
+:10245000FDCF409A0895409886E08EBD0DB407FEEA
+:10246000FDCF409A0895EF92FF920F931F93CF9361
+:10247000DF93CDB7DEB722970FB6F894DEBF0FBE5D
+:10248000CDBFDC0150916507552339F040988DE0B0
+:102490008EBD0DB407FEFDCF409AFD014281642F31
+:1024A000772767FD709510E020E030E008C0FD015F
+:1024B00083819481E80EF91EF7018081180F822F25
+:1024C0002F5F3F4FE82EFF24E616F70684F3942F84
+:1024D000945F51119C5F6799FECF4E99FCCFF894A1
+:1024E000409889E08EBD0DB407FEFDCF409A40981C
+:1024F00089E08EBD0DB407FEFDCF409A40988EE373
+:102500008EBD0DB407FC05C0FCCF0DB407FC2AC17D
+:10251000FCCF9EBDFACF81E698E89A838983552344
+:1025200029F089819A8188609A83898340988EE313
+:102530008EBD0DB407FEFDCFFE0131969E012D5FCD
+:102540003F4F80818EBD0DB407FEFDCF3196E2175F
+:10255000F307B9F7409A40988EE38EBD0DB407FC9F
+:1025600005C0FCCF0DB407FC08C1FCCF80916A0701
+:102570008EBDF8CF0DB407FEFDCF20E030E0F901AD
+:10258000E459F84F80818EBD0DB407FEFDCF2F5F5B
+:102590003F4F2230310599F7409A40988EE38EBD27
+:1025A0000DB407FEFDCF20E030E0FD01E20FF31F88
+:1025B00080818EBD0DB407FEFDCF2F5F3F4F2230CF
+:1025C000310599F7409A40988EE38EBD0DB407FE11
+:1025D000FDCF20E030E0F901E259F84F80818EBD57
+:1025E0000DB407FEFDCF2F5F3F4F2230310599F725
+:1025F000409A552399F040988EE38EBD0DB407FEA6
+:10260000FDCFE5E7F7E080818EBD0DB407FEFDCF7D
+:10261000319687E0E937F807B1F7409A40988EE3A2
+:102620008EBD0DB407FEFDCF20E030E00DC0FD01F2
+:1026300083819481480F591FFA0180818EBD0DB4AA
+:1026400007FEFDCF2F5F3F4F422F552746175707F5
+:1026500074F3409A40988EE38EBD0DB407FC05C01C
+:10266000FCCF0DB407FC8EC0FCCF1EBDFACF80910D
+:102670007007882339F4409883E08EBD0DB407FEBF
+:10268000FDCF409A40981EBC0DB407FEFDCF8EB51D
+:10269000409A81FFF7CF00E0409885E08EBD0DB4F1
+:1026A00007FEFDCF409A40981EBC0DB407FEFDCF3B
+:1026B0001EB5409A0F5F053651F4789480916307F8
+:1026C000909164070E94B42180E090E062C084E6AB
+:1026D00090E00E94241C13FD08C0DECF409884E0E7
+:1026E0008EBD0DB407FEFDCF409A78944E9BFECF71
+:1026F0004E99FECF80917307882391F084EA92E08F
+:102700000E94241C319B0EC040988FE78EBD0DB4F3
+:1027100007FEFDCF1EBC0DB407FEFDCF8EB5409A5F
+:1027200091E00FC0409888E08EBD0DB407FEFDCF4C
+:10273000409A409888E08EBD0DB407FEFDCF409AC8
+:1027400090E0F894409886E08EBD0DB407FEFDCF72
+:10275000409A789480916A078F5F80936A07892FE7
+:10276000992717C0409A81E498E89A8389838091D9
+:102770007307882309F0CFCED2CE409A40988EE3DB
+:102780008EBDF8CE409AFD018581882309F06FCF78
+:10279000A5CF22960FB6F894DEBF0FBECDBFDF9156
+:1027A000CF911F910F91FF90EF900895BF92CF921C
+:1027B000DF92EF92FF920F931F93CF93DF93CDB7EA
+:1027C000DEB722970FB6F894DEBF0FBECDBF8C01E7
+:1027D0006B017A010E94962C409888E08EBD0DB462
+:1027E00007FEFDCF409A409888E08EBD0DB407FEED
+:1027F000FDCF409A6799FECF4E99FCCFF894409850
+:1028000089E08EBD0DB407FEFDCF409A409889E067
+:102810008EBD0DB407FEFDCF409AF8016281462FB0
+:10282000552747FD5095BB2420E030E007C0F80154
+:1028300083819481A80FB91F8C91B80E822F2F5FCE
+:102840003F4FA82FBB27A417B5078CF3962F945F93
+:1028500040988EE38EBD0DB407FC05C0FCCF0DB4CF
+:1028600007FC10C1FCCF9EBDFACF81E698E89A83A1
+:10287000898340988EE38EBD0DB407FEFDCFFE0127
+:1028800031969E012D5F3F4F80818EBD0DB407FEB6
+:10289000FDCF3196E217F307B9F7409A40988EE3DF
+:1028A0008EBD0DB407FC05C0FCCF0DB407FCF3C012
+:1028B000FCCF80916A078EBDF8CF0DB407FEFDCF27
+:1028C00020E030E0F901E459F84F80818EBD0DB46D
+:1028D00007FEFDCF2F5F3F4F2230310599F7409A19
+:1028E00040988EE38EBD0DB407FEFDCF20E030E0B2
+:1028F000F801E20FF31F80818EBD0DB407FEFDCFFE
+:102900002F5F3F4F2230310599F7409A40988EE370
+:102910008EBD0DB407FEFDCF20E030E0F901E25995
+:10292000F84F80818EBD0DB407FEFDCF2F5F3F4F66
+:102930002230310599F7409AB701C6010E941B2D3C
+:10294000F80185818823C1F180917007882339F4CB
+:10295000409883E08EBD0DB407FEFDCF409A4098AD
+:102960001EBC0DB407FEFDCF8EB5409A81FFF7CF98
+:10297000EE24409885E08EBD0DB407FEFDCF409A51
+:1029800040981EBC0DB407FEFDCFFEB4409AE39400
+:10299000F5E6EF1651F478948091630790916407FF
+:1029A0000E94B42180E090E07DC084E690E00E9427
+:1029B000241CF3FC08C0DDCF409884E08EBD0DB42C
+:1029C00007FEFDCF409A40988EE38EBD0DB407FE02
+:1029D000FDCFF8018281482F552747FD509520E013
+:1029E00030E00CC0F80183819481A80FB91F8C914D
+:1029F0008EBD0DB407FEFDCF2F5F3F4FA22FBB272B
+:102A0000A417B5077CF3409A40988EE38EBD0DB4B1
+:102A100007FC05C0FCCF0DB407FC42C0FCCFBEBC18
+:102A2000FACF4E9BFECFF8944E99FECF409888E0A7
+:102A30008EBD0DB407FEFDCF409A409888E08EBD54
+:102A40000DB407FEFDCF409A409889E08EBD0DB4CD
+:102A500007FEFDCF409A409889E08EBD0DB407FE79
+:102A6000FDCF409A409886E08EBD0DB407FEFDCFA5
+:102A7000409A789480916A078F5F80936A0781E01B
+:102A800090E010C0409AF8018681882309F0EDCECD
+:102A900081E498E8ECCE409A40988EE38EBD0DCF4D
+:102AA000409ABFCF22960FB6F894DEBF0FBECDBFBF
+:102AB000DF91CF911F910F91FF90EF90DF90CF901A
+:102AC000BF900895CF93DF93CDB7DEB722970FB6AF
+:102AD000F894DEBF0FBECDBF9A83898390936F07B2
+:102AE00080936E0784EF91E00E94D02B40988AEE8D
+:102AF0008EBD0DB407FEFDCF80E88EBD0DB407FE80
+:102B0000FDCFFE0131969E012D5F3F4F80818EBD2E
+:102B10000DB407FEFDCF3196E217F307B9F7409ADF
+:102B200084EF91E00E94D02B22960FB6F894DEBF7E
+:102B30000FBECDBFDF91CF9108956F927F928F929C
+:102B40009F92AF92BF92CF92DF92EF92FF920F933C
+:102B50001F93CF93DF93CDB7DEB722970FB6F894CC
+:102B6000DEBF0FBECDBF8C0184E690E00E94D02B6B
+:102B70007801C12CB1E0DB2E3E010894611C711C70
+:102B8000A3E08A2E912C8C0E9D1EF701808121815D
+:102B900033279927982F8827282B392B3A83298385
+:102BA00084E690E00E94D02B40988C2D80688EBDEA
+:102BB0000DB407FEFDCFC60195958795807C8EBD2F
+:102BC0000DB407FEFDCF83015301F50180818EBD59
+:102BD0000DB407FEFDCF0894A11CB11CA814B904C4
+:102BE000A1F7409A0894E11CF11C82E090E0C80E25
+:102BF000D91E90E1C91691E0D90639F684E690E035
+:102C00000E94D02B20E131E040E451E01A82198289
+:102C10004098842F80688EBD0DB407FEFDCFCA0199
+:102C200095958795807C8EBD0DB407FEFDCFF8018C
+:102C300080818EBD0DB407FEFDCF3196EA15FB05F0
+:102C4000B9F7409A4098822F80688EBD0DB407FE78
+:102C5000FDCFC90195958795807C8EBD0DB407FE8B
+:102C6000FDCFF80180818EBD0DB407FEFDCF3196FA
+:102C7000EA15FB05B9F7409A2E5F3F4F4E5F5F4F55
+:102C8000E1E02E313E0711F681E090E09A838983DE
+:102C900040988EEC8EBD0DB407FEFDCF80E88EBD52
+:102CA0000DB407FEFDCFF80180818EBD0DB407FE87
+:102CB000FDCF3196EA15FB05B9F7409A40988EE9A9
+:102CC0008EBD0DB407FEFDCF80E88EBD0DB407FEAE
+:102CD000FDCFF80180818EBD0DB407FEFDCF0F5FE3
+:102CE0001F4F0A151B05A9F7409A22960FB6F894B4
+:102CF000DEBF0FBECDBFDF91CF911F910F91FF902F
+:102D0000EF90DF90CF90BF90AF909F908F907F908B
+:102D10006F900895CF93DF93EC01409888E08EBDCB
+:102D20000DB407FEFDCF409A409888E08EBD0DB4EB
+:102D300007FEFDCF409A862F0E94E30DD0936907CE
+:102D4000C0936807DF91CF9108950E94E30D089525
+:102D5000DF92EF92FF920F931F93CF93DF93CDB744
+:102D6000DEB722970FB6F894DEBF0FBECDBF8C0141
+:102D7000D62E5A8349837901159A88EE93E00E94F2
+:102D8000241C169881E090E00E94241C169A84E688
+:102D900090E00E94241CF894409881E08EBD0DB410
+:102DA00007FEFDCF409A82EE92E0909367078093F2
+:102DB0006607409881E18EBD0DB407FEFDCF82E02D
+:102DC0008EBD0DB407FEFDCF82EE8EBD0DB407FEA5
+:102DD000FDCF409A409882E18EBD0DB407FEFDCF35
+:102DE00085E08EBD0DB407FEFDCF1EBC0DB407FE01
+:102DF000FDCF409A40988CE18EBD0DB407FEFDCF0B
+:102E00001EBC0DB407FEFDCF8FE78EBD0DB407FECF
+:102E1000FDCF409A409889E18EBD0DB407FEFDCFED
+:102E200081E08EBD0DB407FEFDCF84EC8EBD0DB4E8
+:102E300007FEFDCF409A409887E18EBD0DB407FE96
+:102E4000FDCF8AE18EBD0DB407FEFDCF86E58EBDB8
+:102E50000DB407FEFDCF409A84EF91E00E94D02B85
+:102E6000409888EE8EBD0DB407FEFDCF80E88EBD84
+:102E70000DB407FEFDCFFE0131969E012D5F3F4F41
+:102E800080818EBD0DB407FEFDCF3196E217F307AA
+:102E9000B9F7409A84EF91E00E94D02B78948D2D61
+:102EA0000E94E30D78941093690700936807898165
+:102EB0009A8190936D0780936C07F0926F07E09270
+:102EC0006E0710926A07109270070E94020E10920D
+:102ED0007307109265071092740722960FB6F89444
+:102EE000DEBF0FBECDBFDF91CF911F910F91FF903D
+:102EF000EF90DF9008958FEF9FEF0895813051F4A8
+:102F00008091C800992787FD90958827990F881F81
+:102F100099270895882319F080E090E00895809122
+:102F2000C000992787FD90958827990F881F9927BA
+:102F300008958091C80087FFFCCF8091C8008F77EB
+:102F40008093C8008091CE009927089585B780614D
+:102F500085BF86E084B987E085B981E087B988B903
+:102F60008CE38DB98BE08AB98EE38EB988E781B99D
+:102F700080E482B908950E94A61780E58CBD81E0A7
+:102F80008DBD08958F3F09F47FC0482F55279A01C2
+:102F90002770307022303105A9F12330310544F417
+:102FA0002115310589F02130310509F06DC01CC0B3
+:102FB0002430310509F446C0243031059CF1253018
+:102FC000310509F061C04EC022B1B3E05695479576
+:102FD000BA95E1F781E090E002C0880F991F4A9509
+:102FE000E2F7282B22B94DC085B1A3E0569547954D
+:102FF000AA95E1F702C0220F331F4A95E2F7822B10
+:1030000085B93FC028B1F3E056954795FA95E1F7A9
+:1030100081E090E002C0880F991F4A95E2F7282BC3
+:1030200028B92FC02BB1E3E056954795EA95E1F713
+:1030300081E090E002C0880F991F4A95E2F7282BA3
+:103040002BB91FC02EB173E0569547957A95E1F7DD
+:1030500081E090E002C0880F991F4A95E2F7282B83
+:103060002EB90FC021B363E0569547956A95E1F7F5
+:1030700081E090E002C0880F991F4A95E2F7282B63
+:1030800021BB81E090E008958FEF9FEF08958F3F7F
+:1030900009F486C0482F55279A01277030702230D6
+:1030A0003105C1F12330310544F42115310589F092
+:1030B0002130310509F074C01DC02430310509F4F8
+:1030C0004BC024303105BCF12530310509F068C012
+:1030D00054C022B1E3E056954795EA95E1F781E0C7
+:1030E00090E002C0880F991F4A95E2F780958223ED
+:1030F00082B953C095B173E0569547957A95E1F73B
+:1031000002C0220F331F4A95E2F7822F8095892350
+:1031100085B943C028B163E0569547956A95E1F7B4
+:1031200081E090E002C0880F991F4A95E2F78095F0
+:10313000822388B932C02BB133E0569547953A9532
+:10314000E1F781E090E002C0880F991F4A95E2F70D
+:10315000809582238BB921C02EB193E05695479577
+:103160009A95E1F781E090E002C0880F991F4A9597
+:10317000E2F7809582238EB910C021B383E0569583
+:1031800047958A95E1F781E090E002C0880F991F8A
+:103190004A95E2F78095822381BB81E090E0089513
+:1031A0008FEF9FEF08958F3FA9F1282F3327C90193
+:1031B0008770907082309105A9F0833091052CF4CE
+:1031C000009761F0019731F50BC08430910571F0E3
+:1031D000843091054CF00597E9F40AC080B109C02C
+:1031E00083B107C086B105C089B103C08CB101C0ED
+:1031F0008FB19927F3E036952795FA95E1F702C04C
+:10320000959587952A95E2F7992787FD9095817086
+:10321000907008958FEF9FEF08958F3F09F403C1D9
+:10322000282F3327A901477050704230510509F407
+:103230005CC04330510544F44115510591F04130D3
+:10324000510509F0F0C034C04430510509F49BC069
+:10325000443051050CF470C04530510509F0E3C00D
+:10326000B9C080B1A90173E0569547957A95E1F709
+:103270009927042E02C0959587950A94E2F780FD60
+:103280000BC022B181E090E002C0880F991F4A95DF
+:10329000E2F7282B22B9C4C022B181E090E002C03D
+:1032A000880F991F4A95E2F78095822382B9B8C0AA
+:1032B00083B163E0369527956A95E1F79927022E49
+:1032C00002C0959587950A94E2F702C0440F551FF6
+:1032D0002A95E2F780FD03C085B1842B04C095B127
+:1032E000842F8095892385B99BC086B1A90123E0ED
+:1032F000569547952A95E1F79927042E02C0959592
+:1033000087950A94E2F780FD0BC028B181E090E038
+:1033100002C0880F991F4A95E2F7282B28B980C070
+:1033200028B181E090E002C0880F991F4A95E2F72A
+:103330008095822388B974C089B1A90193E056951C
+:1033400047959A95E1F79927042E02C095958795A0
+:103350000A94E2F780FD0BC02BB181E090E002C03F
+:10336000880F991F4A95E2F7282B2BB959C02BB12A
+:1033700081E090E002C0880F991F4A95E2F780959E
+:1033800082238BB94DC08CB1A901B3E05695479506
+:10339000BA95E1F79927042E02C0959587950A946E
+:1033A000E2F780FD0BC02EB181E090E002C0880FF3
+:1033B000991F4A95E2F7282B2EB932C02EB181E031
+:1033C00090E002C0880F991F4A95E2F7809582230A
+:1033D0008EB926C08FB1A901A3E056954795AA954D
+:1033E000E1F79927042E02C0959587950A94E2F794
+:1033F00080FD0BC021B381E090E002C0880F991FCF
+:103400004A95E2F7282B21BB0BC021B381E090E065
+:1034100002C0880F991F4A95E2F78095822381BBED
+:1034200081E090E008958FEF9FEF08958F3F09F4BA
+:1034300012C1482F5527662309F090C0CA01877032
+:1034400090708230910509F43EC0833091053CF4C0
+:10345000009789F08130910509F0FDC021C08430CA
+:10346000910509F454C0843091050CF43EC00597D1
+:1034700009F0F1C05EC031B1B3E056954795BA95F9
+:10348000E1F781E090E002C0880F991F4A95E2F7CA
+:10349000282F2095232321B922B1822B82B9D8C0AD
+:1034A00024B1A3E056954795AA95E1F702C0880F8D
+:1034B000991F4A95E2F7982F8095822384B985B1A8
+:1034C000982B95B9C5C037B1F3E056954795FA9555
+:1034D000E1F781E090E002C0880F991F4A95E2F77A
+:1034E000282F2095232327B935C03AB1E3E056951C
+:1034F0004795EA95E1F781E090E002C0880F991FB7
+:103500004A95E2F7282F209523232AB923C03DB1FD
+:1035100073E0569547957A95E1F781E090E002C017
+:10352000880F991F4A95E2F7282F209523232DB95C
+:1035300011C030B363E0569547956A95E1F781E095
+:1035400090E002C0880F991F4A95E2F7282F209536
+:10355000232320BB25B1822B85B97AC09A0127701D
+:10356000307022303105A9F12330310544F42115A2
+:10357000310589F02130310509F06DC01CC02430BF
+:10358000310509F446C0243031059CF12530310560
+:1035900009F061C04EC021B133E0569547953A9588
+:1035A000E1F781E090E002C0880F991F4A95E2F7A9
+:1035B000282B21B94DC084B193E0569547959A9533
+:1035C000E1F702C0220F331F4A95E2F7822B84B93C
+:1035D0003FC027B1B3E056954795BA95E1F781E032
+:1035E00090E002C0880F991F4A95E2F7282B27B96F
+:1035F0002FC02AB1A3E056954795AA95E1F781E03F
+:1036000090E002C0880F991F4A95E2F7282B2AB94B
+:103610001FC02DB1F3E056954795FA95E1F781E08B
+:1036200090E002C0880F991F4A95E2F7282B2DB928
+:103630000FC020B3E3E056954795EA95E1F781E0A6
+:1036400090E002C0880F991F4A95E2F7282B20BB13
+:1036500081E090E008958FEF9FEF0895882319F09F
+:103660008FEF9FEF089580B1992787FD9095809502
+:1036700090958827990F881F99270895009711F42E
+:1036800084E109C08130910511F48CE104C08230DD
+:10369000910531F484E20E940D1981E090E00895D3
+:1036A000039719F08FEF9FEF08958CE20E940D1998
+:1036B00081E090E00895009711F484E109C0813021
+:1036C000910511F48CE104C08230910531F484E25B
+:1036D0000E94C21781E090E00895039719F08FEFE0
+:1036E0009FEF08958CE20E94C21781E090E0089558
+:1036F000009711F484E109C08130910511F48CE147
+:1037000004C08230910531F484E20E94471881E0C0
+:1037100090E00895039719F08FEF9FEF08958CE2E2
+:103720000E94471881E090E00895882319F085B73A
+:103730008F7E02C085B7806185BF81E090E00895EB
+:10374000982F8091C00085FFFCCF8091C0008F7DB5
+:103750008093C0009093C6000895982F8091C80070
+:1037600085FFFCCF9093CE000895292F3327209317
+:10377000C5008093C40086E08093C200E1ECF0E0D5
+:1037800080818B7F8083A0ECB0E08C9182608C93F1
+:103790008081886180830895292F33272093CD006D
+:1037A0008093CC0086E08093CA00E9ECF0E0808151
+:1037B0008B7F8083A8ECB0E08C9182608C938081B9
+:1037C0008861808308958091C00087FFFCCF80913D
+:1037D000C0008F778093C0008091C600992708951C
+:1037E000EF92FF920F931F930E94CC1B09E917E100
+:1037F0005DEAE52E5BE1F52EB801C7010E94593262
+:103800009093170880931608B801C7010E94593297
+:1038100090931508809314081F910F91FF90EF90DB
+:103820000895CF93DF93EC0107C060911608709163
+:10383000170899270E94A932FE01219684918823B6
+:10384000A1F7DF91CF910895000000000000000073
+:103850000197D1F70895FC01A7E0B0E00E94AD34D4
+:10386000802D808381E090E00895FC018081A7E0B5
+:10387000B0E0082E0E94B53481E090E00895DC01AC
+:103880000E94AD34802D99270895FC01A0E0B0E09E
+:103890000E94AD34402D4383A1E0B0E00E94AD34DE
+:1038A000802D8283A2E0B0E00E94AD34302D3183C0
+:1038B000A3E0B0E00E94AD34902D9083A4E0B0E08E
+:1038C0000E94AD34202D830F840F890F281719F41F
+:1038D00081E090E008958FEF9FEF0895FC01A5E04F
+:1038E000B0E00E94AD34802D808381E090E00895A7
+:1038F000FC01A6E0B0E00E94AD34802D808381E021
+:1039000090E00895AC0120E030E0D90118960E94C3
+:10391000AD34802DFA01E20FF31F80832F5F3F4FFC
+:103920002031310591F781E090E00895DC01062E09
+:103930000E94B5340895FC018081A6E0B0E0082E15
+:103940000E94B53481E090E00895AC0120E030E0C1
+:10395000D9011896FA01E20FF31F8081082E0E9408
+:10396000B5342F5F3F4F2031310591F781E090E072
+:103970000895F89408957894089585E690E0089560
+:103980000E94D8290895EF92FF920F931F93CF932F
+:10399000DF93EC018B017A018985823021F08091DF
+:1039A000E407888301C018828091E407833020F007
+:1039B00060E087E00E949E1F8985823029F0809117
+:1039C000E4078F5F8093E4078091E407882319F46C
+:1039D00081E08093E4078881992787FD9095FC0119
+:1039E00045E0EE0FFF1F4A95E1F7E80FF91FE45895
+:1039F000F84F118300838881992787FD9095FC01FA
+:103A000035E0EE0FFF1F3A95E1F7E80FF91FE45894
+:103A1000F84F888582878881992787FD9095FC01DA
+:103A200025E0EE0FFF1F2A95E1F7E80FF91FE45894
+:103A3000F84F83E081872881822F992787FD909511
+:103A4000FC0105E0EE0FFF1F0A95E1F7E80FF91FF3
+:103A5000E458F84F20878881992787FD9095FC01CD
+:103A600015E0EE0FFF1F1A95E1F7E80FF91FE45874
+:103A7000F84F15820881112707FD10952B853C858D
+:103A80004D855E856F85788989899A890E94F3279B
+:103A9000F801B5E0EE0FFF1FBA95E1F7E00FF11F57
+:103AA000E458F84F948F838F0881112707FD1095F4
+:103AB0002B8D3C8D4D8D5E8D6F8D78A189A19AA146
+:103AC0000E94F327F801A5E0EE0FFF1FAA95E1F78A
+:103AD000E00FF11FE458F84F968B858B888199276A
+:103AE00087FD9095FC0175E0EE0FFF1F7A95E1F7D9
+:103AF000E80FF91FE458F84F85899689238D348D96
+:103B0000820F931F908F878B0881112707FD1095D7
+:103B10002B893C894D895E896F89788D898D9A8D35
+:103B20000E94F327F80165E0EE0FFF1F6A95E1F7A9
+:103B3000E00FF11FE458F84F968F858F8881992701
+:103B400087FD9095FC0155E0EE0FFF1F5A95E1F7B8
+:103B5000E80FF91FE458F84F858D968D928F818F6D
+:103B60008881992787FD9095FC0145E0EE0FFF1FA6
+:103B70004A95E1F7E80FF91FE458F84F81E090E02B
+:103B800090A3878F8881992787FD9095FC0135E068
+:103B9000EE0FFF1F3A95E1F7E80FF91FE458F84FD1
+:103BA000F382E2828881992787FD9095FC0125E0C8
+:103BB000EE0FFF1F2A95E1F7E80FF91FE458F84FC1
+:103BC00081E0848781E090E0DF91CF911F910F9198
+:103BD000FF90EF9008958F929F92AF92BF92CF92F5
+:103BE000DF92EF92FF920F931F93CF93DF9364E8DE
+:103BF000A62E67E0B62ECC24DD244501EC2CF50181
+:103C0000F080FFEFFF1691F0E40100E010E0E01615
+:103C100039F08881F81621F46F2D85E00E949E1FEF
+:103C20000F5F1F4FA1960330110589F70894C11C3F
+:103C3000D11C81E290E0A80EB91E93E0C916D10410
+:103C4000E9F60E949523282F332727FD3095F901A7
+:103C500055E0EE0FFF1F5A95E1F7E20FF31FE4580E
+:103C6000F84F32853093F70721E28202C001112418
+:103C70008458984F9093F6078093F5079093E70741
+:103C80008093E6073093E8070E94EC2F0E94D22F22
+:103C90000E941030FFCF0F931F93CF93DF93CDB7C8
+:103CA000DEB7A3970FB6F894DEBF0FBECDBF0E945C
+:103CB000A5208093E5078F3F21F460E08EE00E940D
+:103CC0009E1F0E94432F882321F460E086E00E941B
+:103CD0009E1F1092E8071092F6071092F5071092B7
+:103CE000E7071092E6071092F7071092F4079FEF8C
+:103CF0009093E1079093E3079093E20783E6809324
+:103D00008607909384078093A7079093A5078093D5
+:103D1000C8079093C607E8EFF7E0CF0105969483B4
+:103D20008383F783E683FC0128E087309207A9F7B5
+:103D30001092FA071092F90710920B0810920A08D5
+:103D40001092EB071092EA070F9790937B078093EE
+:103D50007A0764EB79E28E010F5F1F4FC8010E9462
+:103D6000902F40E850E06DE076E0C8010E94F12F0E
+:103D700085E580930D0619861C8E1D8E1E8E1F8E66
+:103D800018A219A21AA21BA291E0988782E08A8742
+:103D90009B87C8010E947E26A3960FB6F894DEBFCB
+:103DA0000FBECDBFDF91CF911F910F910895F89471
+:103DB000FFCFE091F507F091F60784870895E09131
+:103DC000F507F091F607848599270895DC01FB013A
+:103DD00080919505882319F480E090E00895808310
+:103DE0008091A8038C9381E090E008951F938091C7
+:103DF0009505882309F49EC00E94B91C0E94B91C35
+:103E000082E093E00E94111C8091A80399279F9360
+:103E10008F9384EB92E09F938F930E94D6328EEF24
+:103E200092E00E94111C0F900F900F900F908091C4
+:103E30009505843110F0109295058091950599278C
+:103E4000AA27BB27FC013197E231F105F0F5EA59C9
+:103E5000FF4FEE0FFF1F0590F491E02D099487EDC1
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.lss Sat Dec 11
12:36:09 2010
@@ -0,0 +1,15686 @@
+
+main.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 00000110 00800200 000069ba 00006a4e 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 000069ba 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 0000050e 00800310 00800310 00006b5e 2**0
+ ALLOC
+ 3 .stab 0000dee4 00000000 00000000 00006b60 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00005f8f 00000000 00000000 00014a44 2**0
+ CONTENTS, READONLY, DEBUGGING
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 8f 01 jmp 0x31e ; 0x31e <__init>
+ 4: 0c 94 e7 2e jmp 0x5dce ; 0x5dce <__vector_1>
+ 8: 0c 94 b9 2e jmp 0x5d72 ; 0x5d72 <__vector_2>
+ c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 10: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 14: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 18: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 1c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 20: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 24: 0c 94 15 2f jmp 0x5e2a ; 0x5e2a <__vector_9>
+ 28: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 2c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 30: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 34: 0c 94 9a 2c jmp 0x5934 ; 0x5934 <__vector_13>
+ 38: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 3c: 0c 94 9a 2c jmp 0x5934 ; 0x5934 <__vector_13>
+ 40: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 44: 0c 94 cd 2c jmp 0x599a ; 0x599a <__vector_17>
+ 48: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 4c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 50: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 54: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 58: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 5c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 60: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 64: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 68: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 6c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 70: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 74: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 78: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 7c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 80: 0c 94 d7 2c jmp 0x59ae ; 0x59ae <__vector_32>
+ 84: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 88: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 8c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 90: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 94: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 98: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 9c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ a0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ a4: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ a8: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ ac: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ b0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ b4: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ b8: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ bc: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ c0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ c4: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ c8: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+
+000000cc <__ctors_end>:
+ cc: 32 1f adc r19, r18
+ ce: 38 1f adc r19, r24
+ d0: 3b 1f adc r19, r27
+ d2: 3e 1f adc r19, r30
+ d4: 41 1f adc r20, r17
+ d6: 44 1f adc r20, r20
+ d8: 4a 1f adc r20, r26
+ da: 47 1f adc r20, r23
+ dc: 4d 1f adc r20, r29
+ de: 50 1f adc r21, r16
+ e0: 53 1f adc r21, r19
+ e2: 59 1f adc r21, r25
+ e4: 5c 1f adc r21, r28
+ e6: 5f 1f adc r21, r31
+ e8: 62 1f adc r22, r18
+ ea: 56 1f adc r21, r22
+ ec: 2f 1f adc r18, r31
+ ee: 35 1f adc r19, r21
+
+000000f0 <__c.2963>:
+ f0: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 100: 72 65 61 74 69 6e 67 20 74 78 20 73 69 67 6e 61 reating tx
signa
+ 110: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+0000011b <__c.2961>:
+ 11b: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 12b: 72 65 61 74 69 6e 67 20 72 78 20 73 69 67 6e 61 reating rx
signa
+ 13b: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+00000146 <__c.2376>:
+ 146: 55 4e 4b 4f 57 4e 00 UNKOWN.
+
+0000014d <__c.2373>:
+ 14d: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 15d: 20 53 65 6d 61 70 68 6f 72 65 00 Semaphore.
+
+00000168 <__c.2370>:
+ 168: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 178: 20 53 69 67 6e 61 6c 00 Signal.
+
+00000180 <__c.2367>:
+ 180: 4b 65 72 6e 65 6c 20 66 75 6e 63 74 69 6f 6e 20 Kernel
function
+ 190: 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 00 not
implemented.
+
+000001a0 <__c.2364>:
+ 1a0: 44 65 76 69 63 65 20 44 72 69 76 65 72 20 45 72 Device
Driver Er
+ 1b0: 72 6f 72 00 ror.
+
+000001b4 <__c.2361>:
+ 1b4: 57 61 74 63 68 64 6f 67 20 52 65 73 74 61 72 74 Watchdog
Restart
+ ...
+
+000001c5 <__c.2358>:
+ 1c5: 54 69 6d 65 72 20 4f 76 65 72 66 6c 6f 77 00 Timer
Overflow.
+
+000001d4 <__c.2355>:
+ 1d4: 55 6e 68 61 6e 64 6c 65 64 20 49 6e 74 65 72 72 Unhandled
Interr
+ 1e4: 75 70 74 20 56 65 63 74 6f 72 00 upt Vector.
+
+000001ef <__c.2352>:
+ 1ef: 4c 6f 77 20 56 6f 6c 74 61 67 65 00 Low Voltage.
+
+000001fb <__c.2349>:
+ 1fb: 45 78 74 72 61 20 54 61 73 6b 20 73 74 61 72 74 Extra Task
start
+ 20b: 65 64 2c 20 69 73 20 6e 72 6b 5f 63 66 67 2e 68 ed, is
nrk_cfg.h
+ 21b: 20 6f 6b 3f 00 ok?.
+
+00000220 <__c.2346>:
+ 220: 49 64 6c 65 20 6f 72 20 4b 65 72 6e 65 6c 20 53 Idle or
Kernel S
+ 230: 74 61 63 6b 20 4f 76 65 72 66 6c 6f 77 00 tack
Overflow.
+
+0000023e <__c.2343>:
+ 23e: 55 6e 65 78 70 65 63 74 65 64 20 52 65 73 74 61 Unexpected
Resta
+ 24e: 72 74 00 rt.
+
+00000251 <__c.2340>:
+ 251: 44 75 70 6c 69 63 61 74 65 64 20 54 61 73 6b 20 Duplicated
Task
+ 261: 49 44 00 ID.
+
+00000264 <__c.2337>:
+ 264: 53 63 68 65 64 75 6c 65 72 20 4d 69 73 73 65 64 Scheduler
Missed
+ 274: 20 57 61 6b 65 75 70 00 Wakeup.
+
+0000027c <__c.2334>:
+ 27c: 54 61 73 6b 20 52 65 73 65 72 76 65 20 56 69 6f Task Reserve
Vio
+ 28c: 6c 61 74 65 64 00 lated.
+
+00000292 <__c.2331>:
+ 292: 52 65 73 65 72 76 65 20 45 72 72 6f 72 20 69 6e Reserve
Error in
+ 2a2: 20 53 63 68 65 64 75 6c 65 72 00 Scheduler.
+
+000002ad <__c.2328>:
+ 2ad: 49 6e 76 61 6c 69 64 20 53 74 61 63 6b 20 50 6f Invalid
Stack Po
+ 2bd: 69 6e 74 65 72 00 inter.
+
+000002c3 <__c.2325>:
+ 2c3: 54 61 73 6b 20 53 74 61 63 6b 20 4f 76 65 72 66 Task Stack
Overf
+ 2d3: 6c 6f 77 00 low.
+
+000002d7 <__c.2321>:
+ 2d7: 53 74 61 63 6b 20 77 61 73 20 6e 6f 74 20 64 65 Stack was
not de
+ 2e7: 66 69 6e 65 64 20 61 73 20 6c 61 72 67 65 20 65 fined as
large e
+ 2f7: 6e 6f 75 67 68 21 00 nough!.
+
+000002fe <__c.2318>:
+ 2fe: 29 3a 20 00 ): .
+
+00000302 <__c.2316>:
+ 302: 2a 4e 52 4b 20 45 52 52 4f 52 28 00 *NRK ERROR(.
+
+0000030e <__c.2249>:
+ 30e: 0d 0a 53 54 41 43 4b 20 44 55 4d 50 0d 0a 00 00 ..STACK
DUMP....
+
+0000031e <__init>:
+ 31e: 11 24 eor r1, r1
+ 320: 1f be out 0x3f, r1 ; 63
+ 322: cf ef ldi r28, 0xFF ; 255
+ 324: d1 e2 ldi r29, 0x21 ; 33
+ 326: de bf out 0x3e, r29 ; 62
+ 328: cd bf out 0x3d, r28 ; 61
+
+0000032a <__do_copy_data>:
+ 32a: 13 e0 ldi r17, 0x03 ; 3
+ 32c: a0 e0 ldi r26, 0x00 ; 0
+ 32e: b2 e0 ldi r27, 0x02 ; 2
+ 330: ea eb ldi r30, 0xBA ; 186
+ 332: f9 e6 ldi r31, 0x69 ; 105
+ 334: 00 e0 ldi r16, 0x00 ; 0
+ 336: 0b bf out 0x3b, r16 ; 59
+ 338: 02 c0 rjmp .+4 ; 0x33e <__do_copy_data+0x14>
+ 33a: 07 90 elpm r0, Z+
+ 33c: 0d 92 st X+, r0
+ 33e: a0 31 cpi r26, 0x10 ; 16
+ 340: b1 07 cpc r27, r17
+ 342: d9 f7 brne .-10 ; 0x33a <__do_copy_data+0x10>
+
+00000344 <__do_clear_bss>:
+ 344: 18 e0 ldi r17, 0x08 ; 8
+ 346: a0 e1 ldi r26, 0x10 ; 16
+ 348: b3 e0 ldi r27, 0x03 ; 3
+ 34a: 01 c0 rjmp .+2 ; 0x34e <.do_clear_bss_start>
+
+0000034c <.do_clear_bss_loop>:
+ 34c: 1d 92 st X+, r1
+
+0000034e <.do_clear_bss_start>:
+ 34e: ae 31 cpi r26, 0x1E ; 30
+ 350: b1 07 cpc r27, r17
+ 352: e1 f7 brne .-8 ; 0x34c <.do_clear_bss_loop>
+ 354: 0e 94 57 03 call 0x6ae ; 0x6ae <main>
+ 358: 0c 94 dc 34 jmp 0x69b8 ; 0x69b8 <_exit>
+
+0000035c <__bad_interrupt>:
+ 35c: 0c 94 05 2d jmp 0x5a0a ; 0x5a0a <__vector_default>
+
+00000360 <monome_setup_system>:
+}
+
+inline void monome_setup_system(){
+ int i;
+ state = SYNC;
+ 360: 81 e0 ldi r24, 0x01 ; 1
+ 362: 80 93 f7 03 sts 0x03F7, r24
+ num_players = 0;
+ 366: 10 92 0f 04 sts 0x040F, r1
+ 36a: 20 e0 ldi r18, 0x00 ; 0
+ 36c: 30 e0 ldi r19, 0x00 ; 0
+ for(i = 0; i < MAX_NUM_PLAYERS; i++){
+ player_rx[i] = -1;
+ 36e: f9 01 movw r30, r18
+ 370: e3 5f subi r30, 0xF3 ; 243
+ 372: fa 4f sbci r31, 0xFA ; 250
+ 374: 8f ef ldi r24, 0xFF ; 255
+ 376: 80 83 st Z, r24
+ player_tx[i] = -1;
+ 378: f9 01 movw r30, r18
+ 37a: e3 57 subi r30, 0x73 ; 115
+ 37c: f9 4f sbci r31, 0xF9 ; 249
+ 37e: 80 83 st Z, r24
+ 380: 2f 5f subi r18, 0xFF ; 255
+ 382: 3f 4f sbci r19, 0xFF ; 255
+ 384: 24 30 cpi r18, 0x04 ; 4
+ 386: 31 05 cpc r19, r1
+ 388: 91 f7 brne .-28 ; 0x36e <monome_setup_system+0xe>
+ 38a: 08 95 ret
+
+0000038c <monome_add_controller>:
+ }
+
+}
+
+inline void monome_add_controller(uint8_t slot){
+ 38c: 98 2f mov r25, r24
+ int i, already_player;
+ already_player = 0;
+ for(i = 0; i<num_players; i++){
+ 38e: 80 91 0f 04 lds r24, 0x040F
+ 392: a8 2f mov r26, r24
+ 394: bb 27 eor r27, r27
+ 396: ed e8 ldi r30, 0x8D ; 141
+ 398: f6 e0 ldi r31, 0x06 ; 6
+ 39a: 40 e0 ldi r20, 0x00 ; 0
+ 39c: 50 e0 ldi r21, 0x00 ; 0
+ 39e: 9d 01 movw r18, r26
+ 3a0: 2e 0f add r18, r30
+ 3a2: 3f 1f adc r19, r31
+ 3a4: 06 c0 rjmp .+12 ; 0x3b2 <monome_add_controller+0x26>
+ if(slot == player_tx[i]){
+ 3a6: 80 81 ld r24, Z
+ 3a8: 98 17 cp r25, r24
+ 3aa: 11 f4 brne .+4 ; 0x3b0 <monome_add_controller+0x24>
+ 3ac: 41 e0 ldi r20, 0x01 ; 1
+ 3ae: 50 e0 ldi r21, 0x00 ; 0
+ 3b0: 31 96 adiw r30, 0x01 ; 1
+ 3b2: e2 17 cp r30, r18
+ 3b4: f3 07 cpc r31, r19
+ 3b6: b9 f7 brne .-18 ; 0x3a6 <monome_add_controller+0x1a>
+ already_player = 1;
+ }
+ }
+ if(already_player == 0){
+ 3b8: 45 2b or r20, r21
+ 3ba: 09 f0 breq .+2 ; 0x3be <monome_add_controller+0x32>
+ 3bc: 73 c0 rjmp .+230 ; 0x4a4 <monome_add_controller+0x118>
+ /* consider code to add player back if player is lost */
+ switch(slot){
+ 3be: 94 30 cpi r25, 0x04 ; 4
+ 3c0: 91 f0 breq .+36 ; 0x3e6 <monome_add_controller+0x5a>
+ 3c2: 95 30 cpi r25, 0x05 ; 5
+ 3c4: 18 f4 brcc .+6 ; 0x3cc <monome_add_controller+0x40>
+ 3c6: 92 30 cpi r25, 0x02 ; 2
+ 3c8: 31 f5 brne .+76 ; 0x416 <monome_add_controller+0x8a>
+ 3ca: 05 c0 rjmp .+10 ; 0x3d6 <monome_add_controller+0x4a>
+ 3cc: 96 30 cpi r25, 0x06 ; 6
+ 3ce: 99 f0 breq .+38 ; 0x3f6 <monome_add_controller+0x6a>
+ 3d0: 98 30 cpi r25, 0x08 ; 8
+ 3d2: 09 f5 brne .+66 ; 0x416 <monome_add_controller+0x8a>
+ 3d4: 18 c0 rjmp .+48 ; 0x406 <monome_add_controller+0x7a>
+ case C1_TX: player_tx[num_players] = C1_TX;
+ 3d6: fd 01 movw r30, r26
+ 3d8: e3 57 subi r30, 0x73 ; 115
+ 3da: f9 4f sbci r31, 0xF9 ; 249
+ 3dc: 90 83 st Z, r25
+ player_rx[num_players] = C1_RX;
+ 3de: a3 5f subi r26, 0xF3 ; 243
+ 3e0: ba 4f sbci r27, 0xFA ; 250
+ 3e2: 85 e0 ldi r24, 0x05 ; 5
+ 3e4: 17 c0 rjmp .+46 ; 0x414 <monome_add_controller+0x88>
+ break;
+ case C2_TX: player_tx[num_players] = C2_TX;
+ 3e6: fd 01 movw r30, r26
+ 3e8: e3 57 subi r30, 0x73 ; 115
+ 3ea: f9 4f sbci r31, 0xF9 ; 249
+ 3ec: 90 83 st Z, r25
+ player_rx[num_players] = C2_RX;
+ 3ee: a3 5f subi r26, 0xF3 ; 243
+ 3f0: ba 4f sbci r27, 0xFA ; 250
+ 3f2: 87 e0 ldi r24, 0x07 ; 7
+ 3f4: 0f c0 rjmp .+30 ; 0x414 <monome_add_controller+0x88>
+ break;
+ case C3_TX: player_tx[num_players] = C3_TX;
+ 3f6: fd 01 movw r30, r26
+ 3f8: e3 57 subi r30, 0x73 ; 115
+ 3fa: f9 4f sbci r31, 0xF9 ; 249
+ 3fc: 90 83 st Z, r25
+ player_rx[num_players] = C3_RX;
+ 3fe: a3 5f subi r26, 0xF3 ; 243
+ 400: ba 4f sbci r27, 0xFA ; 250
+ 402: 89 e0 ldi r24, 0x09 ; 9
+ 404: 07 c0 rjmp .+14 ; 0x414 <monome_add_controller+0x88>
+ break;
+ case C4_TX: player_tx[num_players] = C4_TX;
+ 406: fd 01 movw r30, r26
+ 408: e3 57 subi r30, 0x73 ; 115
+ 40a: f9 4f sbci r31, 0xF9 ; 249
+ 40c: 90 83 st Z, r25
+ player_rx[num_players] = C4_RX;
+ 40e: a3 5f subi r26, 0xF3 ; 243
+ 410: ba 4f sbci r27, 0xFA ; 250
+ 412: 8b e0 ldi r24, 0x0B ; 11
+ 414: 8c 93 st X, r24
+ break;
+ default: break;
+ }
+ while( rtl_tx_pkt_check(player_rx[num_players])!=0 );
+ 416: e0 91 0f 04 lds r30, 0x040F
+ 41a: ff 27 eor r31, r31
+ 41c: e3 5f subi r30, 0xF3 ; 243
+ 41e: fa 4f sbci r31, 0xFA ; 250
+ 420: 80 81 ld r24, Z
+ 422: 0e 94 a8 03 call 0x750 ; 0x750 <rtl_tx_pkt_check>
+ 426: 88 23 and r24, r24
+ 428: b1 f7 brne .-20 ; 0x416 <monome_add_controller+0x8a>
+ sync_pkt.player = num_players;
+ 42a: 80 91 0f 04 lds r24, 0x040F
+ 42e: 80 93 85 04 sts 0x0485, r24
+ printf("player number sent: %d\r\n", sync_pkt.player);
+ 432: 99 27 eor r25, r25
+ 434: 9f 93 push r25
+ 436: 8f 93 push r24
+ 438: 80 e0 ldi r24, 0x00 ; 0
+ 43a: 92 e0 ldi r25, 0x02 ; 2
+ 43c: 9f 93 push r25
+ 43e: 8f 93 push r24
+ 440: 0e 94 d6 32 call 0x65ac ; 0x65ac <printf>
+ memcpy(&tx_buf[PKT_DATA_START], &sync_pkt, sizeof(monome_comm_sync_pkt));
+ 444: 80 91 85 04 lds r24, 0x0485
+ 448: 80 93 17 05 sts 0x0517, r24
+ tx_len = type(monome_comm_sync_pkt);
+ 44c: 84 e0 ldi r24, 0x04 ; 4
+ 44e: 80 93 96 05 sts 0x0596, r24
+ rtl_tx_pkt( tx_buf, tx_len, player_rx[num_players]);
+ 452: e0 91 0f 04 lds r30, 0x040F
+ 456: ff 27 eor r31, r31
+ 458: e3 5f subi r30, 0xF3 ; 243
+ 45a: fa 4f sbci r31, 0xFA ; 250
+ 45c: 40 81 ld r20, Z
+ 45e: 64 e0 ldi r22, 0x04 ; 4
+ 460: 84 e1 ldi r24, 0x14 ; 20
+ 462: 95 e0 ldi r25, 0x05 ; 5
+ 464: 0e 94 c0 07 call 0xf80 ; 0xf80 <rtl_tx_pkt>
+ rtl_wait_until_tx_done(player_rx[num_players]);
+ 468: e0 91 0f 04 lds r30, 0x040F
+ 46c: ff 27 eor r31, r31
+ 46e: e3 5f subi r30, 0xF3 ; 243
+ 470: fa 4f sbci r31, 0xFA ; 250
+ 472: 80 81 ld r24, Z
+ 474: 0e 94 64 0a call 0x14c8 ; 0x14c8 <rtl_wait_until_tx_done>
+ num_players++;
+ 478: 80 91 0f 04 lds r24, 0x040F
+ 47c: 8f 5f subi r24, 0xFF ; 255
+ 47e: 80 93 0f 04 sts 0x040F, r24
+ printf("added new player: player %d\r\n", num_players);
+ 482: 99 27 eor r25, r25
+ 484: 9f 93 push r25
+ 486: 8f 93 push r24
+ 488: 89 e1 ldi r24, 0x19 ; 25
+ 48a: 92 e0 ldi r25, 0x02 ; 2
+ 48c: 9f 93 push r25
+ 48e: 8f 93 push r24
+ 490: 0e 94 d6 32 call 0x65ac ; 0x65ac <printf>
+ 494: 8d b7 in r24, 0x3d ; 61
+ 496: 9e b7 in r25, 0x3e ; 62
+ 498: 08 96 adiw r24, 0x08 ; 8
+ 49a: 0f b6 in r0, 0x3f ; 63
+ 49c: f8 94 cli
+ 49e: 9e bf out 0x3e, r25 ; 62
+ 4a0: 0f be out 0x3f, r0 ; 63
+ 4a2: 8d bf out 0x3d, r24 ; 61
+ 4a4: 08 95 ret
+
+000004a6 <monome_comm_init>:
+ 4a6: 82 e0 ldi r24, 0x02 ; 2
+ 4a8: 0e 94 8b 04 call 0x916 ; 0x916 <rtl_init>
+ 4ac: 41 e0 ldi r20, 0x01 ; 1
+ 4ae: 62 e0 ldi r22, 0x02 ; 2
+ 4b0: 80 e0 ldi r24, 0x00 ; 0
+ 4b2: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4b6: 41 e0 ldi r20, 0x01 ; 1
+ 4b8: 64 e0 ldi r22, 0x04 ; 4
+ 4ba: 80 e0 ldi r24, 0x00 ; 0
+ 4bc: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4c0: 41 e0 ldi r20, 0x01 ; 1
+ 4c2: 66 e0 ldi r22, 0x06 ; 6
+ 4c4: 80 e0 ldi r24, 0x00 ; 0
+ 4c6: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4ca: 41 e0 ldi r20, 0x01 ; 1
+ 4cc: 68 e0 ldi r22, 0x08 ; 8
+ 4ce: 80 e0 ldi r24, 0x00 ; 0
+ 4d0: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4d4: 41 e0 ldi r20, 0x01 ; 1
+ 4d6: 63 e0 ldi r22, 0x03 ; 3
+ 4d8: 81 e0 ldi r24, 0x01 ; 1
+ 4da: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4de: 41 e0 ldi r20, 0x01 ; 1
+ 4e0: 65 e0 ldi r22, 0x05 ; 5
+ 4e2: 81 e0 ldi r24, 0x01 ; 1
+ 4e4: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4e8: 41 e0 ldi r20, 0x01 ; 1
+ 4ea: 67 e0 ldi r22, 0x07 ; 7
+ 4ec: 81 e0 ldi r24, 0x01 ; 1
+ 4ee: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4f2: 41 e0 ldi r20, 0x01 ; 1
+ 4f4: 69 e0 ldi r22, 0x09 ; 9
+ 4f6: 81 e0 ldi r24, 0x01 ; 1
+ 4f8: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 4fc: 41 e0 ldi r20, 0x01 ; 1
+ 4fe: 6b e0 ldi r22, 0x0B ; 11
+ 500: 81 e0 ldi r24, 0x01 ; 1
+ 502: 0e 94 d6 0a call 0x15ac ; 0x15ac <rtl_set_schedule>
+ 506: 0e 94 47 04 call 0x88e ; 0x88e <rtl_start>
+ 50a: 64 e7 ldi r22, 0x74 ; 116
+ 50c: 81 e1 ldi r24, 0x11 ; 17
+ 50e: 94 e0 ldi r25, 0x04 ; 4
+ 510: 0e 94 e2 03 call 0x7c4 ; 0x7c4 <rtl_rx_pkt_set_buffer>
+ 514: 08 95 ret
+
+00000516 <nrk_create_taskset>:
+ 516: 88 ee ldi r24, 0xE8 ; 232
+ 518: 92 e0 ldi r25, 0x02 ; 2
+ 51a: 90 93 da 03 sts 0x03DA, r25
+ 51e: 80 93 d9 03 sts 0x03D9, r24
+ 522: 86 e0 ldi r24, 0x06 ; 6
+ 524: 95 e0 ldi r25, 0x05 ; 5
+ 526: 90 93 d6 03 sts 0x03D6, r25
+ 52a: 80 93 d5 03 sts 0x03D5, r24
+ 52e: 87 e8 ldi r24, 0x87 ; 135
+ 530: 94 e0 ldi r25, 0x04 ; 4
+ 532: 90 93 d8 03 sts 0x03D8, r25
+ 536: 80 93 d7 03 sts 0x03D7, r24
+ 53a: 82 e0 ldi r24, 0x02 ; 2
+ 53c: 80 93 dc 03 sts 0x03DC, r24
+ 540: 81 e0 ldi r24, 0x01 ; 1
+ 542: 80 93 db 03 sts 0x03DB, r24
+ 546: 80 93 dd 03 sts 0x03DD, r24
+ 54a: 80 93 de 03 sts 0x03DE, r24
+ 54e: 81 e0 ldi r24, 0x01 ; 1
+ 550: 90 e0 ldi r25, 0x00 ; 0
+ 552: a0 e0 ldi r26, 0x00 ; 0
+ 554: b0 e0 ldi r27, 0x00 ; 0
+ 556: 80 93 df 03 sts 0x03DF, r24
+ 55a: 90 93 e0 03 sts 0x03E0, r25
+ 55e: a0 93 e1 03 sts 0x03E1, r26
+ 562: b0 93 e2 03 sts 0x03E2, r27
+ 566: 10 92 e3 03 sts 0x03E3, r1
+ 56a: 10 92 e4 03 sts 0x03E4, r1
+ 56e: 10 92 e5 03 sts 0x03E5, r1
+ 572: 10 92 e6 03 sts 0x03E6, r1
+ 576: 10 92 e7 03 sts 0x03E7, r1
+ 57a: 10 92 e8 03 sts 0x03E8, r1
+ 57e: 10 92 e9 03 sts 0x03E9, r1
+ 582: 10 92 ea 03 sts 0x03EA, r1
+ 586: 80 e0 ldi r24, 0x00 ; 0
+ 588: 91 ee ldi r25, 0xE1 ; 225
+ 58a: a5 ef ldi r26, 0xF5 ; 245
+ 58c: b5 e0 ldi r27, 0x05 ; 5
+ 58e: 80 93 eb 03 sts 0x03EB, r24
+ 592: 90 93 ec 03 sts 0x03EC, r25
+ 596: a0 93 ed 03 sts 0x03ED, r26
+ 59a: b0 93 ee 03 sts 0x03EE, r27
+ 59e: 10 92 ef 03 sts 0x03EF, r1
+ 5a2: 10 92 f0 03 sts 0x03F0, r1
+ 5a6: 10 92 f1 03 sts 0x03F1, r1
+ 5aa: 10 92 f2 03 sts 0x03F2, r1
+ 5ae: 10 92 f3 03 sts 0x03F3, r1
+ 5b2: 10 92 f4 03 sts 0x03F4, r1
+ 5b6: 10 92 f5 03 sts 0x03F5, r1
+ 5ba: 10 92 f6 03 sts 0x03F6, r1
+ 5be: 84 ed ldi r24, 0xD4 ; 212
+ 5c0: 93 e0 ldi r25, 0x03 ; 3
+ 5c2: 0e 94 7e 26 call 0x4cfc ; 0x4cfc <nrk_activate_task>
+ 5c6: 87 e3 ldi r24, 0x37 ; 55
+ 5c8: 92 e0 ldi r25, 0x02 ; 2
+ 5ca: 0e 94 f6 32 call 0x65ec ; 0x65ec <puts>
+ 5ce: 08 95 ret
+
+000005d0 <Task1>:
+ 5d0: 8f 92 push r8
+ 5d2: 9f 92 push r9
+ 5d4: af 92 push r10
+ 5d6: bf 92 push r11
+ 5d8: cf 92 push r12
+ 5da: df 92 push r13
+ 5dc: ef 92 push r14
+ 5de: ff 92 push r15
+ 5e0: 0f 93 push r16
+ 5e2: 1f 93 push r17
+ 5e4: cf 93 push r28
+ 5e6: df 93 push r29
+ 5e8: cd b7 in r28, 0x3d ; 61
+ 5ea: de b7 in r29, 0x3e ; 62
+ 5ec: 23 97 sbiw r28, 0x03 ; 3
+ 5ee: 0f b6 in r0, 0x3f ; 63
+ 5f0: f8 94 cli
+ 5f2: de bf out 0x3e, r29 ; 62
+ 5f4: 0f be out 0x3f, r0 ; 63
+ 5f6: cd bf out 0x3d, r28 ; 61
+ 5f8: 0e 94 53 02 call 0x4a6 ; 0x4a6 <monome_comm_init>
+ 5fc: 0e 94 b0 01 call 0x360 ; 0x360 <monome_setup_system>
+ 600: 02 c0 rjmp .+4 ; 0x606 <Task1+0x36>
+ 602: 0e 94 40 26 call 0x4c80 ; 0x4c80 <nrk_wait_until_next_period>
+ 606: 0e 94 8e 03 call 0x71c ; 0x71c <rtl_ready>
+ 60a: 88 23 and r24, r24
+ 60c: d1 f3 breq .-12 ; 0x602 <Task1+0x32>
+ 60e: 22 e0 ldi r18, 0x02 ; 2
+ 610: 82 2e mov r8, r18
+ 612: 91 2c mov r9, r1
+ 614: 8c 0e add r8, r28
+ 616: 9d 1e adc r9, r29
+ 618: 93 e0 ldi r25, 0x03 ; 3
+ 61a: a9 2e mov r10, r25
+ 61c: b1 2c mov r11, r1
+ 61e: ac 0e add r10, r28
+ 620: bd 1e adc r11, r29
+ 622: 6e 01 movw r12, r28
+ 624: 08 94 sec
+ 626: c1 1c adc r12, r1
+ 628: d1 1c adc r13, r1
+ 62a: 84 e4 ldi r24, 0x44 ; 68
+ 62c: e8 2e mov r14, r24
+ 62e: 82 e0 ldi r24, 0x02 ; 2
+ 630: f8 2e mov r15, r24
+ 632: 01 e6 ldi r16, 0x61 ; 97
+ 634: 12 e0 ldi r17, 0x02 ; 2
+ 636: 0e 94 c3 03 call 0x786 ; 0x786 <rtl_rx_pkt_check>
+ 63a: 88 23 and r24, r24
+ 63c: a9 f1 breq .+106 ; 0x6a8 <Task1+0xd8>
+ 63e: 81 e0 ldi r24, 0x01 ; 1
+ 640: 90 e0 ldi r25, 0x00 ; 0
+ 642: 0e 94 78 1b call 0x36f0 ; 0x36f0 <nrk_led_set>
+ 646: a4 01 movw r20, r8
+ 648: b5 01 movw r22, r10
+ 64a: c6 01 movw r24, r12
+ 64c: 0e 94 9d 0a call 0x153a ; 0x153a <rtl_rx_pkt_get>
+ 650: 89 81 ldd r24, Y+1 ; 0x01
+ 652: 99 27 eor r25, r25
+ 654: 9f 93 push r25
+ 656: 8f 93 push r24
+ 658: 8a 81 ldd r24, Y+2 ; 0x02
+ 65a: 99 27 eor r25, r25
+ 65c: 9f 93 push r25
+ 65e: 8f 93 push r24
+ 660: ff 92 push r15
+ 662: ef 92 push r14
+ 664: 0e 94 d6 32 call 0x65ac ; 0x65ac <printf>
+ 668: 8d b7 in r24, 0x3d ; 61
+ 66a: 9e b7 in r25, 0x3e ; 62
+ 66c: 06 96 adiw r24, 0x06 ; 6
+ 66e: 0f b6 in r0, 0x3f ; 63
+ 670: f8 94 cli
+ 672: 9e bf out 0x3e, r25 ; 62
+ 674: 0f be out 0x3f, r0 ; 63
+ 676: 8d bf out 0x3d, r24 ; 61
+ 678: 89 81 ldd r24, Y+1 ; 0x01
+ 67a: 84 30 cpi r24, 0x04 ; 4
+ 67c: 89 f4 brne .+34 ; 0x6a0 <Task1+0xd0>
+ 67e: 0e 94 a5 03 call 0x74a ; 0x74a <rtl_rx_pkt_release>
+ 682: 80 91 f7 03 lds r24, 0x03F7
+ 686: 81 30 cpi r24, 0x01 ; 1
+ 688: 41 f4 brne .+16 ; 0x69a <Task1+0xca>
+ 68a: 80 91 0f 04 lds r24, 0x040F
+ 68e: 84 30 cpi r24, 0x04 ; 4
+ 690: 20 f4 brcc .+8 ; 0x69a <Task1+0xca>
+ 692: 8a 81 ldd r24, Y+2 ; 0x02
+ 694: 0e 94 c6 01 call 0x38c ; 0x38c <monome_add_controller>
+ 698: 03 c0 rjmp .+6 ; 0x6a0 <Task1+0xd0>
+ 69a: c8 01 movw r24, r16
+ 69c: 0e 94 f6 32 call 0x65ec ; 0x65ec <puts>
+ 6a0: 81 e0 ldi r24, 0x01 ; 1
+ 6a2: 90 e0 ldi r25, 0x00 ; 0
+ 6a4: 0e 94 5b 1b call 0x36b6 ; 0x36b6 <nrk_led_clr>
+ 6a8: 0e 94 40 26 call 0x4c80 ; 0x4c80 <nrk_wait_until_next_period>
+ 6ac: c4 cf rjmp .-120 ; 0x636 <Task1+0x66>
+
+000006ae <main>:
+ 6ae: cf ef ldi r28, 0xFF ; 255
+ 6b0: d1 e2 ldi r29, 0x21 ; 33
+ 6b2: de bf out 0x3e, r29 ; 62
+ 6b4: cd bf out 0x3d, r28 ; 61
+ 6b6: 0e 94 bb 17 call 0x2f76 ; 0x2f76 <nrk_setup_ports>
+ 6ba: 87 e0 ldi r24, 0x07 ; 7
+ 6bc: 90 e0 ldi r25, 0x00 ; 0
+ 6be: 0e 94 f0 1b call 0x37e0 ; 0x37e0 <nrk_setup_uart>
+ 6c2: 83 e8 ldi r24, 0x83 ; 131
+ 6c4: 92 e0 ldi r25, 0x02 ; 2
+ 6c6: 0e 94 f6 32 call 0x65ec ; 0x65ec <puts>
+ 6ca: 0e 94 4b 1e call 0x3c96 ; 0x3c96 <nrk_init>
+ 6ce: 80 e0 ldi r24, 0x00 ; 0
+ 6d0: 90 e0 ldi r25, 0x00 ; 0
+ 6d2: 0e 94 5b 1b call 0x36b6 ; 0x36b6 <nrk_led_clr>
+ 6d6: 81 e0 ldi r24, 0x01 ; 1
+ 6d8: 90 e0 ldi r25, 0x00 ; 0
+ 6da: 0e 94 5b 1b call 0x36b6 ; 0x36b6 <nrk_led_clr>
+ 6de: 82 e0 ldi r24, 0x02 ; 2
+ 6e0: 90 e0 ldi r25, 0x00 ; 0
+ 6e2: 0e 94 5b 1b call 0x36b6 ; 0x36b6 <nrk_led_clr>
+ 6e6: 83 e0 ldi r24, 0x03 ; 3
+ 6e8: 90 e0 ldi r25, 0x00 ; 0
+ 6ea: 0e 94 5b 1b call 0x36b6 ; 0x36b6 <nrk_led_clr>
+ 6ee: 20 e0 ldi r18, 0x00 ; 0
+ 6f0: 30 e0 ldi r19, 0x00 ; 0
+ 6f2: 40 e0 ldi r20, 0x00 ; 0
+ 6f4: 50 e0 ldi r21, 0x00 ; 0
+ 6f6: 60 e0 ldi r22, 0x00 ; 0
+ 6f8: 70 e0 ldi r23, 0x00 ; 0
+ 6fa: 80 e0 ldi r24, 0x00 ; 0
+ 6fc: 90 e0 ldi r25, 0x00 ; 0
+ 6fe: 0e 94 e2 27 call 0x4fc4 ; 0x4fc4 <nrk_time_set>
+ 702: 0e 94 f2 03 call 0x7e4 ; 0x7e4 <rtl_task_config>
+ 706: 0e 94 8b 02 call 0x516 ; 0x516 <nrk_create_taskset>
+ 70a: 0e 94 eb 1d call 0x3bd6 ; 0x3bd6 <nrk_start>
+ 70e: 80 e0 ldi r24, 0x00 ; 0
+ 710: 90 e0 ldi r25, 0x00 ; 0
+ 712: 0c 94 dc 34 jmp 0x69b8 ; 0x69b8 <_exit>
+
+00000716 <rtl_wait_until_global_slot>:
+
+int8_t rtl_wait_until_global_slot (uint16_t slot)
+{
+ return NRK_ERROR;
+}
+ 716: 8f ef ldi r24, 0xFF ; 255
+ 718: 9f ef ldi r25, 0xFF ; 255
+ 71a: 08 95 ret
+
+0000071c <rtl_ready>:
+
+int8_t rtl_ready ()
+{
+ if (_rtl_ready == 1)
+ 71c: 80 91 23 03 lds r24, 0x0323
+ 720: 81 30 cpi r24, 0x01 ; 1
+ 722: 19 f4 brne .+6 ; 0x72a <rtl_ready+0xe>
+ 724: 81 e0 ldi r24, 0x01 ; 1
+ 726: 90 e0 ldi r25, 0x00 ; 0
+ 728: 08 95 ret
+ 72a: 8f ef ldi r24, 0xFF ; 255
+ 72c: 9f ef ldi r25, 0xFF ; 255
+ return NRK_OK;
+ else
+ return NRK_ERROR;
+}
+ 72e: 08 95 ret
+
+00000730 <rtl_get_slot>:
+
+uint8_t* rtl_rx_pkt_get (uint8_t *len, int8_t *rssi,uint8_t *slot)
+{
+if(rtl_rx_pkt_check()==0)
+ {
+ *len=0;
+ *rssi=0;
+ *slot=0;
+ return NULL;
+ }
+ *len=rtl_rfRxInfo.length;
+ *rssi=rtl_rfRxInfo.rssi;
+ *slot=rtl_rx_slot;
+
+return rtl_rfRxInfo.pPayload;
+}
+
+uint16_t rtl_get_slot ()
+{
+ return current_global_slot;
+ 730: 80 91 29 07 lds r24, 0x0729
+ 734: 90 91 2a 07 lds r25, 0x072A
+ 738: 08 95 ret
+
+0000073a <rtl_sync_status>:
+}
+
+/**
+ * rtl_sync_status()
+ *
+ * Return: 1 if sync is good, 0 if sync has failed
+ *
+ * This function returns if the synchronization is good. _rtl_sync_ok
+ * is set inside the interrupt based upon the time between the last cycle
+ * and the sync pulse.
+ */
+uint8_t rtl_sync_status ()
+{
+ 73a: 80 91 a9 03 lds r24, 0x03A9
+ return _rtl_sync_ok;
+}
+ 73e: 99 27 eor r25, r25
+ 740: 08 95 ret
+
+00000742 <rtl_check_abs_tx_status>:
+
+/**
+ * rtl_check_abs_tx_status()
+ *
+ * This function allows an upper layer to check if the abs TX packet
+ * has been sent. This is only for the single absolute packet.
+ *
+ * Returns: 1 if the packet was sent, 0 otherwise
+ */
+uint8_t rtl_check_abs_tx_status ()
+{
+ 742: 80 91 88 05 lds r24, 0x0588
+ return rtl_abs_tx_ready;
+}
+ 746: 99 27 eor r25, r25
+ 748: 08 95 ret
+
+0000074a <rtl_rx_pkt_release>:
+
+/**
+ * rtl_tx_abs_packet()
+ *
+ * This function sends a single packet at an arbitrary slot
+ * over the entire TDMA frame.
+ *
+ * Arguments: RF_TX_INFO *tx is a pointer to a transmit structure, this
structure
+ * must have a valid pPayload pointer to the real packet.
+ * uint16_t abs_slot is the number of the absolute slot that
will tx.
+ *
+ * Return: returns 1 upon success, and 0 on failure due to overlaping TX
slot
+ *
+ */
+int8_t rtl_tx_abs_pkt (uint8_t *buf, uint8_t len, uint16_t abs_slot)
+{
+ uint8_t slot;
+ uint32_t slot_mask;
+
+ // Make sure this isn't already a TX slot
+ slot = abs_slot % 32;
+ slot_mask = ((uint32_t) 1) << slot;
+ if (slot_mask & rtl_tdma_tx_mask)
+ return 0;
+
+ rtl_tx_info[TDMA_FRAME_SLOTS+1].pPayload= buf;
+ rtl_tx_info[TDMA_FRAME_SLOTS+1].length= len;
+ //rtl_rfTxInfo[TDMA_FRAME_SLOTS + 1] = tx; // last element for abs
slot
+ rtl_abs_tx_slot = abs_slot;
+ rtl_set_abs_wakeup (abs_slot, 0); // schedule once, but don't repeat
+ rtl_abs_tx_ready = 1;
+ return 1;
+
+}
+
+/**
+ * rtl_tx_packet()
+ *
+ * This function associates a slot with a particular packet that needs
+ * to be sent.
+ *
+ * Arguments: RF_TX_INFO *tx is a pointer to a transmit structure, this
structure
+ * must have a valid pPayload pointer to the real packet.
+ * uint8_t slot is the value of the tx slot (starting from 0)
+ *
+ * Return: currently always returns 1
+ */
+int8_t rtl_tx_pkt (uint8_t *tx_buf, uint8_t len, uint8_t slot)
+{
+
+ if (slot == RTL_CONTENTION) {
+ slot = rand () % _rtl_contention_slots;
+ slot = (TDMA_FRAME_SLOTS - slot - 1);
+ _rtl_contention_pending = 1;
+ }
+ rtl_tx_info[slot].pPayload = tx_buf; // pass le pointer
+ rtl_tx_info[slot].length = len; // pass le pointer
+ rtl_tx_data_ready |= ((uint32_t) 1 << slot); // set the flag
+ return 1;
+}
+
+/**
+ * rtl_release_rx_packet()
+ *
+ * This function releases the link layer's hold on the rx buffer.
+ * This must be called after a packet is received before a new
+ * packet can be buffered! This should ideally be done by the
+ * network layer.
+ */
+void rtl_rx_pkt_release()
+{
+ rtl_rx_data_ready = 0;
+ 74a: 10 92 13 05 sts 0x0513, r1
+ 74e: 08 95 ret
+
+00000750 <rtl_tx_pkt_check>:
+}
+
+/**
+ * rtl_check_tx_status()
+ *
+ * This function allows an upper layer to check if a TX packet
+ * has been sent. For instance, you would first send a packet with
+ * rtl_tx_packet(&myTX, 8 );
+ * and then you could sleep or do more work, and eventually check
+ * done=rtl_check_tx_status(8);
+ * to see if the packet had been sent by the interrupt routine.
+ *
+ * Returns: 1 if the packet was sent, 0 otherwise
+ */
+int8_t rtl_tx_pkt_check(uint8_t slot)
+{
+ 750: 28 2f mov r18, r24
+ if (slot == RTL_CONTENTION) {
+ 752: 81 32 cpi r24, 0x21 ; 33
+ 754: 31 f4 brne .+12 ; 0x762 <rtl_tx_pkt_check+0x12>
+ return _rtl_contention_pending;
+ 756: 80 91 10 04 lds r24, 0x0410
+ 75a: 99 27 eor r25, r25
+ 75c: 87 fd sbrc r24, 7
+ 75e: 90 95 com r25
+ 760: 08 95 ret
+ 762: 80 91 a4 03 lds r24, 0x03A4
+ 766: 90 91 a5 03 lds r25, 0x03A5
+ 76a: a0 91 a6 03 lds r26, 0x03A6
+ 76e: b0 91 a7 03 lds r27, 0x03A7
+ 772: 04 c0 rjmp .+8 ; 0x77c <rtl_tx_pkt_check+0x2c>
+ 774: b6 95 lsr r27
+ 776: a7 95 ror r26
+ 778: 97 95 ror r25
+ 77a: 87 95 ror r24
+ 77c: 2a 95 dec r18
+ 77e: d2 f7 brpl .-12 ; 0x774 <rtl_tx_pkt_check+0x24>
+ 780: 81 70 andi r24, 0x01 ; 1
+ 782: 90 70 andi r25, 0x00 ; 0
+ }
+ if ((rtl_tx_data_ready & ((uint32_t) 1 << slot)) != 0)
+ return 1;
+ return 0;
+}
+ 784: 08 95 ret
+
+00000786 <rtl_rx_pkt_check>:
+
+/**
+ * rtl_check_rx_status()
+ *
+ * This function returns if there is a packet in the link layer
+ * rx buffer. Once a packet has been received, it should be quickly
+ * processed or moved and then rtl_release_rx_packet() should be called.
+ * rtl_release_rx_packet() then resets the value of rtl_check_rx_status()
+ *
+ * Returns: 1 if a new packet was received, 0 otherwise
+ */
+int8_t rtl_rx_pkt_check()
+{
+ 786: 80 91 13 05 lds r24, 0x0513
+ return rtl_rx_data_ready;
+}
+ 78a: 99 27 eor r25, r25
+ 78c: 87 fd sbrc r24, 7
+ 78e: 90 95 com r25
+ 790: 08 95 ret
+
+00000792 <rtl_set_cycle_callback>:
+
+void rtl_set_channel (uint8_t chan)
+{
+ rtl_param.channel = chan;
+ rf_set_channel (chan);
+}
+
+
+uint8_t _rtl_rx_sync ()
+{
+ int8_t n;
+ uint8_t tmp_token;
+ uint16_t timeout,start_lat;
+ uint16_t timer;
+ uint8_t tdma_start_tick;
+ uint8_t battery_save_cnt;
+ uint8_t last_nrk_tick;
+ uint16_t elapsed_time;
+ int16_t tmp_offset;
+ volatile uint16_t sfd_start_time;
+
+ // DISABLE_GLOBAL_INT ();
+ timer=0;
+ battery_save_cnt=0;
+
+while(1)
+{
+rtl_rfRxInfo.pPayload[GLOBAL_SLOT]=0xFF;
+rtl_rfRxInfo.pPayload[GLOBAL_SLOT+1]=0xFF;
+#ifdef LED_DEBUG
+ nrk_led_set(1);
+#endif
+#ifdef GPIO_RX_DEBUG
+ nrk_gpio_set(NRK_DEBUG_1);
+#endif
+
+/*
+ // prints out a measurement of OS Tick
+ nrk_int_disable();
+ last_nrk_tick=_nrk_get_raw_timer();
+ while(1)
+ {
+ last_nrk_tick=_nrk_get_raw_timer();
+ while(last_nrk_tick==_nrk_get_raw_timer());
+ _nrk_stop_high_speed_timer();
+ _nrk_reset_high_speed_timer();
+ _nrk_start_high_speed_timer();
+ last_nrk_tick=_nrk_get_raw_timer();
+ while(last_nrk_tick==_nrk_get_raw_timer());
+ _nrk_stop_high_speed_timer();
+ tick_to_slot_offset=_nrk_get_high_speed_timer();
+ printf( "time = %d\r\n",tick_to_slot_offset );
+}
+*/
+
+ rf_set_rx (&rtl_rfRxInfo, rtl_param.channel); // sets rx buffer
and channel
+ rf_polling_rx_on ();
+ n = 0;
+ _rtl_sync_ok = 0;
+ last_nrk_tick=0; // should be 0 going in
+ //_nrk_prev_timer_val=250;
+ _nrk_set_next_wakeup(250);
+ //timeout=200;
+ while ((n = rf_rx_check_sfd()) == 0) {
+ // every OS tick
+ if(last_nrk_tick!=_nrk_os_timer_get())
+ {
+ //_nrk_stop_high_speed_timer();
+ //_nrk_reset_high_speed_timer();
+ //_nrk_start_high_speed_timer();
+ last_nrk_tick=_nrk_os_timer_get();
+ timer++;
+ if(timer>RTL_TOKEN_TIMEOUT)
+ {
+ timer=0;
+ //printf( "token timeout! %d\r\n",battery_save_cnt );
+ _rtl_time_token=0;
+ battery_save_cnt++;
+ if(battery_save_cnt>RTL_BATTERY_SAVE_TIMEOUT)
+ {
+ battery_save_cnt=0;
+ nrk_battery_save();
+ }
+ break;
+ }
+ }
+
+ }
+
+ // nrk_kprintf( PSTR("got sfd\r\n"));
+ // Wait measured time until next slot
+ // reset OS timer
+
+ _nrk_high_speed_timer_reset();
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.lst Sat Dec 11
12:36:09 2010
@@ -0,0 +1,978 @@
+ 1 .file "main.c"
+ 2 __SREG__ = 0x3f
+ 3 __SP_H__ = 0x3e
+ 4 __SP_L__ = 0x3d
+ 5 __tmp_reg__ = 0
+ 6 __zero_reg__ = 1
+ 7 .global __do_copy_data
+ 8 .global __do_clear_bss
+ 11 .text
+ 12 .Ltext0:
+ 138 .global monome_setup_system
+ 140 monome_setup_system:
+ 141 .stabd 46,0,0
+ 1:main.c **** /*
+ 2:main.c **** * main.c
+ 3:main.c **** *
+ 4:main.c **** *
+ 5:main.c **** * Created by Philip Asare on 12/6/10.
+ 6:main.c **** * Copyright 2010. All rights reserved.
+ 7:main.c **** *
+ 8:main.c **** *
+ 9:main.c **** * monome sketch-it base station
+ 10:main.c **** *
+ 11:main.c **** * communication
+ 12:main.c **** * -------------
+ 13:main.c **** * to controllers --> wireless (RT-Link)
+ 14:main.c **** * to console display --> UART
+ 15:main.c **** *
+ 16:main.c **** */
+ 17:main.c ****
+ 18:main.c ****
+ 19:main.c **** #include <nrk.h>
+ 20:main.c **** #include <include.h>
+ 21:main.c **** #include <ulib.h>
+ 22:main.c **** #include <stdio.h>
+ 23:main.c **** #include <avr/sleep.h>
+ 24:main.c **** #include <hal.h>
+ 25:main.c **** #include <rt_link.h>
+ 26:main.c **** #include <nrk_error.h>
+ 27:main.c ****
+ 28:main.c **** /* controller tx slots --> base station rx slots */
+ 29:main.c **** #define C1_TX 2
+ 30:main.c **** #define C2_TX 4
+ 31:main.c **** #define C3_TX 6
+ 32:main.c **** #define C4_TX 8
+ 33:main.c ****
+ 34:main.c **** /* controller rx slots --> base station rx slots */
+ 35:main.c **** #define ALL_RX 3
+ 36:main.c **** #define C1_RX 5
+ 37:main.c **** #define C2_RX 7
+ 38:main.c **** #define C3_RX 9
+ 39:main.c **** #define C4_RX 11
+ 40:main.c ****
+ 41:main.c **** /* game states and controller tracking */
+ 42:main.c **** #define MAX_NUM_PLAYERS 4
+ 43:main.c ****
+ 44:main.c **** uint8_t state, num_players;
+ 45:main.c **** uint8_t player_tx[MAX_NUM_PLAYERS];
+ 46:main.c **** uint8_t player_rx[MAX_NUM_PLAYERS];
+ 47:main.c ****
+ 48:main.c **** #define SYNC 1
+ 49:main.c **** #define SELECT (1<<1)
+ 50:main.c **** #define PREGAME (1<<2)
+ 51:main.c ****
+ 52:main.c **** /* monome helper functions */
+ 53:main.c ****
+ 54:main.c **** #define type(x) (sizeof(x) + PKT_DATA_START)
+ 55:main.c ****
+ 56:main.c **** typedef struct{
+ 57:main.c **** uint8_t player;
+ 58:main.c **** } monome_comm_sync_pkt;
+ 59:main.c ****
+ 60:main.c **** monome_comm_sync_pkt sync_pkt;
+ 61:main.c ****
+ 62:main.c **** uint8_t tx_len;
+ 63:main.c ****
+ 64:main.c **** /* task setup */
+ 65:main.c ****
+ 66:main.c **** NRK_STK Stack1[NRK_APP_STACKSIZE];
+ 67:main.c **** nrk_task_type TaskOne;
+ 68:main.c **** void Task1(void);
+ 69:main.c ****
+ 70:main.c **** inline void monome_comm_init();
+ 71:main.c **** inline void monome_setup_system();
+ 72:main.c **** inline void monome_add_controller(uint8_t slot);
+ 73:main.c **** void nrk_create_taskset();
+ 74:main.c ****
+ 75:main.c **** uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+ 76:main.c **** uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+ 77:main.c ****
+ 78:main.c **** int
+ 79:main.c **** main ()
+ 80:main.c **** {
+ 81:main.c **** uint16_t div;
+ 82:main.c **** nrk_setup_ports();
+ 83:main.c **** nrk_setup_uart(UART_BAUDRATE_115K2);
+ 84:main.c ****
+ 85:main.c **** printf( "Starting up...\r\n" );
+ 86:main.c ****
+ 87:main.c ****
+ 88:main.c **** nrk_init();
+ 89:main.c ****
+ 90:main.c **** nrk_led_clr(0);
+ 91:main.c **** nrk_led_clr(1);
+ 92:main.c **** nrk_led_clr(2);
+ 93:main.c **** nrk_led_clr(3);
+ 94:main.c ****
+ 95:main.c **** nrk_time_set(0,0);
+ 96:main.c ****
+ 97:main.c ****
+ 98:main.c **** rtl_task_config();
+ 99:main.c ****
+ 100:main.c **** nrk_create_taskset ();
+ 101:main.c ****
+ 102:main.c **** nrk_start();
+ 103:main.c ****
+ 104:main.c **** return 0;
+ 105:main.c **** }
+ 106:main.c ****
+ 107:main.c **** void Task1()
+ 108:main.c **** {
+ 109:main.c **** //uint8_t j, i;
+ 110:main.c **** uint8_t *local_rx_buf;
+ 111:main.c **** uint8_t length,slot;
+ 112:main.c **** int8_t rssi;
+ 113:main.c ****
+ 114:main.c **** monome_comm_init();
+ 115:main.c **** monome_setup_system();
+ 116:main.c **** while(!rtl_ready()) nrk_wait_until_next_period();
+ 117:main.c ****
+ 118:main.c ****
+ 119:main.c ****
+ 120:main.c **** while(1){
+ 121:main.c **** if( rtl_rx_pkt_check()!=0 )
+ 122:main.c **** {
+ 123:main.c **** nrk_led_set(BLUE_LED);
+ 124:main.c **** local_rx_buf=rtl_rx_pkt_get(&length, &rssi,
&slot);
+ 125:main.c **** printf( "Got Packet on slot %d %d:
\r\n",slot,length );
+ 126:main.c **** if(length == type(monome_comm_sync_pkt)){
+ 127:main.c **** rtl_rx_pkt_release();
+ 128:main.c **** if((state == SYNC) && (num_players <
MAX_NUM_PLAYERS)){
+ 129:main.c **** monome_add_controller(slot);
+ 130:main.c **** }
+ 131:main.c **** else{
+ 132:main.c **** printf("maximum number of players
synced\r\n");
+ 133:main.c **** }
+ 134:main.c **** }
+ 135:main.c **** nrk_led_clr(BLUE_LED);
+ 136:main.c **** }
+ 137:main.c ****
+ 138:main.c **** nrk_wait_until_next_period();
+ 139:main.c ****
+ 140:main.c **** }
+ 141:main.c ****
+ 142:main.c ****
+ 143:main.c ****
+ 144:main.c ****
+ 145:main.c **** }
+ 146:main.c ****
+ 147:main.c ****
+ 148:main.c **** void
+ 149:main.c **** nrk_create_taskset()
+ 150:main.c **** {
+ 151:main.c ****
+ 152:main.c ****
+ 153:main.c **** TaskOne.task = Task1;
+ 154:main.c **** TaskOne.Ptos = (void *)
&Stack1[NRK_APP_STACKSIZE-1];
+ 155:main.c **** TaskOne.Pbos = (void *) &Stack1[0];
+ 156:main.c **** TaskOne.prio = 2;
+ 157:main.c **** TaskOne.FirstActivation = TRUE;
+ 158:main.c **** TaskOne.Type = BASIC_TASK;
+ 159:main.c **** TaskOne.SchType = PREEMPTIVE;
+ 160:main.c **** TaskOne.period.secs = 1;
+ 161:main.c **** TaskOne.period.nano_secs = 0;
+ 162:main.c **** TaskOne.cpu_reserve.secs = 0;
+ 163:main.c **** TaskOne.cpu_reserve.nano_secs = 100*NANOS_PER_MS;
+ 164:main.c **** TaskOne.offset.secs = 0;
+ 165:main.c **** TaskOne.offset.nano_secs= 0;
+ 166:main.c **** nrk_activate_task (&TaskOne);
+ 167:main.c ****
+ 168:main.c ****
+ 169:main.c **** printf ("Create done\r\n");
+ 170:main.c **** }
+ 171:main.c ****
+ 172:main.c **** inline void monome_comm_init(){
+ 173:main.c **** rtl_init (RTL_COORDINATOR);
+ 174:main.c ****
+ 175:main.c **** /* rx schedules */
+ 176:main.c **** rtl_set_schedule( RTL_RX, C1_TX, 1 );
+ 177:main.c **** rtl_set_schedule( RTL_RX, C2_TX, 1 );
+ 178:main.c **** rtl_set_schedule( RTL_RX, C3_TX, 1 );
+ 179:main.c **** rtl_set_schedule( RTL_RX, C4_TX, 1 );
+ 180:main.c ****
+ 181:main.c **** /* tx schedules */
+ 182:main.c **** rtl_set_schedule( RTL_TX, ALL_RX, 1 );
+ 183:main.c **** rtl_set_schedule( RTL_TX, C1_RX, 1 );
+ 184:main.c **** rtl_set_schedule( RTL_TX, C2_RX, 1 );
+ 185:main.c **** rtl_set_schedule( RTL_TX, C3_RX, 1 );
+ 186:main.c **** rtl_set_schedule( RTL_TX, C4_RX, 1 );
+ 187:main.c ****
+ 188:main.c **** rtl_start();
+ 189:main.c **** rtl_rx_pkt_set_buffer(rx_buf,
RF_MAX_PAYLOAD_SIZE);
+ 190:main.c **** }
+ 191:main.c ****
+ 192:main.c **** inline void monome_setup_system(){
+ 143 .LM0:
+ 144 .LFBB1:
+ 145 /* prologue: frame size=0 */
+ 146 /* prologue end (size=0) */
+ 193:main.c **** int i;
+ 194:main.c **** state = SYNC;
+ 148 .LM1:
+ 149 0000 81E0 ldi r24,lo8(1)
+ 150 0002 8093 0000 sts state,r24
+ 195:main.c **** num_players = 0;
+ 152 .LM2:
+ 153 0006 1092 0000 sts num_players,__zero_reg__
+ 154 000a 20E0 ldi r18,lo8(0)
+ 155 000c 30E0 ldi r19,hi8(0)
+ 156 .L2:
+ 196:main.c **** for(i = 0; i < MAX_NUM_PLAYERS; i++){
+ 197:main.c **** player_rx[i] = -1;
+ 158 .LM3:
+ 159 000e F901 movw r30,r18
+ 160 0010 E050 subi r30,lo8(-(player_rx))
+ 161 0012 F040 sbci r31,hi8(-(player_rx))
+ 162 0014 8FEF ldi r24,lo8(-1)
+ 163 0016 8083 st Z,r24
+ 198:main.c **** player_tx[i] = -1;
+ 165 .LM4:
+ 166 0018 F901 movw r30,r18
+ 167 001a E050 subi r30,lo8(-(player_tx))
+ 168 001c F040 sbci r31,hi8(-(player_tx))
+ 169 001e 8083 st Z,r24
+ 171 .LM5:
+ 172 0020 2F5F subi r18,lo8(-(1))
+ 173 0022 3F4F sbci r19,hi8(-(1))
+ 174 0024 2430 cpi r18,4
+ 175 0026 3105 cpc r19,__zero_reg__
+ 176 0028 01F4 brne .L2
+ 177 /* epilogue: frame size=0 */
+ 178 002a 0895 ret
+ 179 /* epilogue end (size=1) */
+ 180 /* function monome_setup_system size 22 (21) */
+ 185 .Lscope1:
+ 187 .stabd 78,0,0
+ 188 .data
+ 189 .LC0:
+ 190 0000 706C 6179 .string "player number sent: %d\r\n"
+ 190 6572 206E
+ 190 756D 6265
+ 190 7220 7365
+ 190 6E74 3A20
+ 191 .LC1:
+ 192 0019 6164 6465 .string "added new player: player %d\r\n"
+ 192 6420 6E65
+ 192 7720 706C
+ 192 6179 6572
+ 192 3A20 706C
+ 193 .text
+ 196 .global monome_add_controller
+ 198 monome_add_controller:
+ 199 .stabd 46,0,0
+ 199:main.c **** }
+ 200:main.c ****
+ 201:main.c **** }
+ 202:main.c ****
+ 203:main.c **** inline void monome_add_controller(uint8_t slot){
+ 201 .LM6:
+ 202 .LFBB2:
+ 203 /* prologue: frame size=0 */
+ 204 /* prologue end (size=0) */
+ 205 002c 982F mov r25,r24
+ 204:main.c **** int i, already_player;
+ 205:main.c **** already_player = 0;
+ 206:main.c **** for(i = 0; i<num_players; i++){
+ 207 .LM7:
+ 208 002e 8091 0000 lds r24,num_players
+ 209 0032 A82F mov r26,r24
+ 210 0034 BB27 clr r27
+ 211 0036 E0E0 ldi r30,lo8(player_tx)
+ 212 0038 F0E0 ldi r31,hi8(player_tx)
+ 213 003a 40E0 ldi r20,lo8(0)
+ 214 003c 50E0 ldi r21,hi8(0)
+ 215 003e 9D01 movw r18,r26
+ 216 0040 2E0F add r18,r30
+ 217 0042 3F1F adc r19,r31
+ 218 0044 00C0 rjmp .L8
+ 219 .L9:
+ 207:main.c **** if(slot == player_tx[i]){
+ 221 .LM8:
+ 222 0046 8081 ld r24,Z
+ 223 0048 9817 cp r25,r24
+ 224 004a 01F4 brne .L10
+ 225 004c 41E0 ldi r20,lo8(1)
+ 226 004e 50E0 ldi r21,hi8(1)
+ 227 .L10:
+ 228 0050 3196 adiw r30,1
+ 229 .L8:
+ 231 .LM9:
+ 232 0052 E217 cp r30,r18
+ 233 0054 F307 cpc r31,r19
+ 234 0056 01F4 brne .L9
+ 208:main.c **** already_player = 1;
+ 209:main.c **** }
+ 210:main.c **** }
+ 211:main.c **** if(already_player == 0){
+ 236 .LM10:
+ 237 0058 452B or r20,r21
+ 238 005a 01F0 breq .+2
+ 239 005c 00C0 rjmp .L22
+ 212:main.c **** /* consider code to add player back if player is
lost */
+ 213:main.c **** switch(slot){
+ 241 .LM11:
+ 242 005e 9430 cpi r25,lo8(4)
+ 243 0060 01F0 breq .L17
+ 244 0062 9530 cpi r25,lo8(5)
+ 245 0064 00F4 brsh .L20
+ 246 0066 9230 cpi r25,lo8(2)
+ 247 0068 01F4 brne .L23
+ 248 006a 00C0 rjmp .L16
+ 249 .L20:
+ 250 006c 9630 cpi r25,lo8(6)
+ 251 006e 01F0 breq .L18
+ 252 0070 9830 cpi r25,lo8(8)
+ 253 0072 01F4 brne .L23
+ 254 0074 00C0 rjmp .L19
+ 255 .L16:
+ 214:main.c **** case C1_TX: player_tx[num_players] = C1_TX;
+ 257 .LM12:
+ 258 0076 FD01 movw r30,r26
+ 259 0078 E050 subi r30,lo8(-(player_tx))
+ 260 007a F040 sbci r31,hi8(-(player_tx))
+ 261 007c 9083 st Z,r25
+ 215:main.c **** player_rx[num_players] = C1_RX;
+ 263 .LM13:
+ 264 007e A050 subi r26,lo8(-(player_rx))
+ 265 0080 B040 sbci r27,hi8(-(player_rx))
+ 266 0082 85E0 ldi r24,lo8(5)
+ 267 0084 00C0 rjmp .L26
+ 268 .L17:
+ 216:main.c **** break;
+ 217:main.c **** case C2_TX: player_tx[num_players] = C2_TX;
+ 270 .LM14:
+ 271 0086 FD01 movw r30,r26
+ 272 0088 E050 subi r30,lo8(-(player_tx))
+ 273 008a F040 sbci r31,hi8(-(player_tx))
+ 274 008c 9083 st Z,r25
+ 218:main.c **** player_rx[num_players] = C2_RX;
+ 276 .LM15:
+ 277 008e A050 subi r26,lo8(-(player_rx))
+ 278 0090 B040 sbci r27,hi8(-(player_rx))
+ 279 0092 87E0 ldi r24,lo8(7)
+ 280 0094 00C0 rjmp .L26
+ 281 .L18:
+ 219:main.c **** break;
+ 220:main.c **** case C3_TX: player_tx[num_players] = C3_TX;
+ 283 .LM16:
+ 284 0096 FD01 movw r30,r26
+ 285 0098 E050 subi r30,lo8(-(player_tx))
+ 286 009a F040 sbci r31,hi8(-(player_tx))
+ 287 009c 9083 st Z,r25
+ 221:main.c **** player_rx[num_players] = C3_RX;
+ 289 .LM17:
+ 290 009e A050 subi r26,lo8(-(player_rx))
+ 291 00a0 B040 sbci r27,hi8(-(player_rx))
+ 292 00a2 89E0 ldi r24,lo8(9)
+ 293 00a4 00C0 rjmp .L26
+ 294 .L19:
+ 222:main.c **** break;
+ 223:main.c **** case C4_TX: player_tx[num_players] = C4_TX;
+ 296 .LM18:
+ 297 00a6 FD01 movw r30,r26
+ 298 00a8 E050 subi r30,lo8(-(player_tx))
+ 299 00aa F040 sbci r31,hi8(-(player_tx))
+ 300 00ac 9083 st Z,r25
+ 224:main.c **** player_rx[num_players] = C4_RX;
+ 302 .LM19:
+ 303 00ae A050 subi r26,lo8(-(player_rx))
+ 304 00b0 B040 sbci r27,hi8(-(player_rx))
+ 305 00b2 8BE0 ldi r24,lo8(11)
+ 306 .L26:
+ 307 00b4 8C93 st X,r24
+ 308 .L23:
+ 225:main.c **** break;
+ 226:main.c **** default: break;
+ 227:main.c **** }
+ 228:main.c **** while(
rtl_tx_pkt_check(player_rx[num_players])!=0 );
+ 310 .LM20:
+ 311 00b6 E091 0000 lds r30,num_players
+ 312 00ba FF27 clr r31
+ 313 00bc E050 subi r30,lo8(-(player_rx))
+ 314 00be F040 sbci r31,hi8(-(player_rx))
+ 315 00c0 8081 ld r24,Z
+ 316 00c2 0E94 0000 call rtl_tx_pkt_check
+ 317 00c6 8823 tst r24
+ 318 00c8 01F4 brne .L23
+ 229:main.c **** sync_pkt.player = num_players;
+ 320 .LM21:
+ 321 00ca 8091 0000 lds r24,num_players
+ 322 00ce 8093 0000 sts sync_pkt,r24
+ 230:main.c **** printf("player number sent: %d\r\n",
sync_pkt.player);
+ 324 .LM22:
+ 325 00d2 9927 clr r25
+ 326 00d4 9F93 push r25
+ 327 00d6 8F93 push r24
+ 328 00d8 80E0 ldi r24,lo8(.LC0)
+ 329 00da 90E0 ldi r25,hi8(.LC0)
+ 330 00dc 9F93 push r25
+ 331 00de 8F93 push r24
+ 332 00e0 0E94 0000 call printf
+ 231:main.c **** memcpy(&tx_buf[PKT_DATA_START], &sync_pkt,
sizeof(monome_comm_sync_pkt));
+ 334 .LM23:
+ 335 00e4 8091 0000 lds r24,sync_pkt
+ 336 00e8 8093 0000 sts tx_buf+3,r24
+ 232:main.c **** tx_len = type(monome_comm_sync_pkt);
+ 338 .LM24:
+ 339 00ec 84E0 ldi r24,lo8(4)
+ 340 00ee 8093 0000 sts tx_len,r24
+ 233:main.c **** rtl_tx_pkt( tx_buf, tx_len,
player_rx[num_players]);
+ 342 .LM25:
+ 343 00f2 E091 0000 lds r30,num_players
+ 344 00f6 FF27 clr r31
+ 345 00f8 E050 subi r30,lo8(-(player_rx))
+ 346 00fa F040 sbci r31,hi8(-(player_rx))
+ 347 00fc 4081 ld r20,Z
+ 348 00fe 64E0 ldi r22,lo8(4)
+ 349 0100 80E0 ldi r24,lo8(tx_buf)
+ 350 0102 90E0 ldi r25,hi8(tx_buf)
+ 351 0104 0E94 0000 call rtl_tx_pkt
+ 234:main.c **** rtl_wait_until_tx_done(player_rx[num_players]);
+ 353 .LM26:
+ 354 0108 E091 0000 lds r30,num_players
+ 355 010c FF27 clr r31
+ 356 010e E050 subi r30,lo8(-(player_rx))
+ 357 0110 F040 sbci r31,hi8(-(player_rx))
+ 358 0112 8081 ld r24,Z
+ 359 0114 0E94 0000 call rtl_wait_until_tx_done
+ 235:main.c **** num_players++;
+ 361 .LM27:
+ 362 0118 8091 0000 lds r24,num_players
+ 363 011c 8F5F subi r24,lo8(-(1))
+ 364 011e 8093 0000 sts num_players,r24
+ 236:main.c **** printf("added new player: player %d\r\n",
num_players);
+ 366 .LM28:
+ 367 0122 9927 clr r25
+ 368 0124 9F93 push r25
+ 369 0126 8F93 push r24
+ 370 0128 80E0 ldi r24,lo8(.LC1)
+ 371 012a 90E0 ldi r25,hi8(.LC1)
+ 372 012c 9F93 push r25
+ 373 012e 8F93 push r24
+ 374 0130 0E94 0000 call printf
+ 375 0134 8DB7 in r24,__SP_L__
+ 376 0136 9EB7 in r25,__SP_H__
+ 377 0138 0896 adiw r24,8
+ 378 013a 0FB6 in __tmp_reg__,__SREG__
+ 379 013c F894 cli
+ 380 013e 9EBF out __SP_H__,r25
+ 381 0140 0FBE out __SREG__,__tmp_reg__
+ 382 0142 8DBF out __SP_L__,r24
+ 383 .L22:
+ 384 0144 0895 ret
+ 385 /* epilogue: frame size=0 */
+ 386 /* epilogue: noreturn */
+ 387 /* epilogue end (size=0) */
+ 388 /* function monome_add_controller size 141 (141) */
+ 393 .Lscope2:
+ 395 .stabd 78,0,0
+ 397 .global monome_comm_init
+ 399 monome_comm_init:
+ 400 .stabd 46,0,0
+ 402 .LM29:
+ 403 .LFBB3:
+ 404 /* prologue: frame size=0 */
+ 405 /* prologue end (size=0) */
+ 407 .LM30:
+ 408 0146 82E0 ldi r24,lo8(2)
+ 409 0148 0E94 0000 call rtl_init
+ 411 .LM31:
+ 412 014c 41E0 ldi r20,lo8(1)
+ 413 014e 62E0 ldi r22,lo8(2)
+ 414 0150 80E0 ldi r24,lo8(0)
+ 415 0152 0E94 0000 call rtl_set_schedule
+ 417 .LM32:
+ 418 0156 41E0 ldi r20,lo8(1)
+ 419 0158 64E0 ldi r22,lo8(4)
+ 420 015a 80E0 ldi r24,lo8(0)
+ 421 015c 0E94 0000 call rtl_set_schedule
+ 423 .LM33:
+ 424 0160 41E0 ldi r20,lo8(1)
+ 425 0162 66E0 ldi r22,lo8(6)
+ 426 0164 80E0 ldi r24,lo8(0)
+ 427 0166 0E94 0000 call rtl_set_schedule
+ 429 .LM34:
+ 430 016a 41E0 ldi r20,lo8(1)
+ 431 016c 68E0 ldi r22,lo8(8)
+ 432 016e 80E0 ldi r24,lo8(0)
+ 433 0170 0E94 0000 call rtl_set_schedule
+ 435 .LM35:
+ 436 0174 41E0 ldi r20,lo8(1)
+ 437 0176 63E0 ldi r22,lo8(3)
+ 438 0178 81E0 ldi r24,lo8(1)
+ 439 017a 0E94 0000 call rtl_set_schedule
+ 441 .LM36:
+ 442 017e 41E0 ldi r20,lo8(1)
+ 443 0180 65E0 ldi r22,lo8(5)
+ 444 0182 81E0 ldi r24,lo8(1)
+ 445 0184 0E94 0000 call rtl_set_schedule
+ 447 .LM37:
+ 448 0188 41E0 ldi r20,lo8(1)
+ 449 018a 67E0 ldi r22,lo8(7)
+ 450 018c 81E0 ldi r24,lo8(1)
+ 451 018e 0E94 0000 call rtl_set_schedule
+ 453 .LM38:
+ 454 0192 41E0 ldi r20,lo8(1)
+ 455 0194 69E0 ldi r22,lo8(9)
+ 456 0196 81E0 ldi r24,lo8(1)
+ 457 0198 0E94 0000 call rtl_set_schedule
+ 459 .LM39:
+ 460 019c 41E0 ldi r20,lo8(1)
+ 461 019e 6BE0 ldi r22,lo8(11)
+ 462 01a0 81E0 ldi r24,lo8(1)
+ 463 01a2 0E94 0000 call rtl_set_schedule
+ 465 .LM40:
+ 466 01a6 0E94 0000 call rtl_start
+ 468 .LM41:
+ 469 01aa 64E7 ldi r22,lo8(116)
+ 470 01ac 80E0 ldi r24,lo8(rx_buf)
+ 471 01ae 90E0 ldi r25,hi8(rx_buf)
+ 472 01b0 0E94 0000 call rtl_rx_pkt_set_buffer
+ 473 /* epilogue: frame size=0 */
+ 474 01b4 0895 ret
+ 475 /* epilogue end (size=1) */
+ 476 /* function monome_comm_init size 56 (55) */
+ 478 .Lscope3:
+ 480 .stabd 78,0,0
+ 481 .data
+ 482 .LC2:
+ 483 0037 4372 6561 .string "Create done\r"
+ 483 7465 2064
+ 483 6F6E 650D
+ 483 00
+ 484 .text
+ 486 .global nrk_create_taskset
+ 488 nrk_create_taskset:
+ 489 .stabd 46,0,0
+ 491 .LM42:
+ 492 .LFBB4:
+ 493 /* prologue: frame size=0 */
+ 494 /* prologue end (size=0) */
+ 496 .LM43:
+ 497 01b6 80E0 ldi r24,lo8(pm(Task1))
+ 498 01b8 90E0 ldi r25,hi8(pm(Task1))
+ 499 01ba 9093 0000 sts (TaskOne+5)+1,r25
+ 500 01be 8093 0000 sts TaskOne+5,r24
+ 502 .LM44:
+ 503 01c2 80E0 ldi r24,lo8(Stack1+127)
+ 504 01c4 90E0 ldi r25,hi8(Stack1+127)
+ 505 01c6 9093 0000 sts (TaskOne+1)+1,r25
+ 506 01ca 8093 0000 sts TaskOne+1,r24
+ 508 .LM45:
+ 509 01ce 80E0 ldi r24,lo8(Stack1)
+ 510 01d0 90E0 ldi r25,hi8(Stack1)
+ 511 01d2 9093 0000 sts (TaskOne+3)+1,r25
+ 512 01d6 8093 0000 sts TaskOne+3,r24
+ 514 .LM46:
+ 515 01da 82E0 ldi r24,lo8(2)
+ 516 01dc 8093 0000 sts TaskOne+8,r24
+ 518 .LM47:
+ 519 01e0 81E0 ldi r24,lo8(1)
+ 520 01e2 8093 0000 sts TaskOne+7,r24
+ 522 .LM48:
+ 523 01e6 8093 0000 sts TaskOne+9,r24
+ 525 .LM49:
+ 526 01ea 8093 0000 sts TaskOne+10,r24
+ 528 .LM50:
+ 529 01ee 81E0 ldi r24,lo8(1)
+ 530 01f0 90E0 ldi r25,hi8(1)
+ 531 01f2 A0E0 ldi r26,hlo8(1)
+ 532 01f4 B0E0 ldi r27,hhi8(1)
+ 533 01f6 8093 0000 sts TaskOne+11,r24
+ 534 01fa 9093 0000 sts (TaskOne+11)+1,r25
+ 535 01fe A093 0000 sts (TaskOne+11)+2,r26
+ 536 0202 B093 0000 sts (TaskOne+11)+3,r27
+ 538 .LM51:
+ 539 0206 1092 0000 sts TaskOne+15,__zero_reg__
+ 540 020a 1092 0000 sts (TaskOne+15)+1,__zero_reg__
+ 541 020e 1092 0000 sts (TaskOne+15)+2,__zero_reg__
+ 542 0212 1092 0000 sts (TaskOne+15)+3,__zero_reg__
+ 544 .LM52:
+ 545 0216 1092 0000 sts TaskOne+19,__zero_reg__
+ 546 021a 1092 0000 sts (TaskOne+19)+1,__zero_reg__
+ 547 021e 1092 0000 sts (TaskOne+19)+2,__zero_reg__
+ 548 0222 1092 0000 sts (TaskOne+19)+3,__zero_reg__
+ 550 .LM53:
+ 551 0226 80E0 ldi r24,lo8(100000000)
+ 552 0228 91EE ldi r25,hi8(100000000)
+ 553 022a A5EF ldi r26,hlo8(100000000)
+ 554 022c B5E0 ldi r27,hhi8(100000000)
+ 555 022e 8093 0000 sts TaskOne+23,r24
+ 556 0232 9093 0000 sts (TaskOne+23)+1,r25
+ 557 0236 A093 0000 sts (TaskOne+23)+2,r26
+ 558 023a B093 0000 sts (TaskOne+23)+3,r27
+ 560 .LM54:
+ 561 023e 1092 0000 sts TaskOne+27,__zero_reg__
+ 562 0242 1092 0000 sts (TaskOne+27)+1,__zero_reg__
+ 563 0246 1092 0000 sts (TaskOne+27)+2,__zero_reg__
+ 564 024a 1092 0000 sts (TaskOne+27)+3,__zero_reg__
+ 566 .LM55:
+ 567 024e 1092 0000 sts TaskOne+31,__zero_reg__
+ 568 0252 1092 0000 sts (TaskOne+31)+1,__zero_reg__
+ 569 0256 1092 0000 sts (TaskOne+31)+2,__zero_reg__
+ 570 025a 1092 0000 sts (TaskOne+31)+3,__zero_reg__
+ 572 .LM56:
+ 573 025e 80E0 ldi r24,lo8(TaskOne)
+ 574 0260 90E0 ldi r25,hi8(TaskOne)
+ 575 0262 0E94 0000 call nrk_activate_task
+ 577 .LM57:
+ 578 0266 80E0 ldi r24,lo8(.LC2)
+ 579 0268 90E0 ldi r25,hi8(.LC2)
+ 580 026a 0E94 0000 call puts
+ 581 /* epilogue: frame size=0 */
+ 582 026e 0895 ret
+ 583 /* epilogue end (size=1) */
+ 584 /* function nrk_create_taskset size 93 (92) */
+ 586 .Lscope4:
+ 588 .stabd 78,0,0
+ 589 .data
+ 590 .LC3:
+ 591 0044 476F 7420 .string "Got Packet on slot %d %d: \r\n"
+ 591 5061 636B
+ 591 6574 206F
+ 591 6E20 736C
+ 591 6F74 2025
+ 592 .LC4:
+ 593 0061 6D61 7869 .string "maximum number of players synced\r"
+ 593 6D75 6D20
+ 593 6E75 6D62
+ 593 6572 206F
+ 593 6620 706C
+ 594 .text
+ 596 .global Task1
+ 598 Task1:
+ 599 .stabd 46,0,0
+ 601 .LM58:
+ 602 .LFBB5:
+ 603 /* prologue: frame size=3 */
+ 604 0270 8F92 push r8
+ 605 0272 9F92 push r9
+ 606 0274 AF92 push r10
+ 607 0276 BF92 push r11
+ 608 0278 CF92 push r12
+ 609 027a DF92 push r13
+ 610 027c EF92 push r14
+ 611 027e FF92 push r15
+ 612 0280 0F93 push r16
+ 613 0282 1F93 push r17
+ 614 0284 CF93 push r28
+ 615 0286 DF93 push r29
+ 616 0288 CDB7 in r28,__SP_L__
+ 617 028a DEB7 in r29,__SP_H__
+ 618 028c 2397 sbiw r28,3
+ 619 028e 0FB6 in __tmp_reg__,__SREG__
+ 620 0290 F894 cli
+ 621 0292 DEBF out __SP_H__,r29
+ 622 0294 0FBE out __SREG__,__tmp_reg__
+ 623 0296 CDBF out __SP_L__,r28
+ 624 /* prologue end (size=20) */
+ 626 .LM59:
+ 627 0298 0E94 0000 call monome_comm_init
+ 629 .LM60:
+ 630 029c 0E94 0000 call monome_setup_system
+ 631 02a0 00C0 rjmp .L32
+ 632 .L33:
+ 634 .LM61:
+ 635 02a2 0E94 0000 call nrk_wait_until_next_period
+ 636 .L32:
+ 637 02a6 0E94 0000 call rtl_ready
+ 638 02aa 8823 tst r24
+ 639 02ac 01F0 breq .L33
+ 641 .LM62:
+ 642 02ae 22E0 ldi r18,lo8(2)
+ 643 02b0 822E mov r8,r18
+ 644 02b2 912C mov r9,__zero_reg__
+ 645 02b4 8C0E add r8,r28
+ 646 02b6 9D1E adc r9,r29
+ 647 02b8 93E0 ldi r25,lo8(3)
+ 648 02ba A92E mov r10,r25
+ 649 02bc B12C mov r11,__zero_reg__
+ 650 02be AC0E add r10,r28
+ 651 02c0 BD1E adc r11,r29
+ 652 02c2 6E01 movw r12,r28
+ 653 02c4 0894 sec
+ 654 02c6 C11C adc r12,__zero_reg__
+ 655 02c8 D11C adc r13,__zero_reg__
+ 657 .LM63:
+ 658 02ca 80E0 ldi r24,lo8(.LC3)
+ 659 02cc E82E mov r14,r24
+ 660 02ce 80E0 ldi r24,hi8(.LC3)
+ 661 02d0 F82E mov r15,r24
+ 662 02d2 00E0 ldi r16,lo8(.LC4)
+ 663 02d4 10E0 ldi r17,hi8(.LC4)
+ 664 .L43:
+ 666 .LM64:
+ 667 02d6 0E94 0000 call rtl_rx_pkt_check
+ 668 02da 8823 tst r24
+ 669 02dc 01F0 breq .L35
+ 671 .LM65:
+ 672 02de 81E0 ldi r24,lo8(1)
+ 673 02e0 90E0 ldi r25,hi8(1)
+ 674 02e2 0E94 0000 call nrk_led_set
+ 676 .LM66:
+ 677 02e6 A401 movw r20,r8
+ 678 02e8 B501 movw r22,r10
+ 679 02ea C601 movw r24,r12
+ 680 02ec 0E94 0000 call rtl_rx_pkt_get
+ 682 .LM67:
+ 683 02f0 8981 ldd r24,Y+1
+ 684 02f2 9927 clr r25
+ 685 02f4 9F93 push r25
+ 686 02f6 8F93 push r24
+ 687 02f8 8A81 ldd r24,Y+2
+ 688 02fa 9927 clr r25
+ 689 02fc 9F93 push r25
+ 690 02fe 8F93 push r24
+ 691 0300 FF92 push r15
+ 692 0302 EF92 push r14
+ 693 0304 0E94 0000 call printf
+ 695 .LM68:
+ 696 0308 8DB7 in r24,__SP_L__
+ 697 030a 9EB7 in r25,__SP_H__
+ 698 030c 0696 adiw r24,6
+ 699 030e 0FB6 in __tmp_reg__,__SREG__
+ 700 0310 F894 cli
+ 701 0312 9EBF out __SP_H__,r25
+ 702 0314 0FBE out __SREG__,__tmp_reg__
+ 703 0316 8DBF out __SP_L__,r24
+ 704 0318 8981 ldd r24,Y+1
+ 705 031a 8430 cpi r24,lo8(4)
+ 706 031c 01F4 brne .L37
+ 708 .LM69:
+ 709 031e 0E94 0000 call rtl_rx_pkt_release
+ 711 .LM70:
+ 712 0322 8091 0000 lds r24,state
+ 713 0326 8130 cpi r24,lo8(1)
+ 714 0328 01F4 brne .L39
+ 715 032a 8091 0000 lds r24,num_players
+ 716 032e 8430 cpi r24,lo8(4)
+ 717 0330 00F4 brsh .L39
+ 719 .LM71:
+ 720 0332 8A81 ldd r24,Y+2
+ 721 0334 0E94 0000 call monome_add_controller
+ 722 0338 00C0 rjmp .L37
+ 723 .L39:
+ 725 .LM72:
+ 726 033a C801 movw r24,r16
+ 727 033c 0E94 0000 call puts
+ 728 .L37:
+ 730 .LM73:
+ 731 0340 81E0 ldi r24,lo8(1)
+ 732 0342 90E0 ldi r25,hi8(1)
+ 733 0344 0E94 0000 call nrk_led_clr
+ 734 .L35:
+ 736 .LM74:
+ 737 0348 0E94 0000 call nrk_wait_until_next_period
+ 738 034c 00C0 rjmp .L43
+ 739 /* epilogue: frame size=3 */
+ 740 /* epilogue: noreturn */
+ 741 /* epilogue end (size=0) */
+ 742 /* function Task1 size 111 (91) */
+ 749 .Lscope5:
+ 751 .stabd 78,0,0
+ 752 .data
+ 753 .LC5:
+ 754 0083 5374 6172 .string "Starting up...\r"
+ 754 7469 6E67
+ 754 2075 702E
+ 754 2E2E 0D00
+ 755 .text
+ 757 .global main
+ 759 main:
+ 760 .stabd 46,0,0
+ 762 .LM75:
+ 763 .LFBB6:
+ 764 /* prologue: frame size=0 */
+ 765 034e C0E0 ldi r28,lo8(__stack - 0)
+ 766 0350 D0E0 ldi r29,hi8(__stack - 0)
+ 767 0352 DEBF out __SP_H__,r29
+ 768 0354 CDBF out __SP_L__,r28
+ 769 /* prologue end (size=4) */
+ 771 .LM76:
+ 772 0356 0E94 0000 call nrk_setup_ports
+ 774 .LM77:
+ 775 035a 87E0 ldi r24,lo8(7)
+ 776 035c 90E0 ldi r25,hi8(7)
+ 777 035e 0E94 0000 call nrk_setup_uart
+ 779 .LM78:
+ 780 0362 80E0 ldi r24,lo8(.LC5)
+ 781 0364 90E0 ldi r25,hi8(.LC5)
+ 782 0366 0E94 0000 call puts
+ 784 .LM79:
+ 785 036a 0E94 0000 call nrk_init
+ 787 .LM80:
+ 788 036e 80E0 ldi r24,lo8(0)
+ 789 0370 90E0 ldi r25,hi8(0)
+ 790 0372 0E94 0000 call nrk_led_clr
+ 792 .LM81:
+ 793 0376 81E0 ldi r24,lo8(1)
+ 794 0378 90E0 ldi r25,hi8(1)
+ 795 037a 0E94 0000 call nrk_led_clr
+ 797 .LM82:
+ 798 037e 82E0 ldi r24,lo8(2)
+ 799 0380 90E0 ldi r25,hi8(2)
+ 800 0382 0E94 0000 call nrk_led_clr
+ 802 .LM83:
+ 803 0386 83E0 ldi r24,lo8(3)
+ 804 0388 90E0 ldi r25,hi8(3)
+ 805 038a 0E94 0000 call nrk_led_clr
+ 807 .LM84:
+ 808 038e 20E0 ldi r18,lo8(0)
+ 809 0390 30E0 ldi r19,hi8(0)
+ 810 0392 40E0 ldi r20,hlo8(0)
+ 811 0394 50E0 ldi r21,hhi8(0)
+ 812 0396 60E0 ldi r22,lo8(0)
+ 813 0398 70E0 ldi r23,hi8(0)
+ 814 039a 80E0 ldi r24,hlo8(0)
+ 815 039c 90E0 ldi r25,hhi8(0)
+ 816 039e 0E94 0000 call nrk_time_set
+ 818 .LM85:
+ 819 03a2 0E94 0000 call rtl_task_config
+ 821 .LM86:
+ 822 03a6 0E94 0000 call nrk_create_taskset
+ 824 .LM87:
+ 825 03aa 0E94 0000 call nrk_start
+ 827 .LM88:
+ 828 03ae 80E0 ldi r24,lo8(0)
+ 829 03b0 90E0 ldi r25,hi8(0)
+ 830 /* epilogue: frame size=0 */
+ 831 03b2 0C94 0000 jmp exit
+ 832 /* epilogue end (size=2) */
+ 833 /* function main size 52 (46) */
+ 835 .Lscope6:
+ 837 .stabd 78,0,0
+ 838 .comm _nrk_signal_list,4,1
+ 839 .comm nrk_idle_task_stk,128,1
+ 840 .comm nrk_kernel_stk_ptr,2,1
+ 841 .comm rtl_task,35,1
+ 842 .comm rtl_task_stack,128,1
+ 843 .comm rtl_node_mode,1,1
+ 844 .comm last_slot,2,1
+ 845 .comm last_slot_time,8,1
+ 846 .comm _rtl_sync_ok,1,1
+ 847 .comm _rtl_ready,1,1
+ 848 .comm _rtl_time_token,1,1
+ 849 .comm _rtl_time_token_status,1,1
+ 850 .comm rtl_tsync_tx,7,1
+ 851 .comm rtl_tsync_buf,3,1
+ 852 .comm _rtl_contention_pending,1,1
+ 853 .comm _rtl_contention_slots,1,1
+ 854 .comm rtl_rfRxInfo,9,1
+ 855 .comm rtl_rx_data_ready,1,1
+ 856 .comm rtl_rx_slot,1,1
+ 857 .comm rtl_rx_buf,116,1
+ 858 .comm rtl_rfTxInfo,7,1
+ 859 .comm rtl_tx_info,99,1
+ 860 .comm rtl_abs_tx_slot,2,1
+ 861 .comm rtl_abs_tx_ready,1,1
+ 862 .comm rtl_tx_data_ready,4,1
+ 863 .comm rtl_param,9,1
+ 864 .comm rtl_tdma_rx_mask,4,1
+ 865 .comm rtl_tdma_tx_mask,4,1
+ 866 .comm rx_callback,2,1
+ 867 .comm tx_callback,2,1
+ 868 .comm abs_callback,2,1
+ 869 .comm slot_callback,2,1
+ 870 .comm cycle_callback,2,1
+ 871 .comm error_task,1,1
+ 872 .comm error_num,1,1
+ 873 .comm state,1,1
+ 874 .comm num_players,1,1
+ 875 .comm player_tx,4,1
+ 876 .comm player_rx,4,1
+ 877 .comm sync_pkt,1,1
+ 878 .comm tx_len,1,1
+ 879 .comm Stack1,128,1
+ 880 .comm TaskOne,35,1
+ 881 .comm tx_buf,116,1
+ 882 .comm rx_buf,116,1
+ 929 .Letext0:
+ 930 /* File "main.c": code 475 = 0x01db ( 446),
prologues 24, epilogues 5 */
+DEFINED SYMBOLS
+ *ABS*:00000000 main.c
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:2
*ABS*:0000003f __SREG__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:3
*ABS*:0000003e __SP_H__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:4
*ABS*:0000003d __SP_L__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:5
*ABS*:00000000 __tmp_reg__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:6
*ABS*:00000001 __zero_reg__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:140 .text:00000000
monome_setup_system
+ *COM*:00000001 state
+ *COM*:00000001 num_players
+ *COM*:00000004 player_rx
+ *COM*:00000004 player_tx
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:198 .text:0000002c
monome_add_controller
+ *COM*:00000001 sync_pkt
+ *COM*:00000074 tx_buf
+ *COM*:00000001 tx_len
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:399 .text:00000146
monome_comm_init
+ *COM*:00000074 rx_buf
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:488 .text:000001b6
nrk_create_taskset
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:598 .text:00000270
Task1
+ *COM*:00000023 TaskOne
+ *COM*:00000080 Stack1
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc25QEHu.s:759 .text:0000034e
main
+ *COM*:00000004 _nrk_signal_list
+ *COM*:00000080 nrk_idle_task_stk
+ *COM*:00000002 nrk_kernel_stk_ptr
+ *COM*:00000023 rtl_task
+ *COM*:00000080 rtl_task_stack
+ *COM*:00000001 rtl_node_mode
+ *COM*:00000002 last_slot
+ *COM*:00000008 last_slot_time
+ *COM*:00000001 _rtl_sync_ok
+ *COM*:00000001 _rtl_ready
+ *COM*:00000001 _rtl_time_token
+ *COM*:00000001 _rtl_time_token_status
+ *COM*:00000007 rtl_tsync_tx
+ *COM*:00000003 rtl_tsync_buf
+ *COM*:00000001 _rtl_contention_pending
+ *COM*:00000001 _rtl_contention_slots
+ *COM*:00000009 rtl_rfRxInfo
+ *COM*:00000001 rtl_rx_data_ready
+ *COM*:00000001 rtl_rx_slot
+ *COM*:00000074 rtl_rx_buf
+ *COM*:00000007 rtl_rfTxInfo
+ *COM*:00000063 rtl_tx_info
+ *COM*:00000002 rtl_abs_tx_slot
+ *COM*:00000001 rtl_abs_tx_ready
+ *COM*:00000004 rtl_tx_data_ready
+ *COM*:00000009 rtl_param
+ *COM*:00000004 rtl_tdma_rx_mask
+ *COM*:00000004 rtl_tdma_tx_mask
+ *COM*:00000002 rx_callback
+ *COM*:00000002 tx_callback
+ *COM*:00000002 abs_callback
+ *COM*:00000002 slot_callback
+ *COM*:00000002 cycle_callback
+ *COM*:00000001 error_task
+ *COM*:00000001 error_num
+
+UNDEFINED SYMBOLS
+__do_copy_data
+__do_clear_bss
+rtl_tx_pkt_check
+printf
+rtl_tx_pkt
+rtl_wait_until_tx_done
+rtl_init
+rtl_set_schedule
+rtl_start
+rtl_rx_pkt_set_buffer
+nrk_activate_task
+puts
+nrk_wait_until_next_period
+rtl_ready
+rtl_rx_pkt_check
+nrk_led_set
+rtl_rx_pkt_get
+rtl_rx_pkt_release
+nrk_led_clr
+__stack
+nrk_setup_ports
+nrk_setup_uart
+nrk_init
+nrk_time_set
+rtl_task_config
+nrk_start
+exit
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.map Sat Dec 11
12:36:09 2010
@@ -0,0 +1,2096 @@
+Archive member included because of file (symbol)
+
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ (vfprintf)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__mulsi3)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ ../../../../../src/kernel/source/nrk_scheduler.o
(__udivmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__divmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__udivmodsi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o (exit)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ main.o (__do_clear_bss)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ ../../../../../src/net/rt_link/rt_link.o
(rand)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
(strlen_P)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fdevopen)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fputc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(__iob)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ main.o (printf)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ main.o (puts)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_read_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_write_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
(calloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(malloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(memset)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
(__divmodsi4)
+
+Allocating common symbols
+Common symbol size file
+
+rx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+last_slot_time 0x8 main.o
+rtl_param 0x9 main.o
+_free_node
0x2 ../../../../../src/kernel/source/nrk.o
+app_timer0_callback
+
0x2 ../../../../../src/net/rt_link/rt_link.o
+nrk_task_TCB
0x63 ../../../../../src/kernel/source/nrk.o
+cycle_callback 0x2 main.o
+next_next_wakeup
0x2 ../../../../../src/kernel/source/nrk.o
+ext_int1_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+tsync_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+radio_sem
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rx_pkt_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_ready 0x1 main.o
+global_cycle
0x2 ../../../../../src/net/rt_link/rt_link.o
+tsync_delay
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_task_stack 0x80 main.o
+rtl_tx_data_ready 0x4 main.o
+ext_int0_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+nrk_sem_list
0x3 ../../../../../src/kernel/source/nrk.o
+security_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+nrk_task_init_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+error_task 0x1 main.o
+_rtl_sync_ok 0x1 main.o
+slot_start_time
0x2 ../../../../../src/net/rt_link/rt_link.o
+_rtl_contention_slots
+ 0x1 main.o
+tx_callback 0x2 main.o
+rtl_task 0x23 main.o
+rtl_tdma_tx_mask 0x4 main.o
+mdmctrl0
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rfSettings
0x9 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_abs_wakeup
0x8 ../../../../../src/net/rt_link/rt_link.o
+global_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+_nrk_time_trigger
0x1 ../../../../../src/net/rt_link/rt_link.o
+ext_int2_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+TaskOne 0x23 main.o
+_dbg_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+__brkval 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+nrk_wakeup_signal
0x1 ../../../../../src/kernel/source/nrk.o
+state 0x1 main.o
+rtl_tsync_tx 0x7 main.o
+nrk_high_ready_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+last_sync_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+pc_int0_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+tmp_blah
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rfRxInfo 0x9 main.o
+nrk_cur_task_prio
0x1 ../../../../../src/kernel/source/nrk.o
+_rtl_time_token_status
+ 0x1 main.o
+_nrk_cpu_state
0x1 ../../../../../src/kernel/source/nrk.o
+prev_offset
0x2 ../../../../../src/net/rt_link/rt_link.o
+pkt_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_abs_tx_slot 0x2 main.o
+_head_node
0x2 ../../../../../src/kernel/source/nrk.o
+nrk_system_time
0x8 ../../../../../src/kernel/source/nrk.o
+_nrk_signal_list 0x4 main.o
+_nrk_resource_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+num_players 0x1 main.o
+auto_ack_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_drift_rate
0x2 ../../../../../src/net/rt_link/rt_link.o
+_rtl_contention_pending
+ 0x1 main.o
+rx_buf 0x74 main.o
+current_global_slot
+
0x2 ../../../../../src/net/rt_link/rt_link.o
+nrk_cur_task_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+sync_pkt 0x1 main.o
+rtl_rx_slot 0x1 main.o
+Stack1 0x80 main.o
+rtl_tdma_rx_mask 0x4 main.o
+nrk_kernel_stk_ptr 0x2 main.o
+player_rx 0x4 main.o
+rx_callback 0x2 main.o
+rtl_rx_data_ready 0x1 main.o
+tx_buf 0x74 main.o
+rtl_abs_tx_ready 0x1 main.o
+slot_callback 0x2 main.o
+last_pkt_encrypted
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+nrk_high_ready_prio
+
0x1 ../../../../../src/kernel/source/nrk.o
+app_timer0_prescale
+
0x1 ../../../../../src/net/rt_link/rt_link.o
+rtl_node_mode 0x1 main.o
+abs_callback 0x2 main.o
+_tsync_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+tx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+_nrk_prev_timer_val
+
0x1 ../../../../../src/net/rt_link/rt_link.o
+rtl_rfTxInfo 0x7 main.o
+__flp 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+error_num 0x1 main.o
+rtl_sched
0x10 ../../../../../src/net/rt_link/rt_link.o
+tx_len 0x1 main.o
+_nrk_readyQ
0x14 ../../../../../src/kernel/source/nrk.o
+rtl_sched_cache
0x20 ../../../../../src/net/rt_link/rt_link.o
+__iob 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+last_slot 0x2 main.o
+rx_ready
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rx_buf 0x74 main.o
+nrk_idle_task_stk 0x80 main.o
+rtl_tx_done_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+player_tx 0x4 main.o
+_rtl_time_token 0x1 main.o
+rtl_tx_info 0x63 main.o
+rtl_tsync_buf 0x3 main.o
+
+Discarded input sections
+
+ .stabstr 0x00000000 0x0 main.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800200
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+LOAD main.o
+LOAD ../../../../../src/net/rt_link/rt_link.o
+LOAD ../../../../../src/net/rt_link/rtl_scheduler.o
+LOAD ../../../../../src/net/rt_link/rtl_debug.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+LOAD ../../../../../src/radio/cc2420/source/basic_rf.o
+LOAD ../../../../../src/platform/firefly2_2/source/ulib.o
+LOAD ../../../../../src/platform/firefly2_2/source/hal_wait.o
+LOAD ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+LOAD ../../../../../src/kernel/source/nrk.o
+LOAD ../../../../../src/kernel/source/nrk_stats.o
+LOAD ../../../../../src/kernel/source/nrk_error.o
+LOAD ../../../../../src/kernel/source/nrk_stack_check.o
+LOAD ../../../../../src/kernel/source/nrk_events.o
+LOAD ../../../../../src/kernel/source/nrk_task.o
+LOAD ../../../../../src/kernel/source/nrk_time.o
+LOAD ../../../../../src/kernel/source/nrk_idle_task.o
+LOAD ../../../../../src/kernel/source/nrk_scheduler.o
+LOAD ../../../../../src/kernel/source/nrk_driver.o
+LOAD ../../../../../src/kernel/source/nrk_reserve.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+LOAD ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+LOAD
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libm.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x69ba
+ *(.vectors)
+ .vectors 0x00000000 0xcc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x00000000 __vectors
+ *(.vectors)
+ 0x000000cc __ctors_start = .
+ *(.ctors)
+ 0x000000cc __ctors_end = .
+ 0x000000cc __dtors_start = .
+ *(.dtors)
+ 0x000000cc __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.progmem.gcc*)
+ .progmem.gcc_sw_table
+ 0x000000cc
0x24 ../../../../../src/kernel/source/nrk_error.o
+ *(.progmem*)
+ .progmem.data 0x000000f0
0x56 ../../../../../src/net/rt_link/rt_link.o
+ .progmem.data 0x00000146
0x1c8 ../../../../../src/kernel/source/nrk_error.o
+ .progmem.data 0x0000030e
0xf ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x0000031e . = ALIGN (0x2)
+ *fill* 0x0000031d 0x1 00
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ *(.init0)
+ .init0 0x0000031e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000031e __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x0000031e 0xc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x0000032a 0x1a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000032a __do_copy_data
+ .init4 0x00000344 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x00000344 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000354 0x8
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init9)
+ *(.text)
+ .text 0x0000035c 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000035c __vector_38
+ 0x0000035c __vector_22
+ 0x0000035c __vector_28
+ 0x0000035c __vector_34
+ 0x0000035c __vector_24
+ 0x0000035c __vector_12
+ 0x0000035c __vector_46
+ 0x0000035c __bad_interrupt
+ 0x0000035c __vector_6
+ 0x0000035c __vector_31
+ 0x0000035c __vector_35
+ 0x0000035c __vector_39
+ 0x0000035c __vector_3
+ 0x0000035c __vector_23
+ 0x0000035c __vector_30
+ 0x0000035c __vector_45
+ 0x0000035c __vector_25
+ 0x0000035c __vector_11
+ 0x0000035c __vector_19
+ 0x0000035c __vector_7
+ 0x0000035c __vector_49
+ 0x0000035c __vector_41
+ 0x0000035c __vector_43
+ 0x0000035c __vector_27
+ 0x0000035c __vector_5
+ 0x0000035c __vector_33
+ 0x0000035c __vector_47
+ 0x0000035c __vector_37
+ 0x0000035c __vector_4
+ 0x0000035c __vector_44
+ 0x0000035c __vector_21
+ 0x0000035c __vector_36
+ 0x0000035c __vector_29
+ 0x0000035c __vector_40
+ 0x0000035c __vector_8
+ 0x0000035c __vector_26
+ 0x0000035c __vector_48
+ 0x0000035c __vector_14
+ 0x0000035c __vector_10
+ 0x0000035c __vector_50
+ 0x0000035c __vector_16
+ 0x0000035c __vector_18
+ 0x0000035c __vector_20
+ 0x0000035c __vector_42
+ .text 0x00000360 0x3b6 main.o
+ 0x000004a6 monome_comm_init
+ 0x000005d0 Task1
+ 0x0000038c monome_add_controller
+ 0x00000516 nrk_create_taskset
+ 0x000006ae main
+ 0x00000360 monome_setup_system
+ .text 0x00000716
0xe96 ../../../../../src/net/rt_link/rt_link.o
+ 0x00000792 rtl_set_cycle_callback
+ 0x000014c8 rtl_wait_until_tx_done
+ 0x00000742 rtl_check_abs_tx_status
+ 0x00001476 rtl_wait_until_rx_or_tx
+ 0x00000c90 rtl_tx_abs_pkt
+ 0x00000730 rtl_get_slot
+ 0x0000088e rtl_start
+ 0x000007b0 rtl_set_tx_callback
+ 0x00000750 rtl_tx_pkt_check
+ 0x000007e4 rtl_task_config
+ 0x0000071c rtl_ready
+ 0x000007ba rtl_set_abs_callback
+ 0x00000716 rtl_wait_until_global_slot
+ 0x00000f76 rtl_set_channel
+ 0x00000d06 _rtl_rx_sync
+ 0x00001592 rtl_get_tx_done_signal
+ 0x000008ce rtl_set_contention
+ 0x00001506 rtl_wait_until_rx_pkt
+ 0x00000916 rtl_init
+ 0x00001578 rtl_get_rx_pkt_signal
+ 0x0000079c rtl_set_slot_callback
+ 0x000007a6 rtl_set_rx_callback
+ 0x0000073a rtl_sync_status
+ 0x00000a50 rtl_set_tx_power
+ 0x00000a56 _rtl_tx
+ 0x00000b78 _rtl_rx
+ 0x000007c4 rtl_rx_pkt_set_buffer
+ 0x0000074a rtl_rx_pkt_release
+ 0x00000786 rtl_rx_pkt_check
+ 0x0000153a rtl_rx_pkt_get
+ 0x00000f80 rtl_tx_pkt
+ 0x00001008 rtl_nw_task
+ 0x00001398 rtl_get_global_slot
+ .text 0x000015ac
0x442 ../../../../../src/net/rt_link/rtl_scheduler.o
+ 0x00001904 _rtl_clear_sched_cache
+ 0x000017f0 _rtl_clr_abs_wakeup
+ 0x0000176e rtl_set_abs_wakeup
+ 0x000015ac rtl_set_schedule
+ 0x00001948 rtl_get_slots_until_next_wakeup
+ 0x00001662 rtl_get_schedule
+ 0x0000185a _rtl_match_abs_wakeup
+ 0x00001914 _rtl_pow
+ 0x0000169c rtl_clr_schedule
+ 0x000018c2 _rtl_get_next_abs_wakeup
+ 0x00001748 _rtl_clr_abs_all_wakeup
+ .text 0x000019ee
0x1d8 ../../../../../src/net/rt_link/rtl_debug.o
+ 0x00001b18 rtl_debug_get_tsync_delay
+ 0x00001a5e rtl_debug_get_pkt_loss
+ 0x000019ee rtl_debug_time_update
+ 0x00001a0e rtl_debug_time_get_drift
+ 0x00001a86 rtl_debug_get_tsync_loss
+ 0x00001b30 rtl_debug_rx_tsync
+ 0x00001a18 rtl_debug_init
+ 0x00001a3a bit_count
+ 0x00001a92 rtl_debug_rx_pkt
+ 0x00001ad4 rtl_debug_dropped_pkt
+ 0x00001b7a rtl_debug_dropped_tsync
+ .text 0x00001bc6
0x3e ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ 0x00001bc6 halRfSetChannel
+ .text 0x00001c04
0x18 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ 0x00001c04 halRfWaitForCrystalOscillator
+ .text 0x00001c1c
0x12da ../../../../../src/radio/cc2420/source/basic_rf.o
+ 0x00002d4a rf_set_channel
+ 0x00001e42 rf_rx_on
+ 0x00001dcc rf_auto_ack_enable
+ 0x00001d30 rf_tx_power
+ 0x00002d14 rf_set_rx
+ 0x00001d96 rf_addr_decode_disable
+ 0x000023f4 rf_data_mode
+ 0x00001ebe rf_rx_check_fifop
+ 0x00002466 rf_tx_packet
+ 0x00001ed0 rf_rx_check_sfd
+ 0x00001cb2 rf_security_enable
+ 0x00002332 rf_rx_packet
+ 0x00002456 rf_carrier_off
+ 0x00001eaa rf_busy
+ 0x00001e6a rf_polling_rx_on
+ 0x00001ee4 rf_polling_rx_packet
+ 0x00002446 rf_carrier_on
+ 0x00001d26 rf_get_sem
+ 0x00001e92 rf_rx_off
+ 0x00002350 rf_flush_rx_fifo
+ 0x00002d50 rf_init
+ 0x00001d60 rf_addr_decode_enable
+ 0x00002b3a rf_security_set_key
+ 0x000027ac rf_tx_tdma_packet
+ 0x00001c24 rf_security_set_ctr_counter
+ 0x0000236e rf_set_cca_thresh
+ 0x00002ac4 rf_addr_decode_set_my_mac
+ 0x00001cfe rf_security_disable
+ 0x00001e08 rf_auto_ack_disable
+ 0x0000239e rf_test_mode
+ 0x00001c1c rf_security_last_pkt_status
+ .text 0x00002ef6
0x952 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00002f84 nrk_gpio_set
+ 0x0000365c nrk_get_button
+ 0x00003822 nrk_kprintf
+ 0x00002efc nrk_uart_data_ready
+ 0x0000342c nrk_gpio_direction
+ 0x000037c6 getc0
+ 0x000036f0 nrk_led_set
+ 0x00002f32 getc1
+ 0x0000321a nrk_gpio_toggle
+ 0x0000308e nrk_gpio_clr
+ 0x00003740 putc0
+ 0x000037e0 nrk_setup_uart
+ 0x0000372a nrk_gpio_pullups
+ 0x00003798 setup_uart1
+ 0x00002f76 nrk_setup_ports
+ 0x0000375a putc1
+ 0x000036b6 nrk_led_clr
+ 0x000031a6 nrk_gpio_get
+ 0x00002f4c PORT_INIT
+ 0x0000376a setup_uart0
+ 0x0000367c nrk_led_toggle
+ 0x00002ef6 nrk_uart_rx_signal_get
+ .text 0x00003848
0xe ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ 0x00003848 halWait
+ .text 0x00003856
0x11c ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ 0x000038f0 read_eeprom_load_img_pages
+ 0x0000387e nrk_eeprom_read_byte
+ 0x0000386a
write_eeprom_current_image_checksum
+ 0x00003936 write_eeprom_load_img_pages
+ 0x0000388a read_eeprom_mac_address
+ 0x0000392c nrk_eeprom_write_byte
+ 0x0000394a write_eeprom_aes_key
+ 0x000038dc read_eeprom_channel
+ 0x00003904 read_eeprom_aes_key
+ 0x00003856
read_eeprom_current_image_checksum
+ .text 0x00003972
0x440 ../../../../../src/kernel/source/nrk.o
+ 0x0000397a nrk_version
+ 0x00003c96 nrk_init
+ 0x00003986 nrk_TCB_init
+ 0x00003dae nrk_halt
+ 0x00003980 _nrk_timer_tick
+ 0x00003976 nrk_int_enable
+ 0x00003bd6 nrk_start
+ 0x00003972 nrk_int_disable
+ .text 0x00003db2
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .text 0x00003db2
0x1b0 ../../../../../src/kernel/source/nrk_error.o
+ 0x00003f4a nrk_error_add
+ 0x00003f3c nrk_kernel_error_add
+ 0x00003dcc nrk_error_get
+ 0x00003dbe nrk_errno_get
+ 0x00003db2 _nrk_errno_set
+ 0x00003dec nrk_error_print
+ .text 0x00003f62
0x1e8 ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x00003fac dump_stack_info
+ 0x00003f62 nrk_stack_check_pid
+ 0x00004104 nrk_stack_check
+ .text 0x0000414a
0x5e0 ../../../../../src/kernel/source/nrk_events.o
+ 0x000044f0 nrk_signal_delete
+ 0x00004410 nrk_event_signal
+ 0x00004368 nrk_sem_post
+ 0x000042ce nrk_sem_create
+ 0x000046b4 nrk_event_wait
+ 0x0000432e nrk_sem_query
+ 0x0000414a nrk_signal_create
+ 0x0000425c nrk_signal_register
+ 0x0000460c nrk_sem_pend
+ 0x000042e6 nrk_sem_delete
+ 0x000041c4 nrk_signal_get_registered_mask
+ 0x000042d4 nrk_get_resource_index
+ 0x000041d6 nrk_signal_unregister
+ .text 0x0000472a
0x67e ../../../../../src/kernel/source/nrk_task.o
+ 0x0000490e _nrk_wait_for_scheduler
+ 0x00004900 nrk_get_pid
+ 0x00004c80 nrk_wait_until_next_period
+ 0x00004bac nrk_wait_ticks
+ 0x000049dc nrk_wait_until
+ 0x00004ada nrk_set_next_wakeup
+ 0x0000474e nrk_add_to_readyQ
+ 0x00004a8c nrk_wait_until_nw
+ 0x00004738 nrk_print_readyQ
+ 0x00004cfc nrk_activate_task
+ 0x00004b56 nrk_wait_until_ticks
+ 0x00004922 nrk_wait
+ 0x00004cd8 nrk_terminate_task
+ 0x0000472a nrk_get_high_ready_task_ID
+ 0x00004c1a nrk_wait_until_next_n_periods
+ 0x0000485c nrk_rem_from_readyQ
+ .text 0x00004da8
0x5c0 ../../../../../src/kernel/source/nrk_time.o
+ 0x00004fc4 nrk_time_set
+ 0x000052b2 nrk_time_get
+ 0x00004fe6 _nrk_time_to_ticks
+ 0x000051a2 _nrk_time_to_ticks_long
+ 0x00004ec6 nrk_time_compact_nanos
+ 0x00004f0a nrk_time_add
+ 0x00004da8 nrk_time_sub
+ 0x000050ea _nrk_ticks_to_time
+ .text 0x00005368
0x48 ../../../../../src/kernel/source/nrk_idle_task.o
+ 0x00005368 nrk_idle_task
+ .text 0x000053b0
0x3f0 ../../../../../src/kernel/source/nrk_scheduler.o
+ 0x000053b0 _nrk_scheduler
+ .text 0x000057a0
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .text 0x000057a0
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .text 0x000057a0
0x398 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ 0x00005a36 nrk_high_speed_timer_wait
+ 0x000059ae __vector_32
+ 0x00005864 nrk_timer_int_reset
+ 0x00005830 _nrk_os_timer_reset
+ 0x0000592c _nrk_os_timer_get
+ 0x00005856 nrk_timer_int_stop
+ 0x000057a0 nrk_spin_wait_us
+ 0x00005934 __vector_13
+ 0x000057bc _nrk_high_speed_timer_reset
+ 0x0000599a __vector_17
+ 0x00005ac2 _nrk_setup_timer
+ 0x00005a0a __vector_default
+ 0x0000584e _nrk_set_next_wakeup
+ 0x0000587c nrk_timer_int_read
+ 0x000057ae _nrk_high_speed_timer_stop
+ 0x000057b4 _nrk_high_speed_timer_start
+ 0x00005890 nrk_timer_int_start
+ 0x00005934 __vector_15
+ 0x000058a6 nrk_timer_int_configure
+ 0x00005818 _nrk_os_timer_set
+ 0x000057cc _nrk_high_speed_timer_get
+ 0x00005802 _nrk_os_timer_stop
+ 0x0000581e _nrk_os_timer_start
+ 0x00005844 _nrk_get_next_wakeup
+ .text 0x00005b38
0x34e ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x00005b38 nrk_ext_int_enable
+ 0x00005dce __vector_1
+ 0x00005c50 nrk_ext_int_configure
+ 0x00005e2a __vector_9
+ 0x00005d72 __vector_2
+ 0x00005bc6 nrk_ext_int_disable
+ .text 0x00005e86
0x16 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ 0x00005e9a update_watchdog
+ 0x00005e86 _nrk_startup_ok
+ .text 0x00005e9c
0x54 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ 0x00005eb2 nrk_watchdog_disable
+ 0x00005ed0 nrk_watchdog_enable
+ 0x00005e9c nrk_watchdog_check
+ 0x00005eae nrk_watchdog_reset
+ .text 0x00005ef0
0x130 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ 0x00005fa4 nrk_stack_pointer_init
+ 0x00005fe2 nrk_task_set_stk
+ 0x00005f0a nrk_idle
+ 0x00005ef0 nrk_battery_save
+ 0x00005f20 nrk_task_set_entry_function
+ 0x00005fd8 nrk_target_start
+ 0x00005fc6 nrk_stack_pointer_restore
+ 0x00005f28 nrk_task_stk_init
+ 0x00005ef2 nrk_sleep
+ .text 0x00006020
0x56 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ 0x00006020 nrk_start_high_ready_task
+ .text 0x00006076 0x34c
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ 0x00006076 vfprintf
+ .text 0x000063c2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x000063c2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x000063c2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x000063c2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x000063c2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text 0x000063c2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text 0x000063c2 0xde
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ 0x0000647a rand_r
+ 0x00006480 rand
+ 0x0000648a srand
+ .text 0x000064a0 0x12
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ 0x000064a0 strlen_P
+ .text 0x000064b2 0xa0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ 0x000064b2 fdevopen
+ .text 0x00006552 0x5a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ 0x00006552 fputc
+ .text 0x000065ac 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .text 0x000065ac 0x40
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ 0x000065ac printf
+ .text 0x000065ec 0x66
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ 0x000065ec puts
+ .text 0x00006652 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .text 0x00006652 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .text 0x00006652 0x38
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ 0x00006652 calloc
+ .text 0x0000668a 0x1f2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x0000668a malloc
+ 0x000067d0 free
+ .text 0x0000687c 0xe
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ 0x0000687c memset
+ .text 0x0000688a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000688a . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x0000688a 0x3e
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ 0x0000688a __mulsi3
+ .text.libgcc 0x000068c8 0x28
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x000068c8 __udivmodhi4
+ .text.libgcc 0x000068f0 0x26
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x000068f0 __divmodhi4
+ 0x000068f0 _div
+ .text.libgcc 0x00006916 0x44
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00006916 __udivmodsi4
+ .text.libgcc 0x0000695a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x0000695a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text.eeprom 0x0000695a 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ 0x0000695a __eeprom_read_byte_1F2021
+ .text.eeprom 0x0000696a 0x18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ 0x0000696a __eeprom_write_byte_1F2021
+ .text.libgcc 0x00006982 0x36
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x00006982 __divmodsi4
+ 0x000069b8 . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x000069b8 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ 0x000069b8 exit
+ 0x000069b8 _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x000069b8 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x000069ba _etext = .
+
+.data 0x00800200 0x110 load address 0x000069ba
+ 0x00800200 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800200 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .data 0x00800200 0x93 main.o
+ .data 0x00800293
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .data 0x00800293
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .data 0x00800293
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .data 0x00800293
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .data 0x00800293
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .data 0x00800293
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .data 0x00800293
0x21 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x008002a6 NRK_LED_0
+ 0x008002ab NRK_FIFOP
+ 0x008002a3 NRK_SFD
+ 0x0080029f NRK_DEBUG_3
+ 0x008002a7 NRK_LED_1
+ 0x008002b1 NRK_ADC_INPUT_5
+ 0x008002ad NRK_ADC_INPUT_1
+ 0x008002a5 NRK_UART0_TXD
+ 0x008002a8 NRK_LED_2
+ 0x00800295 NRK_BUTTON
+ 0x008002ac NRK_ADC_INPUT_0
+ 0x00800294 NRK_DEBUG_1
+ 0x008002aa NRK_GPIO34
+ 0x008002a2 NRK_CCA
+ 0x008002b2 NRK_ADC_INPUT_6
+ 0x00800293 NRK_DEBUG_0
+ 0x008002af NRK_ADC_INPUT_3
+ 0x0080029a NRK_GPIO26
+ 0x00800299 NRK_MISO
+ 0x0080029b NRK_MMC_11
+ 0x00800298 NRK_MOSI
+ 0x008002b0 NRK_ADC_INPUT_4
+ 0x008002a1 NRK_UART1_TXD
+ 0x008002a4 NRK_UART0_RXD
+ 0x008002b3 NRK_ADC_INPUT_7
+ 0x0080029e NRK_DEBUG_2
+ 0x0080029d NRK_MMC_9
+ 0x008002a9 NRK_LED_3
+ 0x00800296 NRK_SPI_SS
+ 0x0080029c NRK_MMC_10
+ 0x008002a0 NRK_UART1_RXD
+ 0x008002ae NRK_ADC_INPUT_2
+ 0x00800297 NRK_SCK
+ .data 0x008002b4
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .data 0x008002b4
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .data 0x008002b4
0x0 ../../../../../src/kernel/source/nrk.o
+ .data 0x008002b4
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .data 0x008002b4
0x3 ../../../../../src/kernel/source/nrk_error.o
+ .data 0x008002b7
0x4e ../../../../../src/kernel/source/nrk_stack_check.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .data 0x00800305
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .data 0x00800305 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .data 0x00800305 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .data 0x00800309 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .data 0x00800309 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x0080030b __malloc_heap_start
+ 0x0080030d __malloc_heap_end
+ 0x00800309 __malloc_margin
+ .data 0x0080030f 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .data 0x0080030f 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800310 . = ALIGN (0x2)
+ *fill* 0x0080030f 0x1 00
+ 0x00800310 _edata = .
+ 0x00800310 PROVIDE (__data_end, .)
+
+.bss 0x00800310 0x50e
+ 0x00800310 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .bss 0x00800310 0x0 main.o
+ .bss 0x00800310
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .bss 0x00800310
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .bss 0x00800310
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .bss 0x00800310
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .bss 0x00800310
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .bss 0x00800310
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .bss 0x00800310
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .bss 0x00800310
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .bss 0x00800310
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .bss 0x00800310
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .bss 0x00800310 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x00800310 0x3e8 main.o
+ 0x00800310 last_slot_time
+ 0x00800318 rtl_param
+ 0x00800321 cycle_callback
+ 0x00800323 _rtl_ready
+ 0x00800324 rtl_task_stack
+ 0x008003a4 rtl_tx_data_ready
+ 0x008003a8 error_task
+ 0x008003a9 _rtl_sync_ok
+ 0x008003aa _rtl_contention_slots
+ 0x008003ab tx_callback
+ 0x008003ad rtl_task
+ 0x008003d0 rtl_tdma_tx_mask
+ 0x008003d4 TaskOne
+ 0x008003f7 state
+ 0x008003f8 rtl_tsync_tx
+ 0x008003ff rtl_rfRxInfo
+ 0x00800408 _rtl_time_token_status
+ 0x00800409 rtl_abs_tx_slot
+ 0x0080040b _nrk_signal_list
+ 0x0080040f num_players
+ 0x00800410 _rtl_contention_pending
+ 0x00800411 rx_buf
+ 0x00800485 sync_pkt
+ 0x00800486 rtl_rx_slot
+ 0x00800487 Stack1
+ 0x00800507 rtl_tdma_rx_mask
+ 0x0080050b nrk_kernel_stk_ptr
+ 0x0080050d player_rx
+ 0x00800511 rx_callback
+ 0x00800513 rtl_rx_data_ready
+ 0x00800514 tx_buf
+ 0x00800588 rtl_abs_tx_ready
+ 0x00800589 slot_callback
+ 0x0080058b rtl_node_mode
+ 0x0080058c abs_callback
+ 0x0080058e rtl_rfTxInfo
+ 0x00800595 error_num
+ 0x00800596 tx_len
+ 0x00800597 last_slot
+ 0x00800599 rtl_rx_buf
+ 0x0080060d nrk_idle_task_stk
+ 0x0080068d player_tx
+ 0x00800691 _rtl_time_token
+ 0x00800692 rtl_tx_info
+ 0x008006f5 rtl_tsync_buf
+ COMMON 0x008006f8
0x67 ../../../../../src/net/rt_link/rt_link.o
+ 0x008006f8 app_timer0_callback
+ 0x008006fa tsync_log
+ 0x00800702 rtl_rx_pkt_signal
+ 0x00800703 global_cycle
+ 0x00800705 tsync_delay
+ 0x0080070d slot_start_time
+ 0x0080070f rtl_abs_wakeup
+ 0x00800717 global_slot
+ 0x00800719 _nrk_time_trigger
+ 0x0080071a _dbg_index
+ 0x0080071b last_sync_slot
+ 0x0080071d prev_offset
+ 0x0080071f pkt_log
+ 0x00800727 rtl_drift_rate
+ 0x00800729 current_global_slot
+ 0x0080072b app_timer0_prescale
+ 0x0080072c _tsync_index
+ 0x0080072d _nrk_prev_timer_val
+ 0x0080072e rtl_sched
+ 0x0080073e rtl_sched_cache
+ 0x0080075e rtl_tx_done_signal
+ COMMON 0x0080075f
0x1b ../../../../../src/radio/cc2420/source/basic_rf.o
+ 0x0080075f rx_ctr
+ 0x00800763 radio_sem
+ 0x00800765 security_enable
+ 0x00800766 mdmctrl0
+ 0x00800768 rfSettings
+ 0x00800771 tmp_blah
+ 0x00800773 auto_ack_enable
+ 0x00800774 last_pkt_encrypted
+ 0x00800775 tx_ctr
+ 0x00800779 rx_ready
+ COMMON 0x0080077a
0x92 ../../../../../src/kernel/source/nrk.o
+ 0x0080077a _free_node
+ 0x0080077c nrk_task_TCB
+ 0x008007df next_next_wakeup
+ 0x008007e1 nrk_sem_list
+ 0x008007e4 nrk_task_init_cnt
+ 0x008007e5 nrk_wakeup_signal
+ 0x008007e6 nrk_high_ready_TCB
+ 0x008007e8 nrk_cur_task_prio
+ 0x008007e9 _nrk_cpu_state
+ 0x008007ea _head_node
+ 0x008007ec nrk_system_time
+ 0x008007f4 _nrk_resource_cnt
+ 0x008007f5 nrk_cur_task_TCB
+ 0x008007f7 nrk_high_ready_prio
+ 0x008007f8 _nrk_readyQ
+ COMMON 0x0080080c
0x8 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/main.sym Sat Dec 11
12:36:09 2010
@@ -0,0 +1,665 @@
+00000000 W __heap_end
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 T __vectors
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+000000cc T __ctors_end
+000000cc T __ctors_start
+000000cc T __dtors_end
+000000cc T __dtors_start
+000000f0 t __c.2963
+0000011b t __c.2961
+00000146 t __c.2376
+0000014d t __c.2373
+00000168 t __c.2370
+00000180 t __c.2367
+000001a0 t __c.2364
+000001b4 t __c.2361
+000001c5 t __c.2358
+000001d4 t __c.2355
+000001ef t __c.2352
+000001fb t __c.2349
+00000220 t __c.2346
+0000023e t __c.2343
+00000251 t __c.2340
+00000264 t __c.2337
+0000027c t __c.2334
+00000292 t __c.2331
+000002ad t __c.2328
+000002c3 t __c.2325
+000002d7 t __c.2321
+000002fe t __c.2318
+00000302 t __c.2316
+0000030e t __c.2249
+0000031e W __init
+0000032a T __do_copy_data
+00000344 T __do_clear_bss
+0000034c t .do_clear_bss_loop
+0000034e t .do_clear_bss_start
+0000035c T __bad_interrupt
+0000035c W __vector_10
+0000035c W __vector_11
+0000035c W __vector_12
+0000035c W __vector_14
+0000035c W __vector_16
+0000035c W __vector_18
+0000035c W __vector_19
+0000035c W __vector_20
+0000035c W __vector_21
+0000035c W __vector_22
+0000035c W __vector_23
+0000035c W __vector_24
+0000035c W __vector_25
+0000035c W __vector_26
+0000035c W __vector_27
+0000035c W __vector_28
+0000035c W __vector_29
+0000035c W __vector_3
+0000035c W __vector_30
+0000035c W __vector_31
+0000035c W __vector_33
+0000035c W __vector_34
+0000035c W __vector_35
+0000035c W __vector_36
+0000035c W __vector_37
+0000035c W __vector_38
+0000035c W __vector_39
+0000035c W __vector_4
+0000035c W __vector_40
+0000035c W __vector_41
+0000035c W __vector_42
+0000035c W __vector_43
+0000035c W __vector_44
+0000035c W __vector_45
+0000035c W __vector_46
+0000035c W __vector_47
+0000035c W __vector_48
+0000035c W __vector_49
+0000035c W __vector_5
+0000035c W __vector_50
+0000035c W __vector_6
+0000035c W __vector_7
+0000035c W __vector_8
+00000360 T monome_setup_system
+0000038c T monome_add_controller
+000004a6 T monome_comm_init
+00000516 T nrk_create_taskset
+000005d0 T Task1
+000006ae T main
+00000716 T rtl_wait_until_global_slot
+0000071c T rtl_ready
+00000730 T rtl_get_slot
+0000073a T rtl_sync_status
+00000742 T rtl_check_abs_tx_status
+0000074a T rtl_rx_pkt_release
+00000750 T rtl_tx_pkt_check
+00000786 T rtl_rx_pkt_check
+00000792 T rtl_set_cycle_callback
+0000079c T rtl_set_slot_callback
+000007a6 T rtl_set_rx_callback
+000007b0 T rtl_set_tx_callback
+000007ba T rtl_set_abs_callback
+000007c4 T rtl_rx_pkt_set_buffer
+000007e4 T rtl_task_config
+0000088e T rtl_start
+000008ce T rtl_set_contention
+00000916 T rtl_init
+00000a50 T rtl_set_tx_power
+00000a56 T _rtl_tx
+00000b78 T _rtl_rx
+00000c90 T rtl_tx_abs_pkt
+00000d06 T _rtl_rx_sync
+00000f76 T rtl_set_channel
+00000f80 T rtl_tx_pkt
+00001008 T rtl_nw_task
+00001398 T rtl_get_global_slot
+00001476 T rtl_wait_until_rx_or_tx
+000014c8 T rtl_wait_until_tx_done
+00001506 T rtl_wait_until_rx_pkt
+0000153a T rtl_rx_pkt_get
+00001578 T rtl_get_rx_pkt_signal
+00001592 T rtl_get_tx_done_signal
+000015ac T rtl_set_schedule
+00001662 T rtl_get_schedule
+0000169c T rtl_clr_schedule
+00001748 T _rtl_clr_abs_all_wakeup
+0000176e T rtl_set_abs_wakeup
+000017f0 T _rtl_clr_abs_wakeup
+0000185a T _rtl_match_abs_wakeup
+000018c2 T _rtl_get_next_abs_wakeup
+00001904 T _rtl_clear_sched_cache
+00001914 T _rtl_pow
+00001948 T rtl_get_slots_until_next_wakeup
+000019ee T rtl_debug_time_update
+00001a0e T rtl_debug_time_get_drift
+00001a18 T rtl_debug_init
+00001a3a T bit_count
+00001a5e T rtl_debug_get_pkt_loss
+00001a86 T rtl_debug_get_tsync_loss
+00001a92 T rtl_debug_rx_pkt
+00001ad4 T rtl_debug_dropped_pkt
+00001b18 T rtl_debug_get_tsync_delay
+00001b30 T rtl_debug_rx_tsync
+00001b7a T rtl_debug_dropped_tsync
+00001bc6 T halRfSetChannel
+00001c04 T halRfWaitForCrystalOscillator
+00001c1c T rf_security_last_pkt_status
+00001c24 T rf_security_set_ctr_counter
+00001cb2 T rf_security_enable
+00001cfe T rf_security_disable
+00001d26 T rf_get_sem
+00001d30 T rf_tx_power
+00001d60 T rf_addr_decode_enable
+00001d96 T rf_addr_decode_disable
+00001dcc T rf_auto_ack_enable
+00001e08 T rf_auto_ack_disable
+00001e42 T rf_rx_on
+00001e6a T rf_polling_rx_on
+00001e92 T rf_rx_off
+00001eaa T rf_busy
+00001ebe T rf_rx_check_fifop
+00001ed0 T rf_rx_check_sfd
+00001ee4 T rf_polling_rx_packet
+000021ff W __stack
+00002332 T rf_rx_packet
+00002350 T rf_flush_rx_fifo
+0000236e T rf_set_cca_thresh
+0000239e T rf_test_mode
+000023f4 T rf_data_mode
+00002446 T rf_carrier_on
+00002456 T rf_carrier_off
+00002466 T rf_tx_packet
+000027ac T rf_tx_tdma_packet
+00002ac4 T rf_addr_decode_set_my_mac
+00002b3a T rf_security_set_key
+00002d14 T rf_set_rx
+00002d4a T rf_set_channel
+00002d50 T rf_init
+00002ef6 T nrk_uart_rx_signal_get
+00002efc T nrk_uart_data_ready
+00002f32 T getc1
+00002f4c T PORT_INIT
+00002f76 T nrk_setup_ports
+00002f84 T nrk_gpio_set
+0000308e T nrk_gpio_clr
+000031a6 T nrk_gpio_get
+0000321a T nrk_gpio_toggle
+0000342c T nrk_gpio_direction
+0000365c T nrk_get_button
+0000367c T nrk_led_toggle
+000036b6 T nrk_led_clr
+000036f0 T nrk_led_set
+0000372a T nrk_gpio_pullups
+00003740 T putc0
+0000375a T putc1
+0000376a T setup_uart0
+00003798 T setup_uart1
+000037c6 T getc0
+000037e0 T nrk_setup_uart
+00003822 T nrk_kprintf
+00003848 T halWait
+00003856 T read_eeprom_current_image_checksum
+0000386a T write_eeprom_current_image_checksum
+0000387e T nrk_eeprom_read_byte
+0000388a T read_eeprom_mac_address
+000038dc T read_eeprom_channel
+000038f0 T read_eeprom_load_img_pages
+00003904 T read_eeprom_aes_key
+0000392c T nrk_eeprom_write_byte
+00003936 T write_eeprom_load_img_pages
+0000394a T write_eeprom_aes_key
+00003972 T nrk_int_disable
+00003976 T nrk_int_enable
+0000397a T nrk_version
+00003980 T _nrk_timer_tick
+00003986 T nrk_TCB_init
+00003bd6 T nrk_start
+00003c96 T nrk_init
+00003dae T nrk_halt
+00003db2 T _nrk_errno_set
+00003dbe T nrk_errno_get
+00003dcc T nrk_error_get
+00003dec T nrk_error_print
+00003f3c T nrk_kernel_error_add
+00003f4a T nrk_error_add
+00003f62 T nrk_stack_check_pid
+00003fac T dump_stack_info
+00004104 T nrk_stack_check
+0000414a T nrk_signal_create
+000041c4 T nrk_signal_get_registered_mask
+000041d6 T nrk_signal_unregister
+0000425c T nrk_signal_register
+000042ce T nrk_sem_create
+000042d4 T nrk_get_resource_index
+000042e6 T nrk_sem_delete
+0000432e T nrk_sem_query
+00004368 T nrk_sem_post
+00004410 T nrk_event_signal
+000044f0 T nrk_signal_delete
+0000460c T nrk_sem_pend
+000046b4 T nrk_event_wait
+0000472a T nrk_get_high_ready_task_ID
+00004738 T nrk_print_readyQ
+0000474e T nrk_add_to_readyQ
+0000485c T nrk_rem_from_readyQ
+00004900 T nrk_get_pid
+0000490e T _nrk_wait_for_scheduler
+00004922 T nrk_wait
+000049dc T nrk_wait_until
+00004a8c T nrk_wait_until_nw
+00004ada T nrk_set_next_wakeup
+00004b56 T nrk_wait_until_ticks
+00004bac T nrk_wait_ticks
+00004c1a T nrk_wait_until_next_n_periods
+00004c80 T nrk_wait_until_next_period
+00004cd8 T nrk_terminate_task
+00004cfc T nrk_activate_task
+00004da8 T nrk_time_sub
+00004ec6 T nrk_time_compact_nanos
+00004f0a T nrk_time_add
+00004fc4 T nrk_time_set
+00004fe6 T _nrk_time_to_ticks
+000050ea T _nrk_ticks_to_time
+000051a2 T _nrk_time_to_ticks_long
+000052b2 T nrk_time_get
+00005368 T nrk_idle_task
+000053b0 T _nrk_scheduler
+000057a0 T nrk_spin_wait_us
+000057ae T _nrk_high_speed_timer_stop
+000057b4 T _nrk_high_speed_timer_start
+000057bc T _nrk_high_speed_timer_reset
+000057cc T _nrk_high_speed_timer_get
+00005802 T _nrk_os_timer_stop
+00005818 T _nrk_os_timer_set
+0000581e T _nrk_os_timer_start
+00005830 T _nrk_os_timer_reset
+00005844 T _nrk_get_next_wakeup
+0000584e T _nrk_set_next_wakeup
+00005856 T nrk_timer_int_stop
+00005864 T nrk_timer_int_reset
+0000587c T nrk_timer_int_read
+00005890 T nrk_timer_int_start
+000058a6 T nrk_timer_int_configure
+0000592c T _nrk_os_timer_get
+00005934 T __vector_13
+00005934 T __vector_15
+0000599a T __vector_17
+000059ae T __vector_32
+00005a0a T __vector_default
+00005a36 T nrk_high_speed_timer_wait
+00005ac2 T _nrk_setup_timer
+00005b38 T nrk_ext_int_enable
+00005bc6 T nrk_ext_int_disable
+00005c50 T nrk_ext_int_configure
+00005d72 T __vector_2
+00005dce T __vector_1
+00005e2a T __vector_9
+00005e86 T _nrk_startup_ok
+00005e9a T update_watchdog
+00005e9c T nrk_watchdog_check
+00005eae T nrk_watchdog_reset
+00005eb2 T nrk_watchdog_disable
+00005ed0 T nrk_watchdog_enable
+00005ef0 T nrk_battery_save
+00005ef2 T nrk_sleep
+00005f0a T nrk_idle
+00005f20 T nrk_task_set_entry_function
+00005f28 T nrk_task_stk_init
+00005fa4 T nrk_stack_pointer_init
+00005fc6 T nrk_stack_pointer_restore
+00005fd8 T nrk_target_start
+00005fe2 T nrk_task_set_stk
+00006020 T nrk_start_high_ready_task
+00006076 T vfprintf
+000063c2 t do_rand
+0000647a T rand_r
+00006480 T rand
+0000648a T srand
+000064a0 T strlen_P
+000064b2 T fdevopen
+00006552 T fputc
+000065ac T printf
+000065ec T puts
+00006652 T calloc
+0000668a T malloc
+000067d0 T free
+0000687c T memset
+0000688a T __mulsi3
+000068c8 T __udivmodhi4
+000068d0 t __udivmodhi4_loop
+000068de t __udivmodhi4_ep
+000068f0 T __divmodhi4
+000068f0 T _div
+00006904 t __divmodhi4_neg2
+0000690a t __divmodhi4_exit
+0000690c t __divmodhi4_neg1
+00006916 T __udivmodsi4
+00006922 t __udivmodsi4_loop
+0000693c t __udivmodsi4_ep
+0000695a T __eeprom_read_byte_1F2021
+0000696a T __eeprom_write_byte_1F2021
+00006982 T __divmodsi4
+00006996 t __divmodsi4_neg2
+000069a4 t __divmodsi4_exit
+000069a6 t __divmodsi4_neg1
+000069b8 t __stop_program
+000069b8 T _exit
+000069b8 W exit
+000069ba A __data_load_start
+000069ba T _etext
+00006aca A __data_load_end
+00800200 D __data_start
+00800293 D NRK_DEBUG_0
+00800294 D NRK_DEBUG_1
+00800295 D NRK_BUTTON
+00800296 D NRK_SPI_SS
+00800297 D NRK_SCK
+00800298 D NRK_MOSI
+00800299 D NRK_MISO
+0080029a D NRK_GPIO26
+0080029b D NRK_MMC_11
+0080029c D NRK_MMC_10
+0080029d D NRK_MMC_9
+0080029e D NRK_DEBUG_2
+0080029f D NRK_DEBUG_3
+008002a0 D NRK_UART1_RXD
+008002a1 D NRK_UART1_TXD
+008002a2 D NRK_CCA
+008002a3 D NRK_SFD
+008002a4 D NRK_UART0_RXD
+008002a5 D NRK_UART0_TXD
+008002a6 D NRK_LED_0
+008002a7 D NRK_LED_1
+008002a8 D NRK_LED_2
+008002a9 D NRK_LED_3
+008002aa D NRK_GPIO34
+008002ab D NRK_FIFOP
+008002ac D NRK_ADC_INPUT_0
+008002ad D NRK_ADC_INPUT_1
+008002ae D NRK_ADC_INPUT_2
+008002af D NRK_ADC_INPUT_3
+008002b0 D NRK_ADC_INPUT_4
+008002b1 D NRK_ADC_INPUT_5
+008002b2 D NRK_ADC_INPUT_6
+008002b3 D NRK_ADC_INPUT_7
+00800305 d next
+00800309 D __malloc_margin
+0080030b D __malloc_heap_start
+0080030d D __malloc_heap_end
+00800310 B __bss_start
+00800310 D __data_end
+00800310 D _edata
+00800310 B last_slot_time
+00800318 B rtl_param
+00800321 B cycle_callback
+00800323 B _rtl_ready
+00800324 B rtl_task_stack
+008003a4 B rtl_tx_data_ready
+008003a8 B error_task
+008003a9 B _rtl_sync_ok
+008003aa B _rtl_contention_slots
+008003ab B tx_callback
+008003ad B rtl_task
+008003d0 B rtl_tdma_tx_mask
+008003d4 B TaskOne
+008003f7 B state
+008003f8 B rtl_tsync_tx
+008003ff B rtl_rfRxInfo
+00800408 B _rtl_time_token_status
+00800409 B rtl_abs_tx_slot
+0080040b B _nrk_signal_list
+0080040f B num_players
+00800410 B _rtl_contention_pending
+00800411 B rx_buf
+00800485 B sync_pkt
+00800486 B rtl_rx_slot
+00800487 B Stack1
+00800507 B rtl_tdma_rx_mask
+0080050b B nrk_kernel_stk_ptr
+0080050d B player_rx
+00800511 B rx_callback
+00800513 B rtl_rx_data_ready
+00800514 B tx_buf
+00800588 B rtl_abs_tx_ready
+00800589 B slot_callback
+0080058b B rtl_node_mode
+0080058c B abs_callback
+0080058e B rtl_rfTxInfo
+00800595 B error_num
+00800596 B tx_len
+00800597 B last_slot
+00800599 B rtl_rx_buf
+0080060d B nrk_idle_task_stk
+0080068d B player_tx
+00800691 B _rtl_time_token
+00800692 B rtl_tx_info
+008006f5 B rtl_tsync_buf
+008006f8 B app_timer0_callback
+008006fa B tsync_log
+00800702 B rtl_rx_pkt_signal
+00800703 B global_cycle
+00800705 B tsync_delay
+0080070d B slot_start_time
+0080070f B rtl_abs_wakeup
+00800717 B global_slot
+00800719 B _nrk_time_trigger
+0080071a B _dbg_index
+0080071b B last_sync_slot
+0080071d B prev_offset
+0080071f B pkt_log
+00800727 B rtl_drift_rate
+00800729 B current_global_slot
+0080072b B app_timer0_prescale
+0080072c B _tsync_index
+0080072d B _nrk_prev_timer_val
+0080072e B rtl_sched
+0080073e B rtl_sched_cache
+0080075e B rtl_tx_done_signal
+0080075f B rx_ctr
+00800763 B radio_sem
+00800765 B security_enable
+00800766 B mdmctrl0
+00800768 B rfSettings
+00800771 B tmp_blah
+00800773 B auto_ack_enable
+00800774 B last_pkt_encrypted
+00800775 B tx_ctr
+00800779 B rx_ready
+0080077a B _free_node
+0080077c B nrk_task_TCB
+008007df B next_next_wakeup
+008007e1 B nrk_sem_list
+008007e4 B nrk_task_init_cnt
+008007e5 B nrk_wakeup_signal
+008007e6 B nrk_high_ready_TCB
+008007e8 B nrk_cur_task_prio
+008007e9 B _nrk_cpu_state
+008007ea B _head_node
+008007ec B nrk_system_time
+008007f4 B _nrk_resource_cnt
+008007f5 B nrk_cur_task_TCB
+008007f7 B nrk_high_ready_prio
+008007f8 B _nrk_readyQ
+0080080c B ext_int1_callback
+0080080e B ext_int0_callback
+00800810 B ext_int2_callback
+00800812 B pc_int0_callback
+00800814 B __iob
+0080081a B __brkval
+0080081c B __flp
+0080081e B __bss_end
+0080081e A __heap_start
+0080081e A _end
+00810000 A __eeprom_end
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/makefile Sat Dec 11
12:36:09 2010
@@ -0,0 +1,41 @@
+# Platform name cc2420DK, firefly, micaZ, firefly2, firefly2_2
+PLATFORM = firefly2_2
+
+
+# Target file name (without extension).
+TARGET = main
+
+# Set the Port that you programmer is connected to
+ PROGRAMMING_PORT = /dev/tty.usbserial-0000101DB # Default FireFly
serial port
+# PROGRAMMING_PORT = /dev/ttyUSB0 # Default micaZ serial port
+
+# Set this such that the nano-RK directory is the base path
+ROOT_DIR = ../../../../..
+
+# Set platform specific defines
+# The following will be defined based on the PLATFORM variable:
+# PROG_TYPE (e.g. avrdude, or uisp)
+# MCU (e.g. atmega32, atmega128, atmega1281)
+# RADIO (e.g. cc2420)
+include $(ROOT_DIR)/include/platform.mk
+
+
+SRC = $(TARGET).c
+SRC += $(ROOT_DIR)/src/net/rt_link/rt_link.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_scheduler.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_debug.c
+
+# Add extra source files.
+# For example:
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src1.c
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src2.c
+
+# Add extra includes files.
+# For example:
+# EXTRAINCDIRS += $(ROOT_DIR)/src/platform/include
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/platform/$(PLATFORM_TYPE)/
+
+
+# This is where the final compile and download happens
+include $(ROOT_DIR)/include/platform/$(PLATFORM)/common.mk
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/base_station/nrk_cfg.h Sat Dec 11
12:36:09 2010
@@ -0,0 +1,35 @@
+/***************************************************************
+* NanoRK CONFIG *
+***************************************************************/
+
+#ifndef __nrk_cfg_h
+#define __nrk_cfg_h
+
+// NRK_REPORT_ERRORS will cause the kernel to print out information about
+// missed deadlines or reserve violations
+#define NRK_REPORT_ERRORS
+// NRK_HALT_ON_ERRORS will cause the kernel to freeze on errors so that
+// it is easier to see debugging messages.
+#define NRK_HALT_ON_ERROR
+
+// NRK_STACK_CHECK adds a little check to see if the bottom of the stack
+// has been over written on all suspend calls
+#define NRK_STACK_CHECK
+
+// Leave NRK_NO_POWER_DOWN define in if the target can not wake up from
sleep
+// because it has no asynchronously clocked
+// #define NRK_NO_POWER_DOWN
+
+
+
+#define NRK_MAX_TASKS 3 // Max number of tasks in your
application
+#define NRK_N_SYS_TASKS 1 // you need at least the idle task
+
+
+#define NRK_TASK_IDLE_STK_SIZE 128 // Idle task stack size min=32
+#define NRK_APP_STACKSIZE 128
+#define NRK_KERNEL_STACKSIZE 128
+#define NRK_MAX_RESOURCE_CNT 1
+
+
+#endif
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.c Sat Dec 11
12:36:09 2010
@@ -0,0 +1,218 @@
+/*
+ * main.c
+ *
+ *
+ * Created by Philip Asare on 12/6/10.
+ * Copyright 2010 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+#include <nrk.h>
+#include <include.h>
+#include <ulib.h>
+#include <stdio.h>
+#include <avr/sleep.h>
+#include <hal.h>
+#include <rt_link.h>
+#include <nrk_error.h>
+
+/* controller tx slots --> base station rx slots */
+#define C1
+
+#ifdef C1
+#define MY_TX 2
+#define MY_RX 5
+#endif
+
+#ifdef C2
+#define MY_TX 4
+#define MY_RX 7
+#endif
+
+#ifdef C3
+#define MY_TX 6
+#define MY_RX 9
+#endif
+
+#ifdef C4
+#define MY_TX 8
+#define MY_RX 11
+#endif
+
+#define ALL_RX 3
+
+/* game states and controller tracking */
+
+uint8_t state, player_num;
+
+#define SYNC 1
+#define SELECT (1<<1)
+#define PREGAME (1<<2)
+
+/* monome helper functions */
+
+#define type(x) (sizeof(x) + PKT_DATA_START)
+
+typedef struct{
+ uint8_t player;
+} monome_comm_sync_pkt;
+
+monome_comm_sync_pkt sync_pkt_tx, sync_pkt_rx;
+
+inline void monome_set_player_num();
+inline void monome_setup_system();
+inline void monome_comm_init();
+
+uint8_t tx_len;
+
+/* task setup */
+
+NRK_STK Stack1[NRK_APP_STACKSIZE];
+nrk_task_type TaskOne;
+void Task1(void);
+
+inline void monome_comm_init();
+void nrk_create_taskset();
+
+uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+
+int
+main ()
+{
+ uint16_t div;
+ nrk_setup_ports();
+ nrk_setup_uart(UART_BAUDRATE_115K2);
+
+ printf( "Starting up...\r\n" );
+
+
+ nrk_init();
+
+ nrk_led_clr(0);
+ nrk_led_clr(1);
+ nrk_led_clr(2);
+ nrk_led_clr(3);
+
+ nrk_time_set(0,0);
+
+
+ rtl_task_config();
+
+ nrk_create_taskset ();
+
+ nrk_start();
+
+ return 0;
+}
+
+void Task1()
+{
+ //uint8_t j, i;
+ uint8_t *local_rx_buf;
+ uint8_t length,slot;
+ int8_t rssi;
+
+ monome_comm_init();
+ monome_setup_system();
+
+ while(!rtl_ready()) nrk_wait_until_next_period();
+
+ while(1){
+ if( rtl_rx_pkt_check()!=0 )
+ {
+ //nrk_led_set(BLUE_LED);
+ local_rx_buf=rtl_rx_pkt_get(&length, &rssi, &slot);
+ printf( "Got Packet on slot %d %d: \r\n",slot,length );
+ if(length == type(monome_comm_sync_pkt)){
+ if(state & SYNC){
+ //memcpy(&rx_buf[PKT_DATA_START], &sync_pkt_rx,
sizeof(monome_comm_sync_pkt));
+ player_num = local_rx_buf[PKT_DATA_START];
+ monome_set_player_num();
+ rtl_rx_pkt_release();
+ }
+ }
+ }
+ if(state & SYNC){
+ printf("waiting to sync\r\n");
+ while( rtl_tx_pkt_check(MY_TX)!=0 );
+ memcpy(&tx_buf[PKT_DATA_START], &sync_pkt_tx,
sizeof(monome_comm_sync_pkt));
+ tx_len = type(monome_comm_sync_pkt);
+ rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ rtl_wait_until_tx_done(MY_TX);
+ }
+
+ else{
+ printf("synced as player %d\r\n", player_num);
+ }
+ nrk_wait_until_next_period();
+ }
+}
+
+void
+nrk_create_taskset()
+{
+
+
+ TaskOne.task = Task1;
+ TaskOne.Ptos = (void *) &Stack1[NRK_APP_STACKSIZE-1];
+ TaskOne.Pbos = (void *) &Stack1[0];
+ TaskOne.prio = 2;
+ TaskOne.FirstActivation = TRUE;
+ TaskOne.Type = BASIC_TASK;
+ TaskOne.SchType = PREEMPTIVE;
+ TaskOne.period.secs = 1;
+ TaskOne.period.nano_secs = 0;
+ TaskOne.cpu_reserve.secs = 0;
+ TaskOne.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ TaskOne.offset.secs = 0;
+ TaskOne.offset.nano_secs= 0;
+ nrk_activate_task (&TaskOne);
+
+
+ printf ("Create done\r\n");
+}
+
+inline void monome_comm_init(){
+ rtl_init (RTL_MOBILE);
+
+ /* rx schedules */
+ rtl_set_schedule( RTL_RX, MY_RX, 1 );
+ rtl_set_schedule( RTL_RX, ALL_RX, 1 );
+
+ /* tx schedules */
+ rtl_set_schedule( RTL_TX, MY_TX, 1 );
+
+ rtl_start();
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+}
+
+inline void monome_setup_system(){
+ state = 0 | SYNC;
+ player_num = -1;
+ sync_pkt_tx.player = -1;
+
+}
+
+inline void monome_set_player_num(){
+ printf("setting player\r\n");
+ //player_num = sync_pkt_rx.player;
+ printf("player number: %d\r\n", player_num);
+ switch (player_num) {
+ case 0:
+ nrk_led_set(RED_LED);
+ break;
+ case 1:
+ nrk_led_set(GREEN_LED);
+ break;
+ case 2:
+ nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);
+ break;
+ case 3:
+ nrk_led_set(BLUE_LED);
+ break;
+ default:
+ break;
+ }
+ state = 0 | SELECT;
+}
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.d Sat Dec 11
12:36:09 2010
@@ -0,0 +1,17 @@
+main.o main.d : main.c ../../../../../src/kernel/include/nrk.h \
+ ../../../../../src/kernel/hal/include/nrk_cpu.h nrk_cfg.h \
+ ../../../../../src/kernel/include/nrk_time.h \
+ ../../../../../src/platform/firefly2_2/include/include.h \
+ ../../../../../src/platform/firefly2_2/include/hal.h \
+ ../../../../../src/platform/firefly2_2/include/hal_firefly2_2.h \
+ ../../../../../src/radio/cc2420/include/hal_cc2420.h \
+ ../../../../../src/radio/cc2420/hal/atmega1281/cc2420_mcu_hal.h \
+ ../../../../../src/radio/cc2420/platform/firefly2_2/cc2420_platform_hal.h
\
+ ../../../../../src/radio/cc2420/include/basic_rf.h \
+ ../../../../../src/kernel/include/nrk_events.h \
+ ../../../../../src/platform/include/ulib.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_pin_define.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_platform_time.h \
+ ../../../../../src/kernel/include/nrk_task.h \
+ ../../../../../src/net/rt_link/rt_link.h \
+ ../../../../../src/kernel/include/nrk_error.h
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.elf Sat Dec 11
12:36:09 2010
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.hex Sat Dec 11
12:36:09 2010
@@ -0,0 +1,1699 @@
+:100000000C948F010C94922E0C94642E0C94AE01DF
+:100010000C94AE010C94AE010C94AE010C94AE01A4
+:100020000C94AE010C94C02E0C94AE010C94AE0155
+:100030000C94AE010C94452C0C94AE010C94452C00
+:100040000C94AE010C94782C0C94AE010C94AE017F
+:100050000C94AE010C94AE010C94AE010C94AE0164
+:100060000C94AE010C94AE010C94AE010C94AE0154
+:100070000C94AE010C94AE010C94AE010C94AE0144
+:100080000C94822C0C94AE010C94AE010C94AE0135
+:100090000C94AE010C94AE010C94AE010C94AE0124
+:1000A0000C94AE010C94AE010C94AE010C94AE0114
+:1000B0000C94AE010C94AE010C94AE010C94AE0104
+:1000C0000C94AE010C94AE010C94AE01DD1EE31E47
+:1000D000E61EE91EEC1EEF1EF51EF21EF81EFB1EAC
+:1000E000FE1E041F071F0A1F0D1F011FDA1EE01E40
+:1000F00052542D4C696E6B204552524F523A206338
+:1001000072656174696E67207478207369676E61C7
+:100110006C206661696C65640D0A0052542D4C694F
+:100120006E6B204552524F523A206372656174697A
+:100130006E67207278207369676E616C20666169F2
+:100140006C65640D0A00554E4B4F574E0046616971
+:100150006C656420746F20637265617465205365FB
+:100160006D6170686F7265004661696C65642074CA
+:100170006F20637265617465205369676E616C00FE
+:100180004B65726E656C2066756E6374696F6E2068
+:100190006E6F7420696D706C656D656E746564005A
+:1001A000446576696365204472697665722045729C
+:1001B000726F72005761746368646F672052657371
+:1001C000746172740054696D6572204F7665726651
+:1001D0006C6F7700556E68616E646C656420496E63
+:1001E0007465727275707420566563746F72004C1A
+:1001F0006F7720566F6C7461676500457874726123
+:10020000205461736B20737461727465642C20696F
+:1002100073206E726B5F6366672E68206F6B3F00A2
+:1002200049646C65206F72204B65726E656C20535B
+:100230007461636B204F766572666C6F7700556EE4
+:100240006578706563746564205265737461727457
+:10025000004475706C696361746564205461736BEC
+:10026000204944005363686564756C6572204D696C
+:10027000737365642057616B657570005461736BAF
+:1002800020526573657276652056696F6C6174657E
+:10029000640052657365727665204572726F7220D4
+:1002A000696E205363686564756C657200496E768B
+:1002B000616C696420537461636B20506F696E7464
+:1002C0006572005461736B20537461636B204F76C9
+:1002D0006572666C6F7700537461636B207761732E
+:1002E000206E6F7420646566696E6564206173209A
+:1002F0006C6172676520656E6F7567682100293AC9
+:1003000020002A4E524B204552524F5228000D0ACF
+:10031000535441434B2044554D500D0A00001124C5
+:100320001FBECFEFD1E2DEBFCDBF13E0A0E0B2E051
+:10033000E0E1F9E600E00BBF02C007900D92A230A9
+:10034000B107D9F718E0A2E0B3E001C01D92A930CF
+:10035000B107E1F70E9460020C9487340C94B02C32
+:1003600081E08093EA038FEF8093FC038093C603C0
+:10037000089580E092E00E94A1328091FC039927C9
+:100380009F938F9380E192E09F938F930E9481329D
+:100390000F900F900F900F908091FC03813071F0BF
+:1003A000813028F0823031F0833079F40AC083E064
+:1003B00090E009C083E090E00E94231B82E090E07F
+:1003C00002C081E090E00E94231B82E08093EA0358
+:1003D000089580E00E94360441E065E080E00E94DC
+:1003E000810A41E063E080E00E94810A41E062E02E
+:1003F00081E00E94810A0E94F20364E785E094E0B4
+:100400000E948D03089584E992E09093CD03809338
+:10041000CC0389EF94E09093C9038093C8038AE7E3
+:1004200094E09093CB038093CA0382E08093CF0340
+:1004300081E08093CE038093D0038093D10381E049
+:1004400090E0A0E0B0E08093D2039093D303A09318
+:10045000D403B093D5031092D6031092D703109211
+:10046000D8031092D9031092DA031092DB03109292
+:10047000DC031092DD0380E092ECABEEBBE08093F6
+:10048000DE039093DF03A093E003B093E1031092A7
+:10049000E2031092E3031092E4031092E50310923A
+:1004A000E6031092E7031092E8031092E90387EC49
+:1004B00093E00E94292684E292E00E94A1320895EE
+:1004C000CFEFD1E2DEBFCDBF0E94661787E090E09C
+:1004D0000E949B1B81E392E00E94A1320E94F61DC4
+:1004E00080E090E00E94061B81E090E00E94061BE5
+:1004F00082E090E00E94061B83E090E00E94061BD1
+:1005000020E030E040E050E060E070E080E090E02B
+:100510000E948D270E949D030E9403020E94961D47
+:1005200080E090E00C9487342F923F924F925F923C
+:100530006F927F928F929F92AF92BF92CF92DF92F3
+:10054000EF92FF920F931F93CF93DF93CDB7DEB758
+:1005500023970FB6F894DEBF0FBECDBF0E94E9010E
+:1005600081E08093EA038FEF8093FC038093C603BE
+:1005700002C00E94EB250E9439038823D1F352E088
+:10058000252E312C2C0E3D1E43E0442E512C4C0EBA
+:100590005D1E3E010894611C711C31E4832E32E023
+:1005A000932E2FE6A22E22E0B22E9EE5C92E92E0D7
+:1005B000D92E83E0E82E85E0F82E0E946E03882372
+:1005C00049F1A101B201C3010E94480A8C0189814D
+:1005D00099279F938F938A8199279F938F939F92B7
+:1005E0008F920E9481328DB79EB706960FB6F8940F
+:1005F0009EBF0FBE8DBF8981843061F48091EA0374
+:1006000080FF08C0F80183818093FC030E94B90138
+:100610000E9450038091EA0380FF18C0C6010E9427
+:10062000A13282E00E9453038823D9F78091C60348
+:100630008093060584E08093850542E064E0C7016D
+:100640000E946B0782E00E940F0A0DC08091FC039C
+:1006500099279F938F93BF92AF920E9481320F9000
+:100660000F900F900F900E94EB25A7CF8FEF9FEF79
+:10067000089580911503813019F481E090E0089588
+:100680008FEF9FEF089580911407909115070895BB
+:1006900080919B0399270895809177059927089564
+:1006A000109202050895282F813231F480910404BC
+:1006B000992787FD909508958091960390919703CF
+:1006C000A0919803B091990304C0B695A79597950A
+:1006D00087952A95D2F781709070089580910205D0
+:1006E000992787FD909508959093140380931303A1
+:1006F0000895909379058093780508959093010566
+:1007000080930005089590939E0380939D03089520
+:1007100090937C0580937B050895662359F000979C
+:1007200049F09093F8038093F7036093F60381E018
+:1007300090E008958FEF9FEF08950F931F938FEA36
+:1007400097E09093A5038093A4030FE913E040E89A
+:1007500050E066E173E0C8010E949C2F84E1809321
+:10076000A70381E08093A6038093A8038093A90345
+:100770001092AA031092AB031092AC031092AD0337
+:100780008BE49CE1A6E8B0E08093AE039093AF03C6
+:10079000A093B003B093B1031092B2031092B303CD
+:1007A0001092B4031092B5031092B6031092B703DF
+:1007B0001092B8031092B9031092BA031092BB03BF
+:1007C0001092BC031092BD031092BE031092BF039F
+:1007D0001092C0031092C103C8010E9429261F91E4
+:1007E0000F91089580917A058230B1F48091C2030F
+:1007F0009091C303A091C403B091C50380FF07C0CB
+:100800008091190799278F70907005972CF044E01C
+:1008100060E081E00E94810A0E942D0C82E08093BA
+:10082000150308950F931F93CF93DF93062F8093A3
+:100830009C038823B1F01FE1CFE1D0E0C81BD109B0
+:100840000BC0402F612F80E00E94810A402F612F52
+:1008500081E00E94810A1150812F9927C817D9077A
+:1008600084F3DF91CF911F910F9108951F93182F5B
+:100870000E9450208093ED068F3F19F48BE191E0A8
+:1008800008C00E945020809349078F3F69F480EF91
+:1008900090E00E94BC1BE091E007F091E1076085C9
+:1008A0008EE00E94491F7DC01092F8031092F7035A
+:1008B0001092F6030E94852B1092FB0310927C0687
+:1008C00010920707109206071092EF061092EE069C
+:1008D00081E094E0909303078093020710929B03BA
+:1008E00010937A0510929C03109204041092010553
+:1008F0001092000510929E0310929D0310927C05A9
+:1009000010927B05109279051092780510921403CD
+:100910001092130384E68093120380E49FE1909386
+:1009200011038093100380EA9FE090930F0380935C
+:100930000E038AE080930C0380E899E190930B0307
+:1009400080930A03E9E1F7E0119287E0E932F807C2
+:10095000D9F71092FA041092FB041092FC04109242
+:10096000FD041092C2031092C3031092C4031092AC
+:10097000C5031092020510929603109297031092ED
+:100980009803109299030E944F0B20910A03309113
+:100990000B0360910C0340E254E282EF93E00E946B
+:1009A00053161F9108950E94430E08951F93CF93ED
+:1009B000DF93182F80919B03882309F484C0E09172
+:1009C0009D03F0919E03309711F0812F0995C12F5F
+:1009D000DD27FE01EE0FFF1FEC0FFD1FE358F94F5F
+:1009E000818192819093810580938005808180939D
+:1009F0007F05E0918005F09181058091020790913B
+:100A00000307892F99278083E0918005F091810564
+:100A100080910207909103078183E0918005F09116
+:100A2000810580917C06828380917F05833011F05F
+:100A300010E008C0E0918005F09181058281806816
+:100A4000828311E040910E0350910F036091F806EC
+:100A50007091F9068DE795E00E94811321E030E066
+:100A600040E050E00C2E04C0220F331F441F551FDE
+:100A70000A94D2F720953095409550958091960331
+:100A800090919703A0919803B091990382239323A7
+:100A9000A423B5238093960390939703A093980380
+:100AA000B093990320919C0380E290E0821B91090E
+:100AB000C817D90714F010920404112321F480916F
+:100AC00049070E94B321DF91CF911F9108950F93A1
+:100AD0001F93CF93DF93CDB7DEB722970FB6F8946D
+:100AE000DEBF0FBECDBF082F60910C0382EF93E0F5
+:100AF0000E9435160E94E00E0E94412C99279A838D
+:100B0000898389819A8104969A8389830BC00E9484
+:100B1000412C29813A8199272817390718F40E9416
+:100B2000F40E56C00E94130F882389F30E94412CB3
+:100B300099279A8389830E94412C99279A838983D4
+:100B400089819A8105969A83898308C00E94412CE5
+:100B500029813A8199272817390728F00E941D0F0B
+:100B6000182F882399F30E94F40E113089F5109301
+:100B7000020500937904E091F703F091F803808176
+:100B80009927982F882721813327282B392B80916B
+:100B90000207909103072817390721F030930307C4
+:100BA00020930207E0910005F0910105309711F0C4
+:100BB000802F0995E091F703F091F803828187FD7A
+:100BC00005C08091ED060E94B32102C0109202057B
+:100BD00022960FB6F894DEBF0FBECDBFDF91CF9146
+:100BE0001F910F910895CF93DF93EC01FA01842FA9
+:100BF0008F7121E030E040E050E004C0220F331F4D
+:100C0000441F551F8A95D2F78091C2039091C30368
+:100C1000A091C403B091C503282339234A235B2341
+:100C2000211531054105510519F080E090E013C010
+:100C3000D093E206C093E1066093E006F093FE03D2
+:100C4000E093FD0360E0CF010E94620B81E080939E
+:100C5000770581E090E0DF91CF910895AF92BF9248
+:100C6000CF92DF92EF92FF920F931F93CF93DF9378
+:100C7000CDB7DEB722970FB6F894DEBF0FBECDBF5B
+:100C8000CC24DD24EE2462EFA62E63E0B62EE091A4
+:100C9000F703F091F8038FEF8083E091F703F09171
+:100CA000F803818360910C03C5010E9435160E94F0
+:100CB000E00E10929B038AEF0E94D22B10E01EC020
+:100CC0000E94412C1817D1F00E94412C182F089433
+:100CD000C11CD11C21E1C21627E2D20678F0109285
+:100CE0007C06E39485E08E1518F0CC24DD240BC03F
+:100CF0000E94232FCC24DD24EE2405C00E94130F74
+:100D0000F82E8823E9F20E94892B0E94912B9A8366
+:100D100089830E94412C082F11270C5F1F4FFF2051
+:100D200061F006C00E94412C99270817190728F086
+:100D30000E941D0FF82E8823A9F30E94F40E21E0D3
+:100D4000F21609F0A4CF8091F50318160CF09FCF8E
+:100D5000F0920205E091F703F091F8038081992762
+:100D600090930307809302078091020790910307F5
+:100D7000982F8827909303078093020720910207FA
+:100D80003091030781819927822B932B909303073E
+:100D9000809302072281122F1F7780917C06811792
+:100DA00030F08F3608F473CF1A3008F070CF80918E
+:100DB0000207909103078F718093790427FD18C073
+:100DC000209179048091FA049091FB04A091FC0495
+:100DD000B091FD0404C0B695A795979587952A957F
+:100DE000D2F780FF05C08091ED060E94B32102C0BA
+:100DF0001092020580910207909103078F718093F2
+:100E00007904809102079091030701979093150749
+:100E1000809314071092FB0310937C0681E080936B
+:100E20009B0380910607909107070E94A30B809176
+:100E30000207909103078050944030F4809102079C
+:100E400090910307029718F48EEF93E005C080910C
+:100E50000207909103070297909307078093060774
+:100E600060E080910607909107070E94620B0E9444
+:100E70002D0C0E94AC2B0E94C32B87E00E94B72B45
+:100E800066E67CE680E090E00E94C62C0E94C32BC0
+:100E90000E94BA2B0E94892B0E94912B9093F906F5
+:100EA0008093F80680919B03992722960FB6F894B9
+:100EB000DEBF0FBECDBFDF91CF911F910F91FF908D
+:100EC000EF90DF90CF90BF90AF90089580930C0388
+:100ED0000E94501608951F93CF93DF93EC01162FB5
+:100EE000413261F40E94EB3160919C0377270E94AC
+:100EF00023344FE1481B81E080930404842F992719
+:100F0000FC01EE0FFF1FE80FF91FE358F94FD283E2
+:100F1000C183108321E030E040E050E004C0220FA4
+:100F2000331F441F551F8A95D2F7809196039091E5
+:100F30009703A0919803B0919903822B932BA42B34
+:100F4000B52B8093960390939703A0939803B09347
+:100F5000990381E090E0DF91CF911F9108956F9206
+:100F60007F928F929F92AF92BF92DF92EF92FF9209
+:100F70000F931F93CF93DF93109215030E94EB25DD
+:100F8000809115038823D1F381E08093150310929B
+:100F900087051092860582E093E00E94042912E002
+:100FA000612E13E0712EB0EE8B2EB6E09B2EABEED1
+:100FB000AA2EA3E0BA2E0E94912B9093F90680935B
+:100FC000F806C3010E94042980910207909103074B
+:100FD00090938705809386058150944021F4109268
+:100FE00087051092860580910207909103079093E0
+:100FF0001507809314078091020790910307805092
+:10100000944008F110920307109202078091EE06B7
+:101010009091EF0601969093EF068093EE06E09193
+:101020001303F0911403309729F08091EE0690910C
+:10103000EF0609950E942D0C80917A05823019F4F3
+:1010400081E080939B03E0917805F09179053097DA
+:1010500029F08091020790910307099580917A0504
+:10106000882381F4209102073091030780910607BD
+:101070009091070701962817390721F40E942E0640
+:101080008823E1F380910207909103070E94D80B17
+:10109000813059F4E0917B05F0917C05309729F07F
+:1010A0008091020790910307099580910207909122
+:1010B00003070E944F0CEC018091020790910307F7
+:1010C0000E940C0C009739F0209709F40AC18C1784
+:1010D0009D0758F406C1209741F480910207909132
+:1010E0000307C0E0D4E0C81BD90B809102079091A0
+:1010F0000307FFE1DF2ED82280917A05823099F430
+:101100008091020790910307892B09F0ECC0809130
+:101110007C068F5F80937C0687FFE5C010927C067B
+:10112000E2C01092FB034D2D5527E1E0EE2EF12C8D
+:10113000012D112D042E04C0EE0CFF1C001F111FE9
+:101140000A94D2F78091FB03882309F043C0809171
+:10115000C2039091C303A091C403B091C5038E2133
+:101160009F21A023B1230097A105B10599F180919A
+:10117000960390919703A0919803B09199038E21C3
+:101180009F21A023B1230097A105B10501F59092FD
+:10119000EF038092EE038091E20680688093E2067E
+:1011A00083E08093ED0320919C0380E290E0821B1A
+:1011B00091098417950734F480910404882339F445
+:1011C00041E201C04D2D63E0C5010E946B0781E043
+:1011D0008093FB032091020730910307809106075B
+:1011E000909107072817390709F448C08091C20376
+:1011F0009091C303A091C403B091C50320919603BD
+:10120000309197034091980350919903822393233F
+:10121000A423B5238E219F21A023B1230097A105EC
+:10122000B10521F08D2D0E94D60428C08091FA04CA
+:101230009091FB04A091FC04B091FD048E219F21AC
+:10124000A023B1230097A105B10541F080910205CB
+:10125000882321F48D2D0E94670510C0209102077C
+:10126000309103078091FD039091FE032817390701
+:1012700029F481E20E94D60410927705209102079A
+:1012800030910307809106079091070728173907C7
+:1012900091F480917A05823071F0809102079091EB
+:1012A00003070196909303078093020785E090E07F
+:1012B0000E94562580CE80910207909103078C0FE3
+:1012C0009D1F909303078093020780E090E00E94A7
+:1012D000061BCE010E94B82580E090E00E94231BEF
+:1012E0006ACEEC0102CFDD2009F41BCF1CCF6F9238
+:1012F0007F928F929F92AF92BF92CF92DF92EF92A6
+:10130000FF920F931F93CF93DF93CDB7DEB728974C
+:101310000FB6F894DEBF0FBECDBF3E010894611C2E
+:10132000711CC3010E940429809002039090030362
+:10133000A0900403B0900503C0900603D09007036B
+:10134000E0900803F090090309811A812B813C8108
+:101350004D815E816F817885C3010E947F266981FE
+:101360007A818B819C8120E03AEC4AE95BE30E9420
+:10137000F0339B01AC016D817E818F819885620F76
+:10138000731F841F951F28EA3BE246E850E00E9445
+:101390003634DA01C9012091860530918705820F24
+:1013A000931F28960FB6F894DEBF0FBECDBFDF9116
+:1013B000CF911F910F91FF90EF90DF90CF90BF9052
+:1013C000AF909F908F907F906F9008958091ED06E1
+:1013D0000E94D920809149070E94D92021E030E065
+:1013E00040E050E0CA01B9010090490704C0660F0F
+:1013F000771F881F991F0A94D2F70090ED0604C04A
+:10140000220F331F441F551F0A94D2F7622B732BF0
+:10141000842B952B0E94052381E090E008951F9373
+:10142000182F809149070E94D9200FC061E070E019
+:1014300080E090E00090490704C0660F771F881F86
+:10144000991F0A94D2F70E940523812F0E9453030B
+:10145000882361F781E090E01F9108958091ED0667
+:101460000E94D92080910205882379F461E070E020
+:1014700080E090E00090ED0604C0660F771F881FA3
+:10148000991F0A94D2F70E94052381E090E0089505
+:10149000CF93DF93FC01DB01EA01809102058823F1
+:1014A00031F410821C92188280E090E00DC080918F
+:1014B000F50380838091FA038C938091790488836B
+:1014C0008091F7039091F803DF91CF910895809177
+:1014D0001503813019F08FEF9FEF08958091ED068D
+:1014E000992787FD9095089580911503813019F013
+:1014F0008FEF9FEF089580914907992787FD909579
+:1015000008951F93142F403108F052C0603208F044
+:101510004FC0E62FFF2721E030E040E050E00E2EE4
+:1015200004C0220F331F441F551F0A94D2F788238B
+:10153000A9F48091FA049091FB04A091FC04B0916D
+:10154000FD04822B932BA42BB52B8093FA0490934C
+:10155000FB04A093FC04B093FD0414C08091C2036B
+:101560009091C303A091C403B091C503822B932B28
+:10157000A42BB52B8093C2039093C303A093C40301
+:10158000B093C50366957727E0FD06C0FB01E75ED3
+:10159000F84F8081807F07C0FB01E75EF84F8081B4
+:1015A0001295107F8F70812B808381E090E002C0C4
+:1015B0008FEF9FEF1F910895982F803218F08FEFD3
+:1015C0009FEF08958695E82FFF2790FD09C0E75EFD
+:1015D000F84F8081992787FD90958F7090700895BE
+:1015E000E75EF84F808182958F70992787FD9095EF
+:1015F0000895782F603208F04FC0E62FFF2781E072
+:1016000090E00E2E02C0880F991F0A94E2F79C0109
+:10161000442737FD4095542F20953095409550959F
+:101620007723A9F48091FA049091FB04A091FC0423
+:10163000B091FD0482239323A423B5238093FA045D
+:101640009093FB04A093FC04B093FD0414C080911C
+:10165000C2039091C303A091C403B091C503822338
+:101660009323A423B5238093C2039093C303A09331
+:10167000C403B093C50366957727E0FD06C0FB0160
+:10168000E75EF84F8081807F05C0FB01E75EF84F81
+:1016900080818F70808308958FEF9FEF089581E0A0
+:1016A00094E09093FB068093FA069093FD06809356
+:1016B000FC069093FF068093FE06909301078093AB
+:1016C000000708959C018091FA069091FB069F7790
+:1016D0008150944018F080E090E023C08091FC0697
+:1016E0009091FD069F778150944018F081E090E042
+:1016F00018C08091FE069091FF069F77815094401C
+:1017000018F082E090E00DC08091000790910107F1
+:101710009F778150944018F48FEF9FEF089583E0F6
+:1017200090E0FC01EE0FFF1FE650F94F318320835C
+:10173000662319F481E090E00895306831832083B6
+:1017400081E090E008959C018091FA069091FB065B
+:101750009F778217930719F4E0E0F0E020C08091B2
+:10176000FC069091FD069F778217930719F4E1E03C
+:10177000F0E015C08091FE069091FF069F778217DA
+:10178000930719F4E2E0F0E00AC08091000790911D
+:1017900001079F778217930751F4E3E0F0E0EE0F23
+:1017A000FF1FE650F94F81E094E091838083089514
+:1017B000AC012091FA063091FB06C9019F7784178E
+:1017C0009507F1F02091FC063091FD06C9019F7745
+:1017D00084179507A9F02091FE063091FF06C901F4
+:1017E0009F778417950761F02091000730910107DA
+:1017F000C9019F778417950719F080E090E008955C
+:101800002150304818F081E090E00895CA010E940C
+:10181000A30B81E090E00895AC01EAEFF6E081E0EF
+:1018200094E0208131813F7764E02030360748F42E
+:10183000241B350B1216130624F4281739070CF451
+:10184000C901329627E0E230F20759F764E08130AF
+:10185000960711F480E090E00895E9E2F7E0119234
+:1018600087E0E934F807D9F70895582F662319F46B
+:1018700081E090E00895482F20E030E07727615024
+:10188000704003C0459F402D1124822F99272F5F60
+:101890003F4F86179707B4F3842F99270895AF9287
+:1018A000BF92CF92DF92EF92FF921F93CF93DF937D
+:1018B0005C0169E2C62E67E0D62E51E0E52E54E0C9
+:1018C000F52EC0E0D0E08C2F0E94DC0A682F882320
+:1018D00001F1F6011081615082E00E94350C212F48
+:1018E000332745E0220F331F4A95E1F72C0F3D1FA8
+:1018F000A216B30610F0180FF2CFF6011083C9013B
+:101900008A199B098E159F0520F42150344008F454
+:101910007C0121960894C11CD11CC032D10599F6D6
+:1019200041E0E41644E0F40610F0EE24FF24C70181
+:10193000DF91CF911F91FF90EF90DF90CF90BF90FC
+:10194000AF9008952091080730910907AC01421B20
+:10195000530B5093130740931207909309078093FA
+:101960000807089580911207909113070895EAE0FF
+:10197000F7E08FEF819397E0E231F907D1F7809399
+:10198000E5061092050710920907109208070895BE
+:10199000982F969595758575980F892F86958695BC
+:1019A00083739373890F982F9F7082958F70890F1F
+:1019B000992708951F93CF93DF93CAE0D7E010E0F3
+:1019C00089910E94C80C180F87E0C231D807C1F76F
+:1019D000812F9927DF91CF911F9108958091E5067E
+:1019E0000E94C80C9927089540910507E42FE695B9
+:1019F000E695E695FF27E65FF84F842F99278095B7
+:101A000090958770907021E030E002C0220F331F64
+:101A10008A95E2F78081822B80834F5F4093050790
+:101A2000413410F010920507089540910507E42F06
+:101A3000E695E695E695FF27E65FF84F242F3327D6
+:101A4000209530952770307081E090E002C0880FBB
+:101A5000991F2A95E2F780952081822380834F5F2A
+:101A600040930507413410F010920507089588301F
+:101A700018F080E090E00895E82FFF27E051F94F3B
+:101A800080819927089540911707E42FE695E69500
+:101A9000E695FF27A42FBB27EB51F94FCD01809589
+:101AA00090958770907021E030E002C0220F331FC4
+:101AB0008A95E2F78081822B8083A051B94F1C92D6
+:101AC0004F5F40931707493010F0109217070895A1
+:101AD00060911707E62FE695E695E695FF27A62F76
+:101AE000BB27EB51F94FAD014095509547705070B1
+:101AF00021E030E002C0220F331F4A95E2F7209523
+:101B0000908129232083A051B94F8C936F5F6093FC
+:101B10001707693010F010921707089599279C0154
+:101B2000265A3E4B0B97880F991F880F991F280F35
+:101B3000391FF894409888E18EBD0DB407FEFDCFA3
+:101B4000832F99278EBD0DB407FEFDCF2EBD0DB49A
+:101B500007FEFDCF409A78940895F89440981EBCF3
+:101B60000DB407FEFDCF8EB5409A789486FFF5CF71
+:101B7000089580915F0799270895CF93DF93DC0143
+:101B8000409889EC8EBD0DB407FEFDCF80E88EBD78
+:101B90000DB407FEFDCF92E09150FD01E90FF11D5C
+:101BA00080818EBD0DB407FEFDCF9923A9F7409A21
+:101BB00040988BEC8EBD0DB407FEFDCF80E88EBD46
+:101BC0000DB407FEFDCF92E09D012E5F3F4FE9016E
+:101BD0009150F901E90FF11D80818EBD0DB407FE12
+:101BE000FDCF9923A1F7409A8C9180936007FD0166
+:101BF00081818093610788818093620783818093CC
+:101C00006307DF91CF910895409889E18EBD0DB4AF
+:101C100007FEFDCF83E08EBD0DB407FEFDCF86E04D
+:101C20008EBD0DB407FEFDCF409A40988AE18EBD6F
+:101C30000DB407FEFDCF8EE08EBD0DB407FEFDCFC7
+:101C40008EE08EBD0DB407FEFDCF409A81E08093FB
+:101C500050070895409889E18EBD0DB407FEFDCF71
+:101C600081E08EBD0DB407FEFDCF84EC8EBD0DB4BA
+:101C700007FEFDCF409A10925007089580914E07BD
+:101C800090914F070895282F33272F713070206EC1
+:101C9000306A409885E18EBD0DB407FEFDCF832FDD
+:101CA00099278EBD0DB407FEFDCF2EBD0DB407FEE6
+:101CB000FDCF409A08952091510730915207386026
+:101CC0003093520720935107409881E18EBD0DB4A7
+:101CD00007FEFDCF832F99278EBD0DB407FEFDCFE4
+:101CE0002EBD0DB407FEFDCF409A089520915107F7
+:101CF00030915207377F3093520720935107409815
+:101D000081E18EBD0DB407FEFDCF832F99278EBDD7
+:101D10000DB407FEFDCF2EBD0DB407FEFDCF409ADA
+:101D2000089581E080935E0720915107309152071A
+:101D300020613093520720935107409881E18EBD76
+:101D40000DB407FEFDCF832F99278EBD0DB407FE7E
+:101D5000FDCF2EBD0DB407FEFDCF409A0895109221
+:101D60005E0720915107309152072F7E3093520722
+:101D700020935107409881E18EBD0DB407FEFDCF41
+:101D8000832F99278EBD0DB407FEFDCF2EBD0DB458
+:101D900007FEFDCF409A089581E080935B0740984D
+:101DA00083E08EBD0DB407FEFDCF409A409888E0D9
+:101DB0008EBD0DB407FEFDCF409A109264070895C2
+:101DC00081E080935B07409883E08EBD0DB407FEF1
+:101DD000FDCF409A409888E08EBD0DB407FEFDCF40
+:101DE000409A10926407089510925B07409886E02D
+:101DF0008EBD0DB407FEFDCF409A10926407089582
+:101E000089B1992776E0969587957A95E1F7817063
+:101E1000907008958CB1992787FD90958827990F28
+:101E2000881F9927089589B19927F6E09695879597
+:101E3000FA95E1F7817090700895CF93DF93CDB755
+:101E4000DEB724970FB6F894DEBF0FBECDBF6799FB
+:101E500003C080E090E00FC210925F07679B1FC035
+:101E600031991DC040988FE78EBD0DB407FEFDCFA0
+:101E70001EBC0DB407FEFDCF8EB5409A409888E099
+:101E80008EBD0DB407FEFDCF409A409888E08EBD10
+:101E90000DB407FEFDCF409A8FEF9FEFECC1409845
+:101EA0008FE78EBD0DB407FEFDCF1EBC0DB407FE3F
+:101EB000FDCF4EB5409A4F77E9F440988FE78EBD3D
+:101EC0000DB407FEFDCF1EBC0DB407FEFDCF8EB5D1
+:101ED000409A409888E08EBD0DB407FEFDCF409A31
+:101EE000409888E08EBD0DB407FEFDCF409A8EEF7E
+:101EF0009FEFC1C145308CF0E0915307F09154073A
+:101F0000242F332727FD30952B503040848199278B
+:101F100087FD909582179307C4F540988FE78EBD93
+:101F20000DB407FEFDCF60E070E0242F332727FDBE
+:101F3000309506C01EBC0DB407FEFDCF6F5F7F4F0E
+:101F4000862F99278217930714F43199F3CF409A7B
+:101F500040988FE78EBD0DB407FEFDCF1EBC0DB4BB
+:101F600007FEFDCF8EB5409A409888E08EBD0DB437
+:101F700007FEFDCF409A409888E08EBD0DB407FE65
+:101F8000FDCF409A8DEF9FEF76C1E0915307F0911E
+:101F900054074C50438340988FE78EBD0DB407FE25
+:101FA000FDCFFE0131969E012D5F3F4F1EBC0DB44B
+:101FB00007FEFDCF8EB58193E217F307B9F7409A7C
+:101FC000E0915307F091540789819A81A5E0969595
+:101FD0008795AA95E1F78170878340988FE78EBD3A
+:101FE0000DB407FEFDCF1EBC0DB407FEFDCFE09182
+:101FF0005307F09154078EB58083409A40988FE73D
+:102000008EBD0DB407FEFDCF80E007C01EBC0DB431
+:1020100007FEFDCF8F5F843011F03199F7CF409AE2
+:1020200040988FE78EBD0DB407FEFDCF20E030E075
+:102030001EBC0DB407FEFDCFE0915307F09154078D
+:10204000E20FF31F8EB581832F5F3F4F22303105A2
+:1020500079F7409A89819A8183FF56C040988FE72B
+:102060008EBD0DB407FEFDCFEAE4F7E01EBC0DB453
+:1020700007FEFDCF8EB5819387E0EE34F807B1F708
+:10208000409A409889E98EBD0DB407FEFDCF80E8E7
+:102090008EBD0DB407FEFDCF92E09150E92FFF27D2
+:1020A000E65BF84F80818EBD0DB407FEFDCF99230E
+:1020B000A1F7409A40988BE98EBD0DB407FEFDCF85
+:1020C00080E88EBD0DB407FEFDCF92E09150E92F60
+:1020D000FF27E45BF84F80818EBD0DB407FEFDCF76
+:1020E0009923A1F7409A40988CE08EBD0DB407FE6D
+:1020F000FDCF409A81E080935F07E0915307F09114
+:10210000540783818450838340988FE78EBD0DB43C
+:1021100007FEFDCF40E050E011C01EBC0DB407FE2D
+:10212000FDCFE0915307F09154070580F681E02D33
+:10213000E60FF11D8EB580834F5F5F4F642FE091F6
+:102140005307F0915407242F33278381992787FD64
+:102150009095281739070CF3409A40988FE78EBD69
+:102160000DB407FC0AC0FCCF0DB407FEFDCF5EB571
+:10217000409A40988FE78EBD02C01EBCF5CF0DB4CB
+:1021800007FEFDCFFE0133969E012B5F3F4F1EBC25
+:102190000DB407FEFDCF8EB58193E217F307B9F7B3
+:1021A000409AE0915307F09154078B81808740E07B
+:1021B00020E030E00AC0E0915307F0915407858198
+:1021C0009681A80FB91F8C91480F822FE091530779
+:1021D000F09154072F5F3F4FA82FBB27838199278A
+:1021E00087FD9095A817B90734F34517E9F0409893
+:1021F0008FE78EBD0DB407FEFDCF1EBC0DB407FEEC
+:10220000FDCF8EB5409A409888E08EBD0DB407FE94
+:10221000FDCF409A409888E08EBD0DB407FEFDCFFB
+:10222000409A8CEF9FEF27C08C8187FF08C0809178
+:1022300064078F5F8093640781E090E01CC0409842
+:102240008FE78EBD0DB407FEFDCF1EBC0DB407FE9B
+:10225000FDCF8EB5409A409888E08EBD0DB407FE44
+:10226000FDCF409A409888E08EBD0DB407FEFDCFAB
+:10227000409A8BEF9FEF24960FB6F894DEBF0FBE07
+:10228000CDBFDF91CF91089580916407882319F421
+:1022900080E090E008958091640710926407992788
+:1022A00087FD90950895409888E08EBD0DB407FE97
+:1022B000FDCF409A409888E08EBD0DB407FEFDCF5B
+:1022C000409A0895992787FD9095382F22272068F6
+:1022D000409883E18EBD0DB407FEFDCF832F992773
+:1022E0008EBD0DB407FEFDCF2EBD0DB407FEFDCF94
+:1022F000409A0895409886E08EBD0DB407FEFDCF4C
+:10230000409A409882E18EBD0DB407FEFDCF85E076
+:102310008EBD0DB407FEFDCF88E08EBD0DB407FE67
+:10232000FDCF409A40988EE28EBD0DB407FEFDCFE2
+:1023300088E18EBD0DB407FEFDCF1EBC0DB407FEB7
+:10234000FDCF409A0E9453110895409886E08EBDBB
+:102350000DB407FEFDCF409A409882E18EBD0DB4CA
+:1023600007FEFDCF85E08EBD0DB407FEFDCF1EBC80
+:102370000DB407FEFDCF409A40988EE28EBD0DB49D
+:1023800007FEFDCF1EBC0DB407FEFDCF1EBC0DB475
+:1023900007FEFDCF409A0E9453110895409884E0B3
+:1023A0008EBD0DB407FEFDCF409A0895409886E09B
+:1023B0008EBD0DB407FEFDCF409A0895EF92FF92B7
+:1023C0000F931F93CF93DF93CDB7DEB722970FB64E
+:1023D000F894DEBF0FBECDBFDC01509150075523EE
+:1023E00039F040988DE08EBD0DB407FEFDCF409AC8
+:1023F000FD014281642F772767FD709510E020E092
+:1024000030E008C0FD0183819481E80EF91EF701D8
+:102410008081180F822F2F5F3F4FE82EFF24E61692
+:10242000F70684F3942F945F51119C5F6799FECF58
+:102430004E99FCCFF894409889E08EBD0DB407FE0C
+:10244000FDCF409A409889E08EBD0DB407FEFDCFC8
+:10245000409A40988EE38EBD0DB407FC05C0FCCFBA
+:102460000DB407FC2AC1FCCF9EBDFACF81E698E8E7
+:102470009A838983552329F089819A8188609A8378
+:10248000898340988EE38EBD0DB407FEFDCFFE011B
+:1024900031969E012D5F3F4F80818EBD0DB407FEAA
+:1024A000FDCF3196E217F307B9F7409A40988EE3D3
+:1024B0008EBD0DB407FC05C0FCCF0DB407FC08C1F0
+:1024C000FCCF809155078EBDF8CF0DB407FEFDCF30
+:1024D00020E030E0F901E95AF84F80818EBD0DB45B
+:1024E00007FEFDCF2F5F3F4F2230310599F7409A0D
+:1024F00040988EE38EBD0DB407FEFDCF20E030E0A6
+:10250000FD01E20FF31F80818EBD0DB407FEFDCFEC
+:102510002F5F3F4F2230310599F7409A40988EE364
+:102520008EBD0DB407FEFDCF20E030E0F901E75A83
+:10253000F84F80818EBD0DB407FEFDCF2F5F3F4F5A
+:102540002230310599F7409A552399F040988EE34F
+:102550008EBD0DB407FEFDCFE0E6F7E080818EBDB5
+:102560000DB407FEFDCF319687E0E436F807B1F7EA
+:10257000409A40988EE38EBD0DB407FEFDCF20E05B
+:1025800030E00DC0FD0183819481480F591FFA018D
+:1025900080818EBD0DB407FEFDCF2F5F3F4F422FD0
+:1025A00055274617570774F3409A40988EE38EBD1F
+:1025B0000DB407FC05C0FCCF0DB407FC8EC0FCCFEA
+:1025C0001EBDFACF80915B07882339F4409883E0E1
+:1025D0008EBD0DB407FEFDCF409A40981EBC0DB4D1
+:1025E00007FEFDCF8EB5409A81FFF7CF00E04098FF
+:1025F00085E08EBD0DB407FEFDCF409A40981EBC0D
+:102600000DB407FEFDCF1EB5409A0F5F053651F49D
+:10261000789480914E0790914F070E945F2180E04F
+:1026200090E062C084E690E00E94CF1B13FD08C0DA
+:10263000DECF409884E08EBD0DB407FEFDCF409AFA
+:1026400078944E9BFECF4E99FECF80915E078823F3
+:1026500091F084EA92E00E94CF1B319B0EC040981B
+:102660008FE78EBD0DB407FEFDCF1EBC0DB407FE77
+:10267000FDCF8EB5409A91E00FC0409888E08EBDA6
+:102680000DB407FEFDCF409A409888E08EBD0DB492
+:1026900007FEFDCF409A90E0F894409886E08EBD0A
+:1026A0000DB407FEFDCF409A7894809155078F5F57
+:1026B00080935507892F992717C0409A81E498E89D
+:1026C0009A83898380915E07882309F0CFCED2CE8A
+:1026D000409A40988EE38EBDF8CE409AFD018581E8
+:1026E000882309F06FCFA5CF22960FB6F894DEBFEE
+:1026F0000FBECDBFDF91CF911F910F91FF90EF9053
+:102700000895BF92CF92DF92EF92FF920F931F93A3
+:10271000CF93DF93CDB7DEB722970FB6F894DEBF25
+:102720000FBECDBF8C016B017A010E94412C4098F5
+:1027300088E08EBD0DB407FEFDCF409A409888E03A
+:102740008EBD0DB407FEFDCF409A6799FECF4E991E
+:10275000FCCFF894409889E08EBD0DB407FEFDCF04
+:10276000409A409889E08EBD0DB407FEFDCF409A97
+:10277000F8016281462F552747FD5095BB2420E084
+:1027800030E007C0F80183819481A80FB91F8C91B4
+:10279000B80E822F2F5F3F4FA82FBB27A417B50776
+:1027A0008CF3962F945F40988EE38EBD0DB407FC9A
+:1027B00005C0FCCF0DB407FC10C1FCCF9EBDFACF05
+:1027C00081E698E89A83898340988EE38EBD0DB4A4
+:1027D00007FEFDCFFE0131969E012D5F3F4F8081A8
+:1027E0008EBD0DB407FEFDCF3196E217F307B9F7A2
+:1027F000409A40988EE38EBD0DB407FC05C0FCCF17
+:102800000DB407FCF3C0FCCF809155078EBDF8CF07
+:102810000DB407FEFDCF20E030E0F901E95AF84F92
+:1028200080818EBD0DB407FEFDCF2F5F3F4F22305C
+:10283000310599F7409A40988EE38EBD0DB407FE9E
+:10284000FDCF20E030E0F801E20FF31F80818EBD64
+:102850000DB407FEFDCF2F5F3F4F2230310599F7B2
+:10286000409A40988EE38EBD0DB407FEFDCF20E068
+:1028700030E0F901E75AF84F80818EBD0DB407FEB4
+:10288000FDCF2F5F3F4F2230310599F7409AB701B6
+:10289000C6010E94C62CF80185818823C1F1809170
+:1028A0005B07882339F4409883E08EBD0DB407FEA2
+:1028B000FDCF409A40981EBC0DB407FEFDCF8EB5EB
+:1028C000409A81FFF7CFEE24409885E08EBD0DB48D
+:1028D00007FEFDCF409A40981EBC0DB407FEFDCF09
+:1028E000FEB4409AE394F5E6EF1651F478948091A3
+:1028F0004E0790914F070E945F2180E090E07DC0DD
+:1029000084E690E00E94CF1BF3FC08C0DDCF409826
+:1029100084E08EBD0DB407FEFDCF409A40988EE353
+:102920008EBD0DB407FEFDCFF8018281482F5527DB
+:1029300047FD509520E030E00CC0F8018381948180
+:10294000A80FB91F8C918EBD0DB407FEFDCF2F5F70
+:102950003F4FA22FBB27A417B5077CF3409A40989E
+:102960008EE38EBD0DB407FC05C0FCCF0DB407FC93
+:1029700042C0FCCFBEBCFACF4E9BFECFF8944E991E
+:10298000FECF409888E08EBD0DB407FEFDCF409A83
+:10299000409888E08EBD0DB407FEFDCF409A409868
+:1029A00089E08EBD0DB407FEFDCF409A409889E0C6
+:1029B0008EBD0DB407FEFDCF409A409886E08EBDD7
+:1029C0000DB407FEFDCF409A7894809155078F5F34
+:1029D0008093550781E090E010C0409AF80186810D
+:1029E000882309F0EDCE81E498E8ECCE409A409837
+:1029F0008EE38EBD0DCF409ABFCF22960FB6F894CE
+:102A0000DEBF0FBECDBFDF91CF911F910F91FF9021
+:102A1000EF90DF90CF90BF900895CF93DF93CDB725
+:102A2000DEB722970FB6F894DEBF0FBECDBF9A83F4
+:102A3000898390935A078093590784EF91E00E940D
+:102A40007B2B40988AEE8EBD0DB407FEFDCF80E84B
+:102A50008EBD0DB407FEFDCFFE0131969E012D5FA8
+:102A60003F4F80818EBD0DB407FEFDCF3196E2173A
+:102A7000F307B9F7409A84EF91E00E947B2B2296EE
+:102A80000FB6F894DEBF0FBECDBFDF91CF91089592
+:102A90006F927F928F929F92AF92BF92CF92DF926E
+:102AA000EF92FF920F931F93CF93DF93CDB7DEB7D3
+:102AB00022970FB6F894DEBF0FBECDBF8C0184E61F
+:102AC00090E00E947B2B7801C12CB1E0DB2E3E010F
+:102AD0000894611C711CA3E08A2E912C8C0E9D1E03
+:102AE000F7018081218133279927982F8827282B68
+:102AF000392B3A83298384E690E00E947B2B40980F
+:102B00008C2D80688EBD0DB407FEFDCFC601959556
+:102B10008795807C8EBD0DB407FEFDCF83015301E8
+:102B2000F50180818EBD0DB407FEFDCF0894A11C78
+:102B3000B11CA814B904A1F7409A0894E11CF11C37
+:102B400082E090E0C80ED91E90E1C91691E0D90646
+:102B500039F684E690E00E947B2B20E131E040E4EE
+:102B600051E01A8219824098842F80688EBD0DB47E
+:102B700007FEFDCFCA0195958795807C8EBD0DB46B
+:102B800007FEFDCFF80180818EBD0DB407FEFDCF9D
+:102B90003196EA15FB05B9F7409A4098822F806874
+:102BA0008EBD0DB407FEFDCFC90195958795807C3C
+:102BB0008EBD0DB407FEFDCFF80180818EBD0DB432
+:102BC00007FEFDCF3196EA15FB05B9F7409A2E5F57
+:102BD0003F4F4E5F5F4FE1E02E313E0711F681E03F
+:102BE00090E09A83898340988EEC8EBD0DB407FEE9
+:102BF000FDCF80E88EBD0DB407FEFDCFF8018081CA
+:102C00008EBD0DB407FEFDCF3196EA15FB05B9F771
+:102C1000409A40988EE98EBD0DB407FEFDCF80E846
+:102C20008EBD0DB407FEFDCFF80180818EBD0DB4C1
+:102C300007FEFDCF0F5F1F4F0A151B05A9F7409A2E
+:102C400022960FB6F894DEBF0FBECDBFDF91CF91B5
+:102C50001F910F91FF90EF90DF90CF90BF90AF90BA
+:102C60009F908F907F906F900895CF93DF93EC01AA
+:102C7000409888E08EBD0DB407FEFDCF409A409885
+:102C800088E08EBD0DB407FEFDCF409A862F0E94CE
+:102C90008E0DD0935407C0935307DF91CF910895C1
+:102CA0000E948E0D0895DF92EF92FF920F931F9373
+:102CB000CF93DF93CDB7DEB722970FB6F894DEBF80
+:102CC0000FBECDBF8C01D62E5A8349837901159A48
+:102CD00088EE93E00E94CF1B169881E090E00E945E
+:102CE000CF1B169A84E690E00E94CF1BF894409880
+:102CF00081E08EBD0DB407FEFDCF409A82EE92E0DA
+:102D00009093520780935107409881E18EBD0DB496
+:102D100007FEFDCF82E08EBD0DB407FEFDCF82EE33
+:102D20008EBD0DB407FEFDCF409A409882E18EBD66
+:102D30000DB407FEFDCF85E08EBD0DB407FEFDCFBF
+:102D40001EBC0DB407FEFDCF409A40988CE18EBDAD
+:102D50000DB407FEFDCF1EBC0DB407FEFDCF8FE7FF
+:102D60008EBD0DB407FEFDCF409A409889E18EBD1F
+:102D70000DB407FEFDCF81E08EBD0DB407FEFDCF83
+:102D800084EC8EBD0DB407FEFDCF409A409887E1DC
+:102D90008EBD0DB407FEFDCF8AE18EBD0DB407FEDA
+:102DA000FDCF86E58EBD0DB407FEFDCF409A84EFC2
+:102DB00091E00E947B2B409888EE8EBD0DB407FEFB
+:102DC000FDCF80E88EBD0DB407FEFDCFFE0131962C
+:102DD0009E012D5F3F4F80818EBD0DB407FEFDCF5C
+:102DE0003196E217F307B9F7409A84EF91E00E9419
+:102DF0007B2B78948D2D0E948E0D78941093540720
+:102E00000093530789819A819093580780935707BD
+:102E1000F0925A07E09259071092550710925B07FB
+:102E20000E94AD0D10925E071092500710925F073E
+:102E300022960FB6F894DEBF0FBECDBFDF91CF91C3
+:102E40001F910F91FF90EF90DF9008958FEF9FEF0C
+:102E50000895813051F48091C800992787FD90959D
+:102E60008827990F881F99270895882319F080E0F3
+:102E700090E008958091C000992787FD909588275C
+:102E8000990F881F992708958091C80087FFFCCF6C
+:102E90008091C8008F778093C8008091CE009927D9
+:102EA000089585B7806185BF86E084B987E085B9DC
+:102EB00081E087B988B98CE38DB98BE08AB98EE35C
+:102EC0008EB988E781B980E482B908950E945117CC
+:102ED00080E58CBD81E08DBD08958F3F09F47FC0F2
+:102EE000482F55279A012770307022303105A9F1FB
+:102EF0002330310544F42115310589F021303105A5
+:102F000009F06DC01CC02430310509F446C02430DE
+:102F100031059CF12530310509F061C04EC022B168
+:102F2000B3E056954795BA95E1F781E090E002C08D
+:102F3000880F991F4A95E2F7282B22B94DC085B119
+:102F4000A3E056954795AA95E1F702C0220F331FDB
+:102F50004A95E2F7822B85B93FC028B1F3E0569538
+:102F60004795FA95E1F781E090E002C0880F991F3C
+:102F70004A95E2F7282B28B92FC02BB1E3E05695EC
+:102F80004795EA95E1F781E090E002C0880F991F2C
+:102F90004A95E2F7282B2BB91FC02EB173E0569546
+:102FA00047957A95E1F781E090E002C0880F991F7C
+:102FB0004A95E2F7282B2EB90FC021B363E056954E
+:102FC00047956A95E1F781E090E002C0880F991F6C
+:102FD0004A95E2F7282B21BB81E090E008958FEF1E
+:102FE0009FEF08958F3F09F486C0482F55279A0117
+:102FF0002770307022303105C1F12330310544F49F
+:103000002115310589F02130310509F074C01DC04A
+:103010002430310509F44BC024303105BCF1253092
+:10302000310509F068C054C022B1E3E056954795D8
+:10303000EA95E1F781E090E002C0880F991F4A9578
+:10304000E2F78095822382B953C095B173E056951B
+:1030500047957A95E1F702C0220F331F4A95E2F7B0
+:10306000822F8095892385B943C028B163E05695A6
+:1030700047956A95E1F781E090E002C0880F991FBB
+:103080004A95E2F78095822388B932C02BB133E0AC
+:10309000569547953A95E1F781E090E002C0880F98
+:1030A000991F4A95E2F7809582238BB921C02EB1F2
+:1030B00093E0569547959A95E1F781E090E002C03C
+:1030C000880F991F4A95E2F7809582238EB910C028
+:1030D00021B383E0569547958A95E1F781E090E02A
+:1030E00002C0880F991F4A95E2F78095822381BB21
+:1030F00081E090E008958FEF9FEF08958F3FA9F151
+:10310000282F3327C9018770907082309105A9F06C
+:10311000833091052CF4009761F0019731F50BC0D5
+:103120008430910571F0843091054CF00597E9F4F5
+:103130000AC080B109C083B107C086B105C089B19A
+:1031400003C08CB101C08FB19927F3E03695279564
+:10315000FA95E1F702C0959587952A95E2F79927A8
+:1031600087FD90958170907008958FEF9FEF08957F
+:103170008F3F09F403C1282F3327A90147705070EE
+:103180004230510509F45CC04330510544F4411507
+:10319000510591F04130510509F0F0C034C0443080
+:1031A000510509F49BC0443051050CF470C0453002
+:1031B000510509F0E3C0B9C080B1A90173E056958B
+:1031C00047957A95E1F79927042E02C09595879542
+:1031D0000A94E2F780FD0BC022B181E090E002C0CA
+:1031E000880F991F4A95E2F7282B22B9C4C022B153
+:1031F00081E090E002C0880F991F4A95E2F7809520
+:10320000822382B9B8C083B163E0369527956A9569
+:10321000E1F79927022E02C0959587950A94E2F767
+:1032200002C0440F551F2A95E2F780FD03C085B107
+:10323000842B04C095B1842F8095892385B99BC0C8
+:1032400086B1A90123E0569547952A95E1F799277C
+:10325000042E02C0959587950A94E2F780FD0BC075
+:1032600028B181E090E002C0880F991F4A95E2F7EB
+:10327000282B28B980C028B181E090E002C0880FD7
+:10328000991F4A95E2F78095822388B974C089B165
+:10329000A90193E0569547959A95E1F79927042E51
+:1032A00002C0959587950A94E2F780FD0BC02BB17B
+:1032B00081E090E002C0880F991F4A95E2F7282B21
+:1032C0002BB959C02BB181E090E002C0880F991F43
+:1032D0004A95E2F7809582238BB94DC08CB1A90144
+:1032E000B3E056954795BA95E1F79927042E02C0A9
+:1032F000959587950A94E2F780FD0BC02EB181E089
+:1033000090E002C0880F991F4A95E2F7282B2EB94A
+:1033100032C02EB181E090E002C0880F991F4A951B
+:10332000E2F7809582238EB926C08FB1A901A3E070
+:1033300056954795AA95E1F79927042E02C09595D1
+:1033400087950A94E2F780FD0BC021B381E090E0FD
+:1033500002C0880F991F4A95E2F7282B21BB0BC0AA
+:1033600021B381E090E002C0880F991F4A95E2F7EF
+:103370008095822381BB81E090E008958FEF9FEFDD
+:1033800008958F3F09F412C1482F5527662309F08D
+:1033900090C0CA01877090708230910509F43EC0D8
+:1033A000833091053CF4009789F08130910509F054
+:1033B000FDC021C08430910509F454C084309105CA
+:1033C0000CF43EC0059709F0F1C05EC031B1B3E026
+:1033D00056954795BA95E1F781E090E002C0880FD5
+:1033E000991F4A95E2F7282F2095232321B922B16E
+:1033F000822B82B9D8C024B1A3E056954795AA95EF
+:10340000E1F702C0880F991F4A95E2F7982F80953F
+:10341000822384B985B1982B95B9C5C037B1F3E043
+:1034200056954795FA95E1F781E090E002C0880F44
+:10343000991F4A95E2F7282F2095232327B935C0F5
+:103440003AB1E3E056954795EA95E1F781E090E0DF
+:1034500002C0880F991F4A95E2F7282F2095232351
+:103460002AB923C03DB173E0569547957A95E1F7A7
+:1034700081E090E002C0880F991F4A95E2F7282F5B
+:10348000209523232DB911C030B363E0569547959D
+:103490006A95E1F781E090E002C0880F991F4A9594
+:1034A000E2F7282F2095232320BB25B1822B85B955
+:1034B0007AC09A012770307022303105A9F123308B
+:1034C000310544F42115310589F02130310509F029
+:1034D0006DC01CC02430310509F446C024303105CC
+:1034E0009CF12530310509F061C04EC021B133E0B7
+:1034F000569547953A95E1F781E090E002C0880F34
+:10350000991F4A95E2F7282B21B94DC084B193E069
+:10351000569547959A95E1F702C0220F331F4A95B9
+:10352000E2F7822B84B93FC027B1B3E056954795A7
+:10353000BA95E1F781E090E002C0880F991F4A95A3
+:10354000E2F7282B27B92FC02AB1A3E0569547955B
+:10355000AA95E1F781E090E002C0880F991F4A9593
+:10356000E2F7282B2AB91FC02DB1F3E056954795F5
+:10357000FA95E1F781E090E002C0880F991F4A9523
+:10358000E2F7282B2DB90FC020B3E3E056954795FD
+:10359000EA95E1F781E090E002C0880F991F4A9513
+:1035A000E2F7282B20BB81E090E008958FEF9FEF9A
+:1035B0000895882319F08FEF9FEF089580B1992720
+:1035C00087FD9095809590958827990F881F99275A
+:1035D0000895009711F484E109C08130910511F438
+:1035E0008CE104C08230910531F484E20E94B81865
+:1035F00081E090E00895039719F08FEF9FEF089511
+:103600008CE20E94B81881E090E00895009711F4D0
+:1036100084E109C08130910511F48CE104C082304D
+:10362000910531F484E20E946D1781E090E00895E5
+:10363000039719F08FEF9FEF08958CE20E946D17AA
+:1036400081E090E00895009711F484E109C0813091
+:10365000910511F48CE104C08230910531F484E2CB
+:103660000E94F21781E090E00895039719F08FEF20
+:103670009FEF08958CE20E94F21781E090E0089598
+:10368000882319F085B78F7E02C085B7806185BF1A
+:1036900081E090E00895982F8091C00085FFFCCFD5
+:1036A0008091C0008F7D8093C0009093C6000895E4
+:1036B000982F8091C80085FFFCCF9093CE0008958D
+:1036C000292F33272093C5008093C40086E0809380
+:1036D000C200E1ECF0E080818B7F8083A0ECB0E061
+:1036E0008C9182608C938081886180830895292FDA
+:1036F00033272093CD008093CC0086E08093CA00CE
+:10370000E9ECF0E080818B7F8083A8ECB0E08C91C5
+:1037100082608C9380818861808308958091C0004D
+:1037200087FFFCCF8091C0008F778093C00080918D
+:10373000C60099270895EF92FF920F931F930E945E
+:10374000771B04E417E158E5E52E5BE1F52EB8019F
+:10375000C7010E9404329093020880930108B801C7
+:10376000C7010E940432909300088093FF071F91C5
+:103770000F91FF90EF900895CF93DF93EC0107C076
+:10378000609101087091020899270E945432FE014D
+:10379000219684918823A1F7DF91CF9108950000AD
+:1037A0000000000000000197D1F70895FC01A7E098
+:1037B000B0E00E945834802D808381E090E008952D
+:1037C000FC018081A7E0B0E0082E0E94603481E017
+:1037D00090E00895DC010E945834802D99270895C7
+:1037E000FC01A0E0B0E00E945834402D4383A1E0EA
+:1037F000B0E00E945834802D8283A2E0B0E00E94A5
+:103800005834302D3183A3E0B0E00E945834902D1D
+:103810009083A4E0B0E00E945834202D830F840FE1
+:10382000890F281719F481E090E008958FEF9FEF3A
+:103830000895FC01A5E0B0E00E945834802D8083FB
+:1038400081E090E00895FC01A6E0B0E00E945834C9
+:10385000802D808381E090E00895AC0120E030E08D
+:10386000D90118960E945834802DFA01E20FF31FF7
+:1038700080832F5F3F4F2031310591F781E090E049
+:103880000895DC01062E0E9460340895FC018081B9
+:10389000A6E0B0E0082E0E94603481E090E0089538
+:1038A000AC0120E030E0D9011896FA01E20FF31FD5
+:1038B0008081082E0E9460342F5F3F4F20313105F8
+:1038C00091F781E090E00895F89408957894089530
+:1038D00085E690E008950E9483290895EF92FF9273
+:1038E0000F931F93CF93DF93EC018B017A018985AE
+:1038F000823021F08091CF07888301C018828091A7
+:10390000CF07833020F060E087E00E94491F89855F
+:10391000823029F08091CF078F5F8093CF0780910D
+:10392000CF07882319F481E08093CF0788819927F6
+:1039300087FD9095FC0145E0EE0FFF1F4A95E1F7EA
+:10394000E80FF91FE959F84F1183008388819927FF
+:1039500087FD9095FC0135E0EE0FFF1F3A95E1F7EA
+:10396000E80FF91FE959F84F8885828788819927E0
+:1039700087FD9095FC0125E0EE0FFF1F2A95E1F7EA
+:10398000E80FF91FE959F84F83E081872881822FDA
+:10399000992787FD9095FC0105E0EE0FFF1F0A9522
+:1039A000E1F7E80FF91FE959F84F20878881992737
+:1039B00087FD9095FC0115E0EE0FFF1F1A95E1F7CA
+:1039C000E80FF91FE959F84F15820881112707FD03
+:1039D00010952B853C854D855E856F857889898915
+:1039E0009A890E949E27F801B5E0EE0FFF1FBA9555
+:1039F000E1F7E00FF11FE959F84F948F838F0881A9
+:103A0000112707FD10952B8D3C8D4D8D5E8D6F8D93
+:103A100078A189A19AA10E949E27F801A5E0EE0F46
+:103A2000FF1FAA95E1F7E00FF11FE959F84F968BB8
+:103A3000858B8881992787FD9095FC0175E0EE0FB5
+:103A4000FF1F7A95E1F7E80FF91FE959F84F8589CB
+:103A50009689238D348D820F931F908F878B0881D9
+:103A6000112707FD10952B893C894D895E896F8947
+:103A7000788D898D9A8D0E949E27F80165E0EE0F62
+:103A8000FF1F6A95E1F7E00FF11FE959F84F968F94
+:103A9000858F8881992787FD9095FC0155E0EE0F71
+:103AA000FF1F5A95E1F7E80FF91FE959F84F858D87
+:103AB000968D928F818F8881992787FD9095FC0143
+:103AC00045E0EE0FFF1F4A95E1F7E80FF91FE959AE
+:103AD000F84F81E090E090A3878F8881992787FD38
+:103AE0009095FC0135E0EE0FFF1F3A95E1F7E80FE6
+:103AF000F91FE959F84FF382E2828881992787FDFF
+:103B00009095FC0125E0EE0FFF1F2A95E1F7E80FE5
+:103B1000F91FE959F84F81E0848781E090E0DF9157
+:103B2000CF911F910F91FF90EF9008958F929F92E8
+:103B3000AF92BF92CF92DF92EF92FF920F931F93BB
+:103B4000CF93DF936FE6A62E67E0B62ECC24DD245C
+:103B50004501EC2CF501F080FFEFFF1691F0E40138
+:103B600000E010E0E01639F08881F81621F46F2D9E
+:103B700085E00E94491F0F5F1F4FA196033011057A
+:103B800089F70894C11CD11C81E290E0A80EB91EEF
+:103B900093E0C916D104E9F60E944023282F332769
+:103BA00027FD3095F90155E0EE0FFF1F5A95E1F71B
+:103BB000E20FF31FE959F84F32853093E20721E213
+:103BC0008202C00111248959984F9093E107809394
+:103BD000E0079093D2078093D1073093D3070E94D8
+:103BE000972F0E947D2F0E94BB2FFFCF0F931F9313
+:103BF000CF93DF93CDB7DEB7A3970FB6F894DEBFB0
+:103C00000FBECDBF0E9450208093D0078F3F21F47C
+:103C100060E08EE00E94491F0E94EE2E882321F46E
+:103C200060E086E00E94491F1092D3071092E107DE
+:103C30001092E0071092D2071092D1071092E2077B
+:103C40001092DF079FEF9093CC079093CE0790934D
+:103C5000CD0783E68093710790936F078093920757
+:103C6000909390078093B3079093B107E3EEF7E04A
+:103C7000CF01059694838383F783E683FC0127E0D5
+:103C8000823F9207A9F71092E5071092E40710927D
+:103C9000F6071092F5071092D6071092D5070F97E6
+:103CA00090936607809365076FE579E28E010F5F59
+:103CB0001F4FC8010E943B2F40E850E06CEF75E0B9
+:103CC000C8010E949C2F85E58093FC0519861C8EF7
+:103CD0001D8E1E8E1F8E18A219A21AA21BA291E081
+:103CE000988782E08A879B87C8010E942926A3962D
+:103CF0000FB6F894DEBF0FBECDBFDF91CF911F91FD
+:103D00000F910895F894FFCFE091E007F091E1075B
+:103D100084870895E091E007F091E1078485992771
+:103D20000895DC01FB0180918405882319F480E06B
+:103D300090E00895808380919A038C9381E090E0D5
+:103D400008951F9380918405882309F49EC00E94E2
+:103D5000641C0E94641C82E093E00E94BC1B809162
+:103D60009A0399279F938F9386EA92E09F938F936C
+:103D70000E9481328EEF92E00E94BC1B0F900F9048
+:103D80000F900F9080918405843110F0109284057B
+:103D9000809184059927AA27BB27FC013197E2313E
+:103DA000F105F0F5EA59FF4FEE0FFF1F0590F49172
+:103DB000E02D099487ED92E035C083EC92E032C0AB
+:103DC0008DEA92E02FC082E992E02CC08CE792E06D
+:103DD00029C084E692E026C081E592E023C08EE30C
+:103DE00092E020C080E292E01DC08BEF91E01AC00B
+:103DF0008FEE91E017C084ED91E014C085EC91E066
+:103E000011C084EB91E00EC080EA91E00BC080E825
+:103E100091E008C088E691E005C08DE491E002C021
+:103E200086E491E00E94BC1B609101087091020839
+:103E30008DE090E00E945432609101087091020878
+:103E40008AE090E00E94543282E090E00E94231BBE
+:103E500083E090E00E94061B10E088EE93E00E9451
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.lss Sat Dec 11
12:36:09 2010
@@ -0,0 +1,15590 @@
+
+main.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 00000102 00800200 00006910 000069a4 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00006910 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 00000507 00800302 00800302 00006aa6 2**0
+ ALLOC
+ 3 .stab 0000ddf4 00000000 00000000 00006aa8 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00005f57 00000000 00000000 0001489c 2**0
+ CONTENTS, READONLY, DEBUGGING
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 8f 01 jmp 0x31e ; 0x31e <__init>
+ 4: 0c 94 92 2e jmp 0x5d24 ; 0x5d24 <__vector_1>
+ 8: 0c 94 64 2e jmp 0x5cc8 ; 0x5cc8 <__vector_2>
+ c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 10: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 14: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 18: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 1c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 20: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 24: 0c 94 c0 2e jmp 0x5d80 ; 0x5d80 <__vector_9>
+ 28: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 2c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 30: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 34: 0c 94 45 2c jmp 0x588a ; 0x588a <__vector_13>
+ 38: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 3c: 0c 94 45 2c jmp 0x588a ; 0x588a <__vector_13>
+ 40: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 44: 0c 94 78 2c jmp 0x58f0 ; 0x58f0 <__vector_17>
+ 48: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 4c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 50: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 54: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 58: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 5c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 60: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 64: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 68: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 6c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 70: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 74: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 78: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 7c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 80: 0c 94 82 2c jmp 0x5904 ; 0x5904 <__vector_32>
+ 84: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 88: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 8c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 90: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 94: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 98: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ 9c: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ a0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ a4: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ a8: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ ac: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ b0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ b4: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ b8: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ bc: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ c0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ c4: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+ c8: 0c 94 ae 01 jmp 0x35c ; 0x35c <__bad_interrupt>
+
+000000cc <__ctors_end>:
+ cc: dd 1e adc r13, r29
+ ce: e3 1e adc r14, r19
+ d0: e6 1e adc r14, r22
+ d2: e9 1e adc r14, r25
+ d4: ec 1e adc r14, r28
+ d6: ef 1e adc r14, r31
+ d8: f5 1e adc r15, r21
+ da: f2 1e adc r15, r18
+ dc: f8 1e adc r15, r24
+ de: fb 1e adc r15, r27
+ e0: fe 1e adc r15, r30
+ e2: 04 1f adc r16, r20
+ e4: 07 1f adc r16, r23
+ e6: 0a 1f adc r16, r26
+ e8: 0d 1f adc r16, r29
+ ea: 01 1f adc r16, r17
+ ec: da 1e adc r13, r26
+ ee: e0 1e adc r14, r16
+
+000000f0 <__c.2963>:
+ f0: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 100: 72 65 61 74 69 6e 67 20 74 78 20 73 69 67 6e 61 reating tx
signa
+ 110: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+0000011b <__c.2961>:
+ 11b: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 12b: 72 65 61 74 69 6e 67 20 72 78 20 73 69 67 6e 61 reating rx
signa
+ 13b: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+00000146 <__c.2376>:
+ 146: 55 4e 4b 4f 57 4e 00 UNKOWN.
+
+0000014d <__c.2373>:
+ 14d: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 15d: 20 53 65 6d 61 70 68 6f 72 65 00 Semaphore.
+
+00000168 <__c.2370>:
+ 168: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 178: 20 53 69 67 6e 61 6c 00 Signal.
+
+00000180 <__c.2367>:
+ 180: 4b 65 72 6e 65 6c 20 66 75 6e 63 74 69 6f 6e 20 Kernel
function
+ 190: 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 00 not
implemented.
+
+000001a0 <__c.2364>:
+ 1a0: 44 65 76 69 63 65 20 44 72 69 76 65 72 20 45 72 Device
Driver Er
+ 1b0: 72 6f 72 00 ror.
+
+000001b4 <__c.2361>:
+ 1b4: 57 61 74 63 68 64 6f 67 20 52 65 73 74 61 72 74 Watchdog
Restart
+ ...
+
+000001c5 <__c.2358>:
+ 1c5: 54 69 6d 65 72 20 4f 76 65 72 66 6c 6f 77 00 Timer
Overflow.
+
+000001d4 <__c.2355>:
+ 1d4: 55 6e 68 61 6e 64 6c 65 64 20 49 6e 74 65 72 72 Unhandled
Interr
+ 1e4: 75 70 74 20 56 65 63 74 6f 72 00 upt Vector.
+
+000001ef <__c.2352>:
+ 1ef: 4c 6f 77 20 56 6f 6c 74 61 67 65 00 Low Voltage.
+
+000001fb <__c.2349>:
+ 1fb: 45 78 74 72 61 20 54 61 73 6b 20 73 74 61 72 74 Extra Task
start
+ 20b: 65 64 2c 20 69 73 20 6e 72 6b 5f 63 66 67 2e 68 ed, is
nrk_cfg.h
+ 21b: 20 6f 6b 3f 00 ok?.
+
+00000220 <__c.2346>:
+ 220: 49 64 6c 65 20 6f 72 20 4b 65 72 6e 65 6c 20 53 Idle or
Kernel S
+ 230: 74 61 63 6b 20 4f 76 65 72 66 6c 6f 77 00 tack
Overflow.
+
+0000023e <__c.2343>:
+ 23e: 55 6e 65 78 70 65 63 74 65 64 20 52 65 73 74 61 Unexpected
Resta
+ 24e: 72 74 00 rt.
+
+00000251 <__c.2340>:
+ 251: 44 75 70 6c 69 63 61 74 65 64 20 54 61 73 6b 20 Duplicated
Task
+ 261: 49 44 00 ID.
+
+00000264 <__c.2337>:
+ 264: 53 63 68 65 64 75 6c 65 72 20 4d 69 73 73 65 64 Scheduler
Missed
+ 274: 20 57 61 6b 65 75 70 00 Wakeup.
+
+0000027c <__c.2334>:
+ 27c: 54 61 73 6b 20 52 65 73 65 72 76 65 20 56 69 6f Task Reserve
Vio
+ 28c: 6c 61 74 65 64 00 lated.
+
+00000292 <__c.2331>:
+ 292: 52 65 73 65 72 76 65 20 45 72 72 6f 72 20 69 6e Reserve
Error in
+ 2a2: 20 53 63 68 65 64 75 6c 65 72 00 Scheduler.
+
+000002ad <__c.2328>:
+ 2ad: 49 6e 76 61 6c 69 64 20 53 74 61 63 6b 20 50 6f Invalid
Stack Po
+ 2bd: 69 6e 74 65 72 00 inter.
+
+000002c3 <__c.2325>:
+ 2c3: 54 61 73 6b 20 53 74 61 63 6b 20 4f 76 65 72 66 Task Stack
Overf
+ 2d3: 6c 6f 77 00 low.
+
+000002d7 <__c.2321>:
+ 2d7: 53 74 61 63 6b 20 77 61 73 20 6e 6f 74 20 64 65 Stack was
not de
+ 2e7: 66 69 6e 65 64 20 61 73 20 6c 61 72 67 65 20 65 fined as
large e
+ 2f7: 6e 6f 75 67 68 21 00 nough!.
+
+000002fe <__c.2318>:
+ 2fe: 29 3a 20 00 ): .
+
+00000302 <__c.2316>:
+ 302: 2a 4e 52 4b 20 45 52 52 4f 52 28 00 *NRK ERROR(.
+
+0000030e <__c.2249>:
+ 30e: 0d 0a 53 54 41 43 4b 20 44 55 4d 50 0d 0a 00 00 ..STACK
DUMP....
+
+0000031e <__init>:
+ 31e: 11 24 eor r1, r1
+ 320: 1f be out 0x3f, r1 ; 63
+ 322: cf ef ldi r28, 0xFF ; 255
+ 324: d1 e2 ldi r29, 0x21 ; 33
+ 326: de bf out 0x3e, r29 ; 62
+ 328: cd bf out 0x3d, r28 ; 61
+
+0000032a <__do_copy_data>:
+ 32a: 13 e0 ldi r17, 0x03 ; 3
+ 32c: a0 e0 ldi r26, 0x00 ; 0
+ 32e: b2 e0 ldi r27, 0x02 ; 2
+ 330: e0 e1 ldi r30, 0x10 ; 16
+ 332: f9 e6 ldi r31, 0x69 ; 105
+ 334: 00 e0 ldi r16, 0x00 ; 0
+ 336: 0b bf out 0x3b, r16 ; 59
+ 338: 02 c0 rjmp .+4 ; 0x33e <__do_copy_data+0x14>
+ 33a: 07 90 elpm r0, Z+
+ 33c: 0d 92 st X+, r0
+ 33e: a2 30 cpi r26, 0x02 ; 2
+ 340: b1 07 cpc r27, r17
+ 342: d9 f7 brne .-10 ; 0x33a <__do_copy_data+0x10>
+
+00000344 <__do_clear_bss>:
+ 344: 18 e0 ldi r17, 0x08 ; 8
+ 346: a2 e0 ldi r26, 0x02 ; 2
+ 348: b3 e0 ldi r27, 0x03 ; 3
+ 34a: 01 c0 rjmp .+2 ; 0x34e <.do_clear_bss_start>
+
+0000034c <.do_clear_bss_loop>:
+ 34c: 1d 92 st X+, r1
+
+0000034e <.do_clear_bss_start>:
+ 34e: a9 30 cpi r26, 0x09 ; 9
+ 350: b1 07 cpc r27, r17
+ 352: e1 f7 brne .-8 ; 0x34c <.do_clear_bss_loop>
+ 354: 0e 94 60 02 call 0x4c0 ; 0x4c0 <main>
+ 358: 0c 94 87 34 jmp 0x690e ; 0x690e <_exit>
+
+0000035c <__bad_interrupt>:
+ 35c: 0c 94 b0 2c jmp 0x5960 ; 0x5960 <__vector_default>
+
+00000360 <monome_setup_system>:
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+}
+
+inline void monome_setup_system(){
+ state = 0 | SYNC;
+ 360: 81 e0 ldi r24, 0x01 ; 1
+ 362: 80 93 ea 03 sts 0x03EA, r24
+ player_num = -1;
+ 366: 8f ef ldi r24, 0xFF ; 255
+ 368: 80 93 fc 03 sts 0x03FC, r24
+ sync_pkt_tx.player = -1;
+ 36c: 80 93 c6 03 sts 0x03C6, r24
+ 370: 08 95 ret
+
+00000372 <monome_set_player_num>:
+
+}
+
+inline void monome_set_player_num(){
+ printf("setting player\r\n");
+ 372: 80 e0 ldi r24, 0x00 ; 0
+ 374: 92 e0 ldi r25, 0x02 ; 2
+ 376: 0e 94 a1 32 call 0x6542 ; 0x6542 <puts>
+ //player_num = sync_pkt_rx.player;
+ printf("player number: %d\r\n", player_num);
+ 37a: 80 91 fc 03 lds r24, 0x03FC
+ 37e: 99 27 eor r25, r25
+ 380: 9f 93 push r25
+ 382: 8f 93 push r24
+ 384: 80 e1 ldi r24, 0x10 ; 16
+ 386: 92 e0 ldi r25, 0x02 ; 2
+ 388: 9f 93 push r25
+ 38a: 8f 93 push r24
+ 38c: 0e 94 81 32 call 0x6502 ; 0x6502 <printf>
+ switch (player_num) {
+ 390: 0f 90 pop r0
+ 392: 0f 90 pop r0
+ 394: 0f 90 pop r0
+ 396: 0f 90 pop r0
+ 398: 80 91 fc 03 lds r24, 0x03FC
+ 39c: 81 30 cpi r24, 0x01 ; 1
+ 39e: 71 f0 breq .+28 ; 0x3bc <monome_set_player_num+0x4a>
+ 3a0: 81 30 cpi r24, 0x01 ; 1
+ 3a2: 28 f0 brcs .+10 ; 0x3ae <monome_set_player_num+0x3c>
+ 3a4: 82 30 cpi r24, 0x02 ; 2
+ 3a6: 31 f0 breq .+12 ; 0x3b4 <monome_set_player_num+0x42>
+ 3a8: 83 30 cpi r24, 0x03 ; 3
+ 3aa: 79 f4 brne .+30 ; 0x3ca <monome_set_player_num+0x58>
+ 3ac: 0a c0 rjmp .+20 ; 0x3c2 <monome_set_player_num+0x50>
+ case 0:
+ nrk_led_set(RED_LED);
+ 3ae: 83 e0 ldi r24, 0x03 ; 3
+ 3b0: 90 e0 ldi r25, 0x00 ; 0
+ 3b2: 09 c0 rjmp .+18 ; 0x3c6 <monome_set_player_num+0x54>
+ break;
+ case 1:
+ nrk_led_set(GREEN_LED);
+ break;
+ case 2:
+ nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);
+ 3b4: 83 e0 ldi r24, 0x03 ; 3
+ 3b6: 90 e0 ldi r25, 0x00 ; 0
+ 3b8: 0e 94 23 1b call 0x3646 ; 0x3646 <nrk_led_set>
+ 3bc: 82 e0 ldi r24, 0x02 ; 2
+ 3be: 90 e0 ldi r25, 0x00 ; 0
+ 3c0: 02 c0 rjmp .+4 ; 0x3c6 <monome_set_player_num+0x54>
+ break;
+ case 3:
+ nrk_led_set(BLUE_LED);
+ 3c2: 81 e0 ldi r24, 0x01 ; 1
+ 3c4: 90 e0 ldi r25, 0x00 ; 0
+ 3c6: 0e 94 23 1b call 0x3646 ; 0x3646 <nrk_led_set>
+ break;
+ default:
+ break;
+ }
+ state = 0 | SELECT;
+ 3ca: 82 e0 ldi r24, 0x02 ; 2
+ 3cc: 80 93 ea 03 sts 0x03EA, r24
+ 3d0: 08 95 ret
+
+000003d2 <monome_comm_init>:
+ 3d2: 80 e0 ldi r24, 0x00 ; 0
+ 3d4: 0e 94 36 04 call 0x86c ; 0x86c <rtl_init>
+ 3d8: 41 e0 ldi r20, 0x01 ; 1
+ 3da: 65 e0 ldi r22, 0x05 ; 5
+ 3dc: 80 e0 ldi r24, 0x00 ; 0
+ 3de: 0e 94 81 0a call 0x1502 ; 0x1502 <rtl_set_schedule>
+ 3e2: 41 e0 ldi r20, 0x01 ; 1
+ 3e4: 63 e0 ldi r22, 0x03 ; 3
+ 3e6: 80 e0 ldi r24, 0x00 ; 0
+ 3e8: 0e 94 81 0a call 0x1502 ; 0x1502 <rtl_set_schedule>
+ 3ec: 41 e0 ldi r20, 0x01 ; 1
+ 3ee: 62 e0 ldi r22, 0x02 ; 2
+ 3f0: 81 e0 ldi r24, 0x01 ; 1
+ 3f2: 0e 94 81 0a call 0x1502 ; 0x1502 <rtl_set_schedule>
+ 3f6: 0e 94 f2 03 call 0x7e4 ; 0x7e4 <rtl_start>
+ 3fa: 64 e7 ldi r22, 0x74 ; 116
+ 3fc: 85 e0 ldi r24, 0x05 ; 5
+ 3fe: 94 e0 ldi r25, 0x04 ; 4
+ 400: 0e 94 8d 03 call 0x71a ; 0x71a <rtl_rx_pkt_set_buffer>
+ 404: 08 95 ret
+
+00000406 <nrk_create_taskset>:
+ 406: 84 e9 ldi r24, 0x94 ; 148
+ 408: 92 e0 ldi r25, 0x02 ; 2
+ 40a: 90 93 cd 03 sts 0x03CD, r25
+ 40e: 80 93 cc 03 sts 0x03CC, r24
+ 412: 89 ef ldi r24, 0xF9 ; 249
+ 414: 94 e0 ldi r25, 0x04 ; 4
+ 416: 90 93 c9 03 sts 0x03C9, r25
+ 41a: 80 93 c8 03 sts 0x03C8, r24
+ 41e: 8a e7 ldi r24, 0x7A ; 122
+ 420: 94 e0 ldi r25, 0x04 ; 4
+ 422: 90 93 cb 03 sts 0x03CB, r25
+ 426: 80 93 ca 03 sts 0x03CA, r24
+ 42a: 82 e0 ldi r24, 0x02 ; 2
+ 42c: 80 93 cf 03 sts 0x03CF, r24
+ 430: 81 e0 ldi r24, 0x01 ; 1
+ 432: 80 93 ce 03 sts 0x03CE, r24
+ 436: 80 93 d0 03 sts 0x03D0, r24
+ 43a: 80 93 d1 03 sts 0x03D1, r24
+ 43e: 81 e0 ldi r24, 0x01 ; 1
+ 440: 90 e0 ldi r25, 0x00 ; 0
+ 442: a0 e0 ldi r26, 0x00 ; 0
+ 444: b0 e0 ldi r27, 0x00 ; 0
+ 446: 80 93 d2 03 sts 0x03D2, r24
+ 44a: 90 93 d3 03 sts 0x03D3, r25
+ 44e: a0 93 d4 03 sts 0x03D4, r26
+ 452: b0 93 d5 03 sts 0x03D5, r27
+ 456: 10 92 d6 03 sts 0x03D6, r1
+ 45a: 10 92 d7 03 sts 0x03D7, r1
+ 45e: 10 92 d8 03 sts 0x03D8, r1
+ 462: 10 92 d9 03 sts 0x03D9, r1
+ 466: 10 92 da 03 sts 0x03DA, r1
+ 46a: 10 92 db 03 sts 0x03DB, r1
+ 46e: 10 92 dc 03 sts 0x03DC, r1
+ 472: 10 92 dd 03 sts 0x03DD, r1
+ 476: 80 e0 ldi r24, 0x00 ; 0
+ 478: 92 ec ldi r25, 0xC2 ; 194
+ 47a: ab ee ldi r26, 0xEB ; 235
+ 47c: bb e0 ldi r27, 0x0B ; 11
+ 47e: 80 93 de 03 sts 0x03DE, r24
+ 482: 90 93 df 03 sts 0x03DF, r25
+ 486: a0 93 e0 03 sts 0x03E0, r26
+ 48a: b0 93 e1 03 sts 0x03E1, r27
+ 48e: 10 92 e2 03 sts 0x03E2, r1
+ 492: 10 92 e3 03 sts 0x03E3, r1
+ 496: 10 92 e4 03 sts 0x03E4, r1
+ 49a: 10 92 e5 03 sts 0x03E5, r1
+ 49e: 10 92 e6 03 sts 0x03E6, r1
+ 4a2: 10 92 e7 03 sts 0x03E7, r1
+ 4a6: 10 92 e8 03 sts 0x03E8, r1
+ 4aa: 10 92 e9 03 sts 0x03E9, r1
+ 4ae: 87 ec ldi r24, 0xC7 ; 199
+ 4b0: 93 e0 ldi r25, 0x03 ; 3
+ 4b2: 0e 94 29 26 call 0x4c52 ; 0x4c52 <nrk_activate_task>
+ 4b6: 84 e2 ldi r24, 0x24 ; 36
+ 4b8: 92 e0 ldi r25, 0x02 ; 2
+ 4ba: 0e 94 a1 32 call 0x6542 ; 0x6542 <puts>
+ 4be: 08 95 ret
+
+000004c0 <main>:
+ 4c0: cf ef ldi r28, 0xFF ; 255
+ 4c2: d1 e2 ldi r29, 0x21 ; 33
+ 4c4: de bf out 0x3e, r29 ; 62
+ 4c6: cd bf out 0x3d, r28 ; 61
+ 4c8: 0e 94 66 17 call 0x2ecc ; 0x2ecc <nrk_setup_ports>
+ 4cc: 87 e0 ldi r24, 0x07 ; 7
+ 4ce: 90 e0 ldi r25, 0x00 ; 0
+ 4d0: 0e 94 9b 1b call 0x3736 ; 0x3736 <nrk_setup_uart>
+ 4d4: 81 e3 ldi r24, 0x31 ; 49
+ 4d6: 92 e0 ldi r25, 0x02 ; 2
+ 4d8: 0e 94 a1 32 call 0x6542 ; 0x6542 <puts>
+ 4dc: 0e 94 f6 1d call 0x3bec ; 0x3bec <nrk_init>
+ 4e0: 80 e0 ldi r24, 0x00 ; 0
+ 4e2: 90 e0 ldi r25, 0x00 ; 0
+ 4e4: 0e 94 06 1b call 0x360c ; 0x360c <nrk_led_clr>
+ 4e8: 81 e0 ldi r24, 0x01 ; 1
+ 4ea: 90 e0 ldi r25, 0x00 ; 0
+ 4ec: 0e 94 06 1b call 0x360c ; 0x360c <nrk_led_clr>
+ 4f0: 82 e0 ldi r24, 0x02 ; 2
+ 4f2: 90 e0 ldi r25, 0x00 ; 0
+ 4f4: 0e 94 06 1b call 0x360c ; 0x360c <nrk_led_clr>
+ 4f8: 83 e0 ldi r24, 0x03 ; 3
+ 4fa: 90 e0 ldi r25, 0x00 ; 0
+ 4fc: 0e 94 06 1b call 0x360c ; 0x360c <nrk_led_clr>
+ 500: 20 e0 ldi r18, 0x00 ; 0
+ 502: 30 e0 ldi r19, 0x00 ; 0
+ 504: 40 e0 ldi r20, 0x00 ; 0
+ 506: 50 e0 ldi r21, 0x00 ; 0
+ 508: 60 e0 ldi r22, 0x00 ; 0
+ 50a: 70 e0 ldi r23, 0x00 ; 0
+ 50c: 80 e0 ldi r24, 0x00 ; 0
+ 50e: 90 e0 ldi r25, 0x00 ; 0
+ 510: 0e 94 8d 27 call 0x4f1a ; 0x4f1a <nrk_time_set>
+ 514: 0e 94 9d 03 call 0x73a ; 0x73a <rtl_task_config>
+ 518: 0e 94 03 02 call 0x406 ; 0x406 <nrk_create_taskset>
+ 51c: 0e 94 96 1d call 0x3b2c ; 0x3b2c <nrk_start>
+ 520: 80 e0 ldi r24, 0x00 ; 0
+ 522: 90 e0 ldi r25, 0x00 ; 0
+ 524: 0c 94 87 34 jmp 0x690e ; 0x690e <_exit>
+
+00000528 <Task1>:
+ 528: 2f 92 push r2
+ 52a: 3f 92 push r3
+ 52c: 4f 92 push r4
+ 52e: 5f 92 push r5
+ 530: 6f 92 push r6
+ 532: 7f 92 push r7
+ 534: 8f 92 push r8
+ 536: 9f 92 push r9
+ 538: af 92 push r10
+ 53a: bf 92 push r11
+ 53c: cf 92 push r12
+ 53e: df 92 push r13
+ 540: ef 92 push r14
+ 542: ff 92 push r15
+ 544: 0f 93 push r16
+ 546: 1f 93 push r17
+ 548: cf 93 push r28
+ 54a: df 93 push r29
+ 54c: cd b7 in r28, 0x3d ; 61
+ 54e: de b7 in r29, 0x3e ; 62
+ 550: 23 97 sbiw r28, 0x03 ; 3
+ 552: 0f b6 in r0, 0x3f ; 63
+ 554: f8 94 cli
+ 556: de bf out 0x3e, r29 ; 62
+ 558: 0f be out 0x3f, r0 ; 63
+ 55a: cd bf out 0x3d, r28 ; 61
+ 55c: 0e 94 e9 01 call 0x3d2 ; 0x3d2 <monome_comm_init>
+ 560: 81 e0 ldi r24, 0x01 ; 1
+ 562: 80 93 ea 03 sts 0x03EA, r24
+ 566: 8f ef ldi r24, 0xFF ; 255
+ 568: 80 93 fc 03 sts 0x03FC, r24
+ 56c: 80 93 c6 03 sts 0x03C6, r24
+ 570: 02 c0 rjmp .+4 ; 0x576 <Task1+0x4e>
+ 572: 0e 94 eb 25 call 0x4bd6 ; 0x4bd6 <nrk_wait_until_next_period>
+ 576: 0e 94 39 03 call 0x672 ; 0x672 <rtl_ready>
+ 57a: 88 23 and r24, r24
+ 57c: d1 f3 breq .-12 ; 0x572 <Task1+0x4a>
+ 57e: 52 e0 ldi r21, 0x02 ; 2
+ 580: 25 2e mov r2, r21
+ 582: 31 2c mov r3, r1
+ 584: 2c 0e add r2, r28
+ 586: 3d 1e adc r3, r29
+ 588: 43 e0 ldi r20, 0x03 ; 3
+ 58a: 44 2e mov r4, r20
+ 58c: 51 2c mov r5, r1
+ 58e: 4c 0e add r4, r28
+ 590: 5d 1e adc r5, r29
+ 592: 3e 01 movw r6, r28
+ 594: 08 94 sec
+ 596: 61 1c adc r6, r1
+ 598: 71 1c adc r7, r1
+ 59a: 31 e4 ldi r19, 0x41 ; 65
+ 59c: 83 2e mov r8, r19
+ 59e: 32 e0 ldi r19, 0x02 ; 2
+ 5a0: 93 2e mov r9, r19
+ 5a2: 2f e6 ldi r18, 0x6F ; 111
+ 5a4: a2 2e mov r10, r18
+ 5a6: 22 e0 ldi r18, 0x02 ; 2
+ 5a8: b2 2e mov r11, r18
+ 5aa: 9e e5 ldi r25, 0x5E ; 94
+ 5ac: c9 2e mov r12, r25
+ 5ae: 92 e0 ldi r25, 0x02 ; 2
+ 5b0: d9 2e mov r13, r25
+ 5b2: 83 e0 ldi r24, 0x03 ; 3
+ 5b4: e8 2e mov r14, r24
+ 5b6: 85 e0 ldi r24, 0x05 ; 5
+ 5b8: f8 2e mov r15, r24
+ 5ba: 0e 94 6e 03 call 0x6dc ; 0x6dc <rtl_rx_pkt_check>
+ 5be: 88 23 and r24, r24
+ 5c0: 49 f1 breq .+82 ; 0x614 <Task1+0xec>
+ 5c2: a1 01 movw r20, r2
+ 5c4: b2 01 movw r22, r4
+ 5c6: c3 01 movw r24, r6
+ 5c8: 0e 94 48 0a call 0x1490 ; 0x1490 <rtl_rx_pkt_get>
+ 5cc: 8c 01 movw r16, r24
+ 5ce: 89 81 ldd r24, Y+1 ; 0x01
+ 5d0: 99 27 eor r25, r25
+ 5d2: 9f 93 push r25
+ 5d4: 8f 93 push r24
+ 5d6: 8a 81 ldd r24, Y+2 ; 0x02
+ 5d8: 99 27 eor r25, r25
+ 5da: 9f 93 push r25
+ 5dc: 8f 93 push r24
+ 5de: 9f 92 push r9
+ 5e0: 8f 92 push r8
+ 5e2: 0e 94 81 32 call 0x6502 ; 0x6502 <printf>
+ 5e6: 8d b7 in r24, 0x3d ; 61
+ 5e8: 9e b7 in r25, 0x3e ; 62
+ 5ea: 06 96 adiw r24, 0x06 ; 6
+ 5ec: 0f b6 in r0, 0x3f ; 63
+ 5ee: f8 94 cli
+ 5f0: 9e bf out 0x3e, r25 ; 62
+ 5f2: 0f be out 0x3f, r0 ; 63
+ 5f4: 8d bf out 0x3d, r24 ; 61
+ 5f6: 89 81 ldd r24, Y+1 ; 0x01
+ 5f8: 84 30 cpi r24, 0x04 ; 4
+ 5fa: 61 f4 brne .+24 ; 0x614 <Task1+0xec>
+ 5fc: 80 91 ea 03 lds r24, 0x03EA
+ 600: 80 ff sbrs r24, 0
+ 602: 08 c0 rjmp .+16 ; 0x614 <Task1+0xec>
+ 604: f8 01 movw r30, r16
+ 606: 83 81 ldd r24, Z+3 ; 0x03
+ 608: 80 93 fc 03 sts 0x03FC, r24
+ 60c: 0e 94 b9 01 call 0x372 ; 0x372 <monome_set_player_num>
+ 610: 0e 94 50 03 call 0x6a0 ; 0x6a0 <rtl_rx_pkt_release>
+ 614: 80 91 ea 03 lds r24, 0x03EA
+ 618: 80 ff sbrs r24, 0
+ 61a: 18 c0 rjmp .+48 ; 0x64c <Task1+0x124>
+ 61c: c6 01 movw r24, r12
+ 61e: 0e 94 a1 32 call 0x6542 ; 0x6542 <puts>
+ 622: 82 e0 ldi r24, 0x02 ; 2
+ 624: 0e 94 53 03 call 0x6a6 ; 0x6a6 <rtl_tx_pkt_check>
+ 628: 88 23 and r24, r24
+ 62a: d9 f7 brne .-10 ; 0x622 <Task1+0xfa>
+ 62c: 80 91 c6 03 lds r24, 0x03C6
+ 630: 80 93 06 05 sts 0x0506, r24
+ 634: 84 e0 ldi r24, 0x04 ; 4
+ 636: 80 93 85 05 sts 0x0585, r24
+ 63a: 42 e0 ldi r20, 0x02 ; 2
+ 63c: 64 e0 ldi r22, 0x04 ; 4
+ 63e: c7 01 movw r24, r14
+ 640: 0e 94 6b 07 call 0xed6 ; 0xed6 <rtl_tx_pkt>
+ 644: 82 e0 ldi r24, 0x02 ; 2
+ 646: 0e 94 0f 0a call 0x141e ; 0x141e <rtl_wait_until_tx_done>
+ 64a: 0d c0 rjmp .+26 ; 0x666 <Task1+0x13e>
+ 64c: 80 91 fc 03 lds r24, 0x03FC
+ 650: 99 27 eor r25, r25
+ 652: 9f 93 push r25
+ 654: 8f 93 push r24
+ 656: bf 92 push r11
+ 658: af 92 push r10
+ 65a: 0e 94 81 32 call 0x6502 ; 0x6502 <printf>
+ 65e: 0f 90 pop r0
+ 660: 0f 90 pop r0
+ 662: 0f 90 pop r0
+ 664: 0f 90 pop r0
+ 666: 0e 94 eb 25 call 0x4bd6 ; 0x4bd6 <nrk_wait_until_next_period>
+ 66a: a7 cf rjmp .-178 ; 0x5ba <Task1+0x92>
+
+0000066c <rtl_wait_until_global_slot>:
+
+int8_t rtl_wait_until_global_slot (uint16_t slot)
+{
+ return NRK_ERROR;
+}
+ 66c: 8f ef ldi r24, 0xFF ; 255
+ 66e: 9f ef ldi r25, 0xFF ; 255
+ 670: 08 95 ret
+
+00000672 <rtl_ready>:
+
+int8_t rtl_ready ()
+{
+ if (_rtl_ready == 1)
+ 672: 80 91 15 03 lds r24, 0x0315
+ 676: 81 30 cpi r24, 0x01 ; 1
+ 678: 19 f4 brne .+6 ; 0x680 <rtl_ready+0xe>
+ 67a: 81 e0 ldi r24, 0x01 ; 1
+ 67c: 90 e0 ldi r25, 0x00 ; 0
+ 67e: 08 95 ret
+ 680: 8f ef ldi r24, 0xFF ; 255
+ 682: 9f ef ldi r25, 0xFF ; 255
+ return NRK_OK;
+ else
+ return NRK_ERROR;
+}
+ 684: 08 95 ret
+
+00000686 <rtl_get_slot>:
+
+uint8_t* rtl_rx_pkt_get (uint8_t *len, int8_t *rssi,uint8_t *slot)
+{
+if(rtl_rx_pkt_check()==0)
+ {
+ *len=0;
+ *rssi=0;
+ *slot=0;
+ return NULL;
+ }
+ *len=rtl_rfRxInfo.length;
+ *rssi=rtl_rfRxInfo.rssi;
+ *slot=rtl_rx_slot;
+
+return rtl_rfRxInfo.pPayload;
+}
+
+uint16_t rtl_get_slot ()
+{
+ return current_global_slot;
+ 686: 80 91 14 07 lds r24, 0x0714
+ 68a: 90 91 15 07 lds r25, 0x0715
+ 68e: 08 95 ret
+
+00000690 <rtl_sync_status>:
+}
+
+/**
+ * rtl_sync_status()
+ *
+ * Return: 1 if sync is good, 0 if sync has failed
+ *
+ * This function returns if the synchronization is good. _rtl_sync_ok
+ * is set inside the interrupt based upon the time between the last cycle
+ * and the sync pulse.
+ */
+uint8_t rtl_sync_status ()
+{
+ 690: 80 91 9b 03 lds r24, 0x039B
+ return _rtl_sync_ok;
+}
+ 694: 99 27 eor r25, r25
+ 696: 08 95 ret
+
+00000698 <rtl_check_abs_tx_status>:
+
+/**
+ * rtl_check_abs_tx_status()
+ *
+ * This function allows an upper layer to check if the abs TX packet
+ * has been sent. This is only for the single absolute packet.
+ *
+ * Returns: 1 if the packet was sent, 0 otherwise
+ */
+uint8_t rtl_check_abs_tx_status ()
+{
+ 698: 80 91 77 05 lds r24, 0x0577
+ return rtl_abs_tx_ready;
+}
+ 69c: 99 27 eor r25, r25
+ 69e: 08 95 ret
+
+000006a0 <rtl_rx_pkt_release>:
+
+/**
+ * rtl_tx_abs_packet()
+ *
+ * This function sends a single packet at an arbitrary slot
+ * over the entire TDMA frame.
+ *
+ * Arguments: RF_TX_INFO *tx is a pointer to a transmit structure, this
structure
+ * must have a valid pPayload pointer to the real packet.
+ * uint16_t abs_slot is the number of the absolute slot that
will tx.
+ *
+ * Return: returns 1 upon success, and 0 on failure due to overlaping TX
slot
+ *
+ */
+int8_t rtl_tx_abs_pkt (uint8_t *buf, uint8_t len, uint16_t abs_slot)
+{
+ uint8_t slot;
+ uint32_t slot_mask;
+
+ // Make sure this isn't already a TX slot
+ slot = abs_slot % 32;
+ slot_mask = ((uint32_t) 1) << slot;
+ if (slot_mask & rtl_tdma_tx_mask)
+ return 0;
+
+ rtl_tx_info[TDMA_FRAME_SLOTS+1].pPayload= buf;
+ rtl_tx_info[TDMA_FRAME_SLOTS+1].length= len;
+ //rtl_rfTxInfo[TDMA_FRAME_SLOTS + 1] = tx; // last element for abs
slot
+ rtl_abs_tx_slot = abs_slot;
+ rtl_set_abs_wakeup (abs_slot, 0); // schedule once, but don't repeat
+ rtl_abs_tx_ready = 1;
+ return 1;
+
+}
+
+/**
+ * rtl_tx_packet()
+ *
+ * This function associates a slot with a particular packet that needs
+ * to be sent.
+ *
+ * Arguments: RF_TX_INFO *tx is a pointer to a transmit structure, this
structure
+ * must have a valid pPayload pointer to the real packet.
+ * uint8_t slot is the value of the tx slot (starting from 0)
+ *
+ * Return: currently always returns 1
+ */
+int8_t rtl_tx_pkt (uint8_t *tx_buf, uint8_t len, uint8_t slot)
+{
+
+ if (slot == RTL_CONTENTION) {
+ slot = rand () % _rtl_contention_slots;
+ slot = (TDMA_FRAME_SLOTS - slot - 1);
+ _rtl_contention_pending = 1;
+ }
+ rtl_tx_info[slot].pPayload = tx_buf; // pass le pointer
+ rtl_tx_info[slot].length = len; // pass le pointer
+ rtl_tx_data_ready |= ((uint32_t) 1 << slot); // set the flag
+ return 1;
+}
+
+/**
+ * rtl_release_rx_packet()
+ *
+ * This function releases the link layer's hold on the rx buffer.
+ * This must be called after a packet is received before a new
+ * packet can be buffered! This should ideally be done by the
+ * network layer.
+ */
+void rtl_rx_pkt_release()
+{
+ rtl_rx_data_ready = 0;
+ 6a0: 10 92 02 05 sts 0x0502, r1
+ 6a4: 08 95 ret
+
+000006a6 <rtl_tx_pkt_check>:
+}
+
+/**
+ * rtl_check_tx_status()
+ *
+ * This function allows an upper layer to check if a TX packet
+ * has been sent. For instance, you would first send a packet with
+ * rtl_tx_packet(&myTX, 8 );
+ * and then you could sleep or do more work, and eventually check
+ * done=rtl_check_tx_status(8);
+ * to see if the packet had been sent by the interrupt routine.
+ *
+ * Returns: 1 if the packet was sent, 0 otherwise
+ */
+int8_t rtl_tx_pkt_check(uint8_t slot)
+{
+ 6a6: 28 2f mov r18, r24
+ if (slot == RTL_CONTENTION) {
+ 6a8: 81 32 cpi r24, 0x21 ; 33
+ 6aa: 31 f4 brne .+12 ; 0x6b8 <rtl_tx_pkt_check+0x12>
+ return _rtl_contention_pending;
+ 6ac: 80 91 04 04 lds r24, 0x0404
+ 6b0: 99 27 eor r25, r25
+ 6b2: 87 fd sbrc r24, 7
+ 6b4: 90 95 com r25
+ 6b6: 08 95 ret
+ 6b8: 80 91 96 03 lds r24, 0x0396
+ 6bc: 90 91 97 03 lds r25, 0x0397
+ 6c0: a0 91 98 03 lds r26, 0x0398
+ 6c4: b0 91 99 03 lds r27, 0x0399
+ 6c8: 04 c0 rjmp .+8 ; 0x6d2 <rtl_tx_pkt_check+0x2c>
+ 6ca: b6 95 lsr r27
+ 6cc: a7 95 ror r26
+ 6ce: 97 95 ror r25
+ 6d0: 87 95 ror r24
+ 6d2: 2a 95 dec r18
+ 6d4: d2 f7 brpl .-12 ; 0x6ca <rtl_tx_pkt_check+0x24>
+ 6d6: 81 70 andi r24, 0x01 ; 1
+ 6d8: 90 70 andi r25, 0x00 ; 0
+ }
+ if ((rtl_tx_data_ready & ((uint32_t) 1 << slot)) != 0)
+ return 1;
+ return 0;
+}
+ 6da: 08 95 ret
+
+000006dc <rtl_rx_pkt_check>:
+
+/**
+ * rtl_check_rx_status()
+ *
+ * This function returns if there is a packet in the link layer
+ * rx buffer. Once a packet has been received, it should be quickly
+ * processed or moved and then rtl_release_rx_packet() should be called.
+ * rtl_release_rx_packet() then resets the value of rtl_check_rx_status()
+ *
+ * Returns: 1 if a new packet was received, 0 otherwise
+ */
+int8_t rtl_rx_pkt_check()
+{
+ 6dc: 80 91 02 05 lds r24, 0x0502
+ return rtl_rx_data_ready;
+}
+ 6e0: 99 27 eor r25, r25
+ 6e2: 87 fd sbrc r24, 7
+ 6e4: 90 95 com r25
+ 6e6: 08 95 ret
+
+000006e8 <rtl_set_cycle_callback>:
+
+void rtl_set_channel (uint8_t chan)
+{
+ rtl_param.channel = chan;
+ rf_set_channel (chan);
+}
+
+
+uint8_t _rtl_rx_sync ()
+{
+ int8_t n;
+ uint8_t tmp_token;
+ uint16_t timeout,start_lat;
+ uint16_t timer;
+ uint8_t tdma_start_tick;
+ uint8_t battery_save_cnt;
+ uint8_t last_nrk_tick;
+ uint16_t elapsed_time;
+ int16_t tmp_offset;
+ volatile uint16_t sfd_start_time;
+
+ // DISABLE_GLOBAL_INT ();
+ timer=0;
+ battery_save_cnt=0;
+
+while(1)
+{
+rtl_rfRxInfo.pPayload[GLOBAL_SLOT]=0xFF;
+rtl_rfRxInfo.pPayload[GLOBAL_SLOT+1]=0xFF;
+#ifdef LED_DEBUG
+ nrk_led_set(1);
+#endif
+#ifdef GPIO_RX_DEBUG
+ nrk_gpio_set(NRK_DEBUG_1);
+#endif
+
+/*
+ // prints out a measurement of OS Tick
+ nrk_int_disable();
+ last_nrk_tick=_nrk_get_raw_timer();
+ while(1)
+ {
+ last_nrk_tick=_nrk_get_raw_timer();
+ while(last_nrk_tick==_nrk_get_raw_timer());
+ _nrk_stop_high_speed_timer();
+ _nrk_reset_high_speed_timer();
+ _nrk_start_high_speed_timer();
+ last_nrk_tick=_nrk_get_raw_timer();
+ while(last_nrk_tick==_nrk_get_raw_timer());
+ _nrk_stop_high_speed_timer();
+ tick_to_slot_offset=_nrk_get_high_speed_timer();
+ printf( "time = %d\r\n",tick_to_slot_offset );
+}
+*/
+
+ rf_set_rx (&rtl_rfRxInfo, rtl_param.channel); // sets rx buffer
and channel
+ rf_polling_rx_on ();
+ n = 0;
+ _rtl_sync_ok = 0;
+ last_nrk_tick=0; // should be 0 going in
+ //_nrk_prev_timer_val=250;
+ _nrk_set_next_wakeup(250);
+ //timeout=200;
+ while ((n = rf_rx_check_sfd()) == 0) {
+ // every OS tick
+ if(last_nrk_tick!=_nrk_os_timer_get())
+ {
+ //_nrk_stop_high_speed_timer();
+ //_nrk_reset_high_speed_timer();
+ //_nrk_start_high_speed_timer();
+ last_nrk_tick=_nrk_os_timer_get();
+ timer++;
+ if(timer>RTL_TOKEN_TIMEOUT)
+ {
+ timer=0;
+ //printf( "token timeout! %d\r\n",battery_save_cnt );
+ _rtl_time_token=0;
+ battery_save_cnt++;
+ if(battery_save_cnt>RTL_BATTERY_SAVE_TIMEOUT)
+ {
+ battery_save_cnt=0;
+ nrk_battery_save();
+ }
+ break;
+ }
+ }
+
+ }
+
+ // nrk_kprintf( PSTR("got sfd\r\n"));
+ // Wait measured time until next slot
+ // reset OS timer
+
+ _nrk_high_speed_timer_reset();
+ // capture SFD transition with high speed timer
+ sfd_start_time=_nrk_high_speed_timer_get();
+ tdma_start_tick=_nrk_os_timer_get();
+ //nrk_gpio_set(NRK_DEBUG_1);
+
+ timeout = tdma_start_tick+4;
+ // an interrupt could happen in here and mess things up
+ if (n != 0) {
+ n = 0;
+ // Packet on its way
+ while ((n = rf_polling_rx_packet ()) == 0) {
+ if (_nrk_os_timer_get () > timeout)
+ {
+ //nrk_kprintf( PSTR("Pkt timed out\r\n") );
+ break; // huge timeout as failsafe
+ }
+ }
+ }
+
+ rf_rx_off ();
+ if (n == 1 && rtl_rfRxInfo.length>0) {
+ // CRC and checksum passed
+ uint8_t explicit_sync_pkt;
+ rtl_rx_data_ready = 1;
+ //rtl_rx_slot = 0;
+ global_slot = (volatile)rtl_rfRxInfo.pPayload[GLOBAL_SLOT];
+ global_slot <<= 8;
+ global_slot |= (volatile)rtl_rfRxInfo.pPayload[GLOBAL_SLOT + 1];
+ //global_slot++;
+ tmp_token= 0x7F &
((volatile)rtl_rfRxInfo.pPayload[TIME_SYNC_TOKEN]);
+ //printf( "%d: ",global_slot );
+ //printf ("sync slot %d %d\r\n", global_slot, rtl_rfRxInfo.length);
+ // Time Sync Token goes to 127 since MSB is the explicit sync flag
+ // After 110, assume packets were dropped and try to catch the wrap
+ // around case.
+ //if((global_slot%32)!=1)
+ //printf( "token %d %d\r\n",tmp_token,_rtl_time_token);
+
+ // check if this should be just greater than!
+ if(tmp_token>_rtl_time_token || (_rtl_time_token>110 && tmp_token<10))
+ {
+ rtl_rx_slot = (global_slot ) % 32;
+ // only acccept sync if the token is greater than yours
+ if((rtl_rfRxInfo.pPayload[TIME_SYNC_TOKEN]&0x80)==0 )
+ {
+ // Got normal packet
+ // if we got a good packet, send the signal to
+ // the application
+
+ // Check if we are supposed to RX on this slot, or if it was an
overheard sync slot with data
+ // If it had data but not for me, ignore it
+ if((((uint32_t)1<<rtl_rx_slot) & rtl_tdma_rx_mask)==(uint32_t)0)
+ rtl_rx_pkt_release();
+ else
+ nrk_event_signal (rtl_rx_pkt_signal);
+ }
+ // If it is a time sync packet, then release it
+ // so it doesn't block a buffer...
+ else {
+ // Explicit Sync
+ rtl_rx_pkt_release();
+ // nrk_event_signal (SIG(RTL_RX_PKT_EVENT));
+
+ }
+ // Got a good signal...
+ break;
+ }
+ /*else
+ {
+ nrk_kprintf( PSTR("Bad token\r\n") );
+ printf( "tmp %d rtl %d\r\n",tmp_token,_rtl_time_token );
+ }*/
+
+ } //else printf( "Error n=%d %d\r\n", n, rtl_rfRxInfo.length);
+}
+
+#ifdef LED_DEBUG
+ nrk_led_clr(1);
+#endif
+
+ rtl_rx_slot = (global_slot) % 32;
+ current_global_slot = global_slot-1;
+ //printf( "Got sync token %d\r\n",tmp_token );
+ //printf( "sync slot %u\r\n",global_slot);
+ // Start new time token cycle
+ // Just in case _rtl_abs_match was not called
+ _rtl_time_token_status=RTL_TOKEN_NOT_SENT;
+
+ _rtl_time_token=tmp_token;
+ _rtl_sync_ok = 1;
+ _rtl_clr_abs_wakeup (last_sync_slot);
+
+
+
+ if(global_slot>=MAX_SLOTS || global_slot<2)
+ last_sync_slot=MAX_SLOTS-2;
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.lst Sat Dec 11
12:36:09 2010
@@ -0,0 +1,867 @@
+ 1 .file "main.c"
+ 2 __SREG__ = 0x3f
+ 3 __SP_H__ = 0x3e
+ 4 __SP_L__ = 0x3d
+ 5 __tmp_reg__ = 0
+ 6 __zero_reg__ = 1
+ 7 .global __do_copy_data
+ 8 .global __do_clear_bss
+ 11 .text
+ 12 .Ltext0:
+ 138 .global monome_setup_system
+ 140 monome_setup_system:
+ 141 .stabd 46,0,0
+ 1:main.c **** /*
+ 2:main.c **** * main.c
+ 3:main.c **** *
+ 4:main.c **** *
+ 5:main.c **** * Created by Philip Asare on 12/6/10.
+ 6:main.c **** * Copyright 2010 __MyCompanyName__. All rights
reserved.
+ 7:main.c **** *
+ 8:main.c **** */
+ 9:main.c ****
+ 10:main.c **** #include <nrk.h>
+ 11:main.c **** #include <include.h>
+ 12:main.c **** #include <ulib.h>
+ 13:main.c **** #include <stdio.h>
+ 14:main.c **** #include <avr/sleep.h>
+ 15:main.c **** #include <hal.h>
+ 16:main.c **** #include <rt_link.h>
+ 17:main.c **** #include <nrk_error.h>
+ 18:main.c ****
+ 19:main.c **** /* controller tx slots --> base station rx slots */
+ 20:main.c **** #define C1
+ 21:main.c ****
+ 22:main.c **** #ifdef C1
+ 23:main.c **** #define MY_TX 2
+ 24:main.c **** #define MY_RX 5
+ 25:main.c **** #endif
+ 26:main.c ****
+ 27:main.c **** #ifdef C2
+ 28:main.c **** #define MY_TX 4
+ 29:main.c **** #define MY_RX 7
+ 30:main.c **** #endif
+ 31:main.c ****
+ 32:main.c **** #ifdef C3
+ 33:main.c **** #define MY_TX 6
+ 34:main.c **** #define MY_RX 9
+ 35:main.c **** #endif
+ 36:main.c ****
+ 37:main.c **** #ifdef C4
+ 38:main.c **** #define MY_TX 8
+ 39:main.c **** #define MY_RX 11
+ 40:main.c **** #endif
+ 41:main.c ****
+ 42:main.c **** #define ALL_RX 3
+ 43:main.c ****
+ 44:main.c **** /* game states and controller tracking */
+ 45:main.c ****
+ 46:main.c **** uint8_t state, player_num;
+ 47:main.c ****
+ 48:main.c **** #define SYNC 1
+ 49:main.c **** #define SELECT (1<<1)
+ 50:main.c **** #define PREGAME (1<<2)
+ 51:main.c ****
+ 52:main.c **** /* monome helper functions */
+ 53:main.c ****
+ 54:main.c **** #define type(x) (sizeof(x) + PKT_DATA_START)
+ 55:main.c ****
+ 56:main.c **** typedef struct{
+ 57:main.c **** uint8_t player;
+ 58:main.c **** } monome_comm_sync_pkt;
+ 59:main.c ****
+ 60:main.c **** monome_comm_sync_pkt sync_pkt_tx, sync_pkt_rx;
+ 61:main.c ****
+ 62:main.c **** inline void monome_set_player_num();
+ 63:main.c **** inline void monome_setup_system();
+ 64:main.c **** inline void monome_comm_init();
+ 65:main.c ****
+ 66:main.c **** uint8_t tx_len;
+ 67:main.c ****
+ 68:main.c **** /* task setup */
+ 69:main.c ****
+ 70:main.c **** NRK_STK Stack1[NRK_APP_STACKSIZE];
+ 71:main.c **** nrk_task_type TaskOne;
+ 72:main.c **** void Task1(void);
+ 73:main.c ****
+ 74:main.c **** inline void monome_comm_init();
+ 75:main.c **** void nrk_create_taskset();
+ 76:main.c ****
+ 77:main.c **** uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+ 78:main.c **** uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+ 79:main.c ****
+ 80:main.c **** int
+ 81:main.c **** main ()
+ 82:main.c **** {
+ 83:main.c **** uint16_t div;
+ 84:main.c **** nrk_setup_ports();
+ 85:main.c **** nrk_setup_uart(UART_BAUDRATE_115K2);
+ 86:main.c ****
+ 87:main.c **** printf( "Starting up...\r\n" );
+ 88:main.c ****
+ 89:main.c ****
+ 90:main.c **** nrk_init();
+ 91:main.c ****
+ 92:main.c **** nrk_led_clr(0);
+ 93:main.c **** nrk_led_clr(1);
+ 94:main.c **** nrk_led_clr(2);
+ 95:main.c **** nrk_led_clr(3);
+ 96:main.c ****
+ 97:main.c **** nrk_time_set(0,0);
+ 98:main.c ****
+ 99:main.c ****
+ 100:main.c **** rtl_task_config();
+ 101:main.c ****
+ 102:main.c **** nrk_create_taskset ();
+ 103:main.c ****
+ 104:main.c **** nrk_start();
+ 105:main.c ****
+ 106:main.c **** return 0;
+ 107:main.c **** }
+ 108:main.c ****
+ 109:main.c **** void Task1()
+ 110:main.c **** {
+ 111:main.c **** //uint8_t j, i;
+ 112:main.c **** uint8_t *local_rx_buf;
+ 113:main.c **** uint8_t length,slot;
+ 114:main.c **** int8_t rssi;
+ 115:main.c ****
+ 116:main.c **** monome_comm_init();
+ 117:main.c **** monome_setup_system();
+ 118:main.c ****
+ 119:main.c **** while(!rtl_ready()) nrk_wait_until_next_period();
+ 120:main.c ****
+ 121:main.c **** while(1){
+ 122:main.c **** if( rtl_rx_pkt_check()!=0 )
+ 123:main.c **** {
+ 124:main.c **** //nrk_led_set(BLUE_LED);
+ 125:main.c **** local_rx_buf=rtl_rx_pkt_get(&length, &rssi,
&slot);
+ 126:main.c **** printf( "Got Packet on slot %d %d:
\r\n",slot,length );
+ 127:main.c **** if(length == type(monome_comm_sync_pkt)){
+ 128:main.c **** if(state & SYNC){
+ 129:main.c **** //memcpy(&rx_buf[PKT_DATA_START],
&sync_pkt_rx, sizeof(monome_comm_sync_pkt));
+ 130:main.c **** player_num = local_rx_buf[PKT_DATA_START];
+ 131:main.c **** monome_set_player_num();
+ 132:main.c **** rtl_rx_pkt_release();
+ 133:main.c **** }
+ 134:main.c **** }
+ 135:main.c **** }
+ 136:main.c **** if(state & SYNC){
+ 137:main.c **** printf("waiting to sync\r\n");
+ 138:main.c **** while( rtl_tx_pkt_check(MY_TX)!=0 );
+ 139:main.c **** memcpy(&tx_buf[PKT_DATA_START], &sync_pkt_tx,
sizeof(monome_comm_sync_pkt));
+ 140:main.c **** tx_len = type(monome_comm_sync_pkt);
+ 141:main.c **** rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ 142:main.c **** rtl_wait_until_tx_done(MY_TX);
+ 143:main.c **** }
+ 144:main.c ****
+ 145:main.c **** else{
+ 146:main.c **** printf("synced as player %d\r\n", player_num);
+ 147:main.c **** }
+ 148:main.c **** nrk_wait_until_next_period();
+ 149:main.c **** }
+ 150:main.c **** }
+ 151:main.c ****
+ 152:main.c **** void
+ 153:main.c **** nrk_create_taskset()
+ 154:main.c **** {
+ 155:main.c ****
+ 156:main.c ****
+ 157:main.c **** TaskOne.task = Task1;
+ 158:main.c **** TaskOne.Ptos = (void *)
&Stack1[NRK_APP_STACKSIZE-1];
+ 159:main.c **** TaskOne.Pbos = (void *) &Stack1[0];
+ 160:main.c **** TaskOne.prio = 2;
+ 161:main.c **** TaskOne.FirstActivation = TRUE;
+ 162:main.c **** TaskOne.Type = BASIC_TASK;
+ 163:main.c **** TaskOne.SchType = PREEMPTIVE;
+ 164:main.c **** TaskOne.period.secs = 1;
+ 165:main.c **** TaskOne.period.nano_secs = 0;
+ 166:main.c **** TaskOne.cpu_reserve.secs = 0;
+ 167:main.c **** TaskOne.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ 168:main.c **** TaskOne.offset.secs = 0;
+ 169:main.c **** TaskOne.offset.nano_secs= 0;
+ 170:main.c **** nrk_activate_task (&TaskOne);
+ 171:main.c ****
+ 172:main.c ****
+ 173:main.c **** printf ("Create done\r\n");
+ 174:main.c **** }
+ 175:main.c ****
+ 176:main.c **** inline void monome_comm_init(){
+ 177:main.c **** rtl_init (RTL_MOBILE);
+ 178:main.c ****
+ 179:main.c **** /* rx schedules */
+ 180:main.c **** rtl_set_schedule( RTL_RX, MY_RX, 1 );
+ 181:main.c **** rtl_set_schedule( RTL_RX, ALL_RX, 1 );
+ 182:main.c ****
+ 183:main.c **** /* tx schedules */
+ 184:main.c **** rtl_set_schedule( RTL_TX, MY_TX, 1 );
+ 185:main.c ****
+ 186:main.c **** rtl_start();
+ 187:main.c **** rtl_rx_pkt_set_buffer(rx_buf,
RF_MAX_PAYLOAD_SIZE);
+ 188:main.c **** }
+ 189:main.c ****
+ 190:main.c **** inline void monome_setup_system(){
+ 143 .LM0:
+ 144 .LFBB1:
+ 145 /* prologue: frame size=0 */
+ 146 /* prologue end (size=0) */
+ 191:main.c **** state = 0 | SYNC;
+ 148 .LM1:
+ 149 0000 81E0 ldi r24,lo8(1)
+ 150 0002 8093 0000 sts state,r24
+ 192:main.c **** player_num = -1;
+ 152 .LM2:
+ 153 0006 8FEF ldi r24,lo8(-1)
+ 154 0008 8093 0000 sts player_num,r24
+ 193:main.c **** sync_pkt_tx.player = -1;
+ 156 .LM3:
+ 157 000c 8093 0000 sts sync_pkt_tx,r24
+ 158 /* epilogue: frame size=0 */
+ 159 0010 0895 ret
+ 160 /* epilogue end (size=1) */
+ 161 /* function monome_setup_system size 9 (8) */
+ 163 .Lscope1:
+ 165 .stabd 78,0,0
+ 166 .data
+ 167 .LC0:
+ 168 0000 7365 7474 .string "setting player\r"
+ 168 696E 6720
+ 168 706C 6179
+ 168 6572 0D00
+ 169 .LC1:
+ 170 0010 706C 6179 .string "player number: %d\r\n"
+ 170 6572 206E
+ 170 756D 6265
+ 170 723A 2025
+ 170 640D 0A00
+ 171 .text
+ 173 .global monome_set_player_num
+ 175 monome_set_player_num:
+ 176 .stabd 46,0,0
+ 194:main.c ****
+ 195:main.c **** }
+ 196:main.c ****
+ 197:main.c **** inline void monome_set_player_num(){
+ 178 .LM4:
+ 179 .LFBB2:
+ 180 /* prologue: frame size=0 */
+ 181 /* prologue end (size=0) */
+ 198:main.c **** printf("setting player\r\n");
+ 183 .LM5:
+ 184 0012 80E0 ldi r24,lo8(.LC0)
+ 185 0014 90E0 ldi r25,hi8(.LC0)
+ 186 0016 0E94 0000 call puts
+ 199:main.c **** //player_num = sync_pkt_rx.player;
+ 200:main.c **** printf("player number: %d\r\n", player_num);
+ 188 .LM6:
+ 189 001a 8091 0000 lds r24,player_num
+ 190 001e 9927 clr r25
+ 191 0020 9F93 push r25
+ 192 0022 8F93 push r24
+ 193 0024 80E0 ldi r24,lo8(.LC1)
+ 194 0026 90E0 ldi r25,hi8(.LC1)
+ 195 0028 9F93 push r25
+ 196 002a 8F93 push r24
+ 197 002c 0E94 0000 call printf
+ 201:main.c **** switch (player_num) {
+ 199 .LM7:
+ 200 0030 0F90 pop __tmp_reg__
+ 201 0032 0F90 pop __tmp_reg__
+ 202 0034 0F90 pop __tmp_reg__
+ 203 0036 0F90 pop __tmp_reg__
+ 204 0038 8091 0000 lds r24,player_num
+ 205 003c 8130 cpi r24,lo8(1)
+ 206 003e 01F0 breq .L11
+ 208 .LM8:
+ 209 0040 8130 cpi r24,lo8(1)
+ 210 0042 00F0 brlo .L5
+ 211 0044 8230 cpi r24,lo8(2)
+ 212 0046 01F0 breq .L7
+ 213 0048 8330 cpi r24,lo8(3)
+ 214 004a 01F4 brne .L4
+ 215 004c 00C0 rjmp .L8
+ 216 .L5:
+ 202:main.c **** case 0:
+ 203:main.c **** nrk_led_set(RED_LED);
+ 218 .LM9:
+ 219 004e 83E0 ldi r24,lo8(3)
+ 220 0050 90E0 ldi r25,hi8(3)
+ 221 0052 00C0 rjmp .L10
+ 222 .L7:
+ 204:main.c **** break;
+ 205:main.c **** case 1:
+ 206:main.c **** nrk_led_set(GREEN_LED);
+ 207:main.c **** break;
+ 208:main.c **** case 2:
+ 209:main.c **** nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);
+ 224 .LM10:
+ 225 0054 83E0 ldi r24,lo8(3)
+ 226 0056 90E0 ldi r25,hi8(3)
+ 227 0058 0E94 0000 call nrk_led_set
+ 228 .L11:
+ 229 005c 82E0 ldi r24,lo8(2)
+ 230 005e 90E0 ldi r25,hi8(2)
+ 231 0060 00C0 rjmp .L10
+ 232 .L8:
+ 210:main.c **** break;
+ 211:main.c **** case 3:
+ 212:main.c **** nrk_led_set(BLUE_LED);
+ 234 .LM11:
+ 235 0062 81E0 ldi r24,lo8(1)
+ 236 0064 90E0 ldi r25,hi8(1)
+ 237 .L10:
+ 238 0066 0E94 0000 call nrk_led_set
+ 239 .L4:
+ 213:main.c **** break;
+ 214:main.c **** default:
+ 215:main.c **** break;
+ 216:main.c **** }
+ 217:main.c **** state = 0 | SELECT;
+ 241 .LM12:
+ 242 006a 82E0 ldi r24,lo8(2)
+ 243 006c 8093 0000 sts state,r24
+ 244 /* epilogue: frame size=0 */
+ 245 0070 0895 ret
+ 246 /* epilogue end (size=1) */
+ 247 /* function monome_set_player_num size 48 (47) */
+ 249 .Lscope2:
+ 251 .stabd 78,0,0
+ 253 .global monome_comm_init
+ 255 monome_comm_init:
+ 256 .stabd 46,0,0
+ 258 .LM13:
+ 259 .LFBB3:
+ 260 /* prologue: frame size=0 */
+ 261 /* prologue end (size=0) */
+ 263 .LM14:
+ 264 0072 80E0 ldi r24,lo8(0)
+ 265 0074 0E94 0000 call rtl_init
+ 267 .LM15:
+ 268 0078 41E0 ldi r20,lo8(1)
+ 269 007a 65E0 ldi r22,lo8(5)
+ 270 007c 80E0 ldi r24,lo8(0)
+ 271 007e 0E94 0000 call rtl_set_schedule
+ 273 .LM16:
+ 274 0082 41E0 ldi r20,lo8(1)
+ 275 0084 63E0 ldi r22,lo8(3)
+ 276 0086 80E0 ldi r24,lo8(0)
+ 277 0088 0E94 0000 call rtl_set_schedule
+ 279 .LM17:
+ 280 008c 41E0 ldi r20,lo8(1)
+ 281 008e 62E0 ldi r22,lo8(2)
+ 282 0090 81E0 ldi r24,lo8(1)
+ 283 0092 0E94 0000 call rtl_set_schedule
+ 285 .LM18:
+ 286 0096 0E94 0000 call rtl_start
+ 288 .LM19:
+ 289 009a 64E7 ldi r22,lo8(116)
+ 290 009c 80E0 ldi r24,lo8(rx_buf)
+ 291 009e 90E0 ldi r25,hi8(rx_buf)
+ 292 00a0 0E94 0000 call rtl_rx_pkt_set_buffer
+ 293 /* epilogue: frame size=0 */
+ 294 00a4 0895 ret
+ 295 /* epilogue end (size=1) */
+ 296 /* function monome_comm_init size 26 (25) */
+ 298 .Lscope3:
+ 300 .stabd 78,0,0
+ 301 .data
+ 302 .LC2:
+ 303 0024 4372 6561 .string "Create done\r"
+ 303 7465 2064
+ 303 6F6E 650D
+ 303 00
+ 304 .text
+ 306 .global nrk_create_taskset
+ 308 nrk_create_taskset:
+ 309 .stabd 46,0,0
+ 311 .LM20:
+ 312 .LFBB4:
+ 313 /* prologue: frame size=0 */
+ 314 /* prologue end (size=0) */
+ 316 .LM21:
+ 317 00a6 80E0 ldi r24,lo8(pm(Task1))
+ 318 00a8 90E0 ldi r25,hi8(pm(Task1))
+ 319 00aa 9093 0000 sts (TaskOne+5)+1,r25
+ 320 00ae 8093 0000 sts TaskOne+5,r24
+ 322 .LM22:
+ 323 00b2 80E0 ldi r24,lo8(Stack1+127)
+ 324 00b4 90E0 ldi r25,hi8(Stack1+127)
+ 325 00b6 9093 0000 sts (TaskOne+1)+1,r25
+ 326 00ba 8093 0000 sts TaskOne+1,r24
+ 328 .LM23:
+ 329 00be 80E0 ldi r24,lo8(Stack1)
+ 330 00c0 90E0 ldi r25,hi8(Stack1)
+ 331 00c2 9093 0000 sts (TaskOne+3)+1,r25
+ 332 00c6 8093 0000 sts TaskOne+3,r24
+ 334 .LM24:
+ 335 00ca 82E0 ldi r24,lo8(2)
+ 336 00cc 8093 0000 sts TaskOne+8,r24
+ 338 .LM25:
+ 339 00d0 81E0 ldi r24,lo8(1)
+ 340 00d2 8093 0000 sts TaskOne+7,r24
+ 342 .LM26:
+ 343 00d6 8093 0000 sts TaskOne+9,r24
+ 345 .LM27:
+ 346 00da 8093 0000 sts TaskOne+10,r24
+ 348 .LM28:
+ 349 00de 81E0 ldi r24,lo8(1)
+ 350 00e0 90E0 ldi r25,hi8(1)
+ 351 00e2 A0E0 ldi r26,hlo8(1)
+ 352 00e4 B0E0 ldi r27,hhi8(1)
+ 353 00e6 8093 0000 sts TaskOne+11,r24
+ 354 00ea 9093 0000 sts (TaskOne+11)+1,r25
+ 355 00ee A093 0000 sts (TaskOne+11)+2,r26
+ 356 00f2 B093 0000 sts (TaskOne+11)+3,r27
+ 358 .LM29:
+ 359 00f6 1092 0000 sts TaskOne+15,__zero_reg__
+ 360 00fa 1092 0000 sts (TaskOne+15)+1,__zero_reg__
+ 361 00fe 1092 0000 sts (TaskOne+15)+2,__zero_reg__
+ 362 0102 1092 0000 sts (TaskOne+15)+3,__zero_reg__
+ 364 .LM30:
+ 365 0106 1092 0000 sts TaskOne+19,__zero_reg__
+ 366 010a 1092 0000 sts (TaskOne+19)+1,__zero_reg__
+ 367 010e 1092 0000 sts (TaskOne+19)+2,__zero_reg__
+ 368 0112 1092 0000 sts (TaskOne+19)+3,__zero_reg__
+ 370 .LM31:
+ 371 0116 80E0 ldi r24,lo8(200000000)
+ 372 0118 92EC ldi r25,hi8(200000000)
+ 373 011a ABEE ldi r26,hlo8(200000000)
+ 374 011c BBE0 ldi r27,hhi8(200000000)
+ 375 011e 8093 0000 sts TaskOne+23,r24
+ 376 0122 9093 0000 sts (TaskOne+23)+1,r25
+ 377 0126 A093 0000 sts (TaskOne+23)+2,r26
+ 378 012a B093 0000 sts (TaskOne+23)+3,r27
+ 380 .LM32:
+ 381 012e 1092 0000 sts TaskOne+27,__zero_reg__
+ 382 0132 1092 0000 sts (TaskOne+27)+1,__zero_reg__
+ 383 0136 1092 0000 sts (TaskOne+27)+2,__zero_reg__
+ 384 013a 1092 0000 sts (TaskOne+27)+3,__zero_reg__
+ 386 .LM33:
+ 387 013e 1092 0000 sts TaskOne+31,__zero_reg__
+ 388 0142 1092 0000 sts (TaskOne+31)+1,__zero_reg__
+ 389 0146 1092 0000 sts (TaskOne+31)+2,__zero_reg__
+ 390 014a 1092 0000 sts (TaskOne+31)+3,__zero_reg__
+ 392 .LM34:
+ 393 014e 80E0 ldi r24,lo8(TaskOne)
+ 394 0150 90E0 ldi r25,hi8(TaskOne)
+ 395 0152 0E94 0000 call nrk_activate_task
+ 397 .LM35:
+ 398 0156 80E0 ldi r24,lo8(.LC2)
+ 399 0158 90E0 ldi r25,hi8(.LC2)
+ 400 015a 0E94 0000 call puts
+ 401 /* epilogue: frame size=0 */
+ 402 015e 0895 ret
+ 403 /* epilogue end (size=1) */
+ 404 /* function nrk_create_taskset size 93 (92) */
+ 406 .Lscope4:
+ 408 .stabd 78,0,0
+ 409 .data
+ 410 .LC3:
+ 411 0031 5374 6172 .string "Starting up...\r"
+ 411 7469 6E67
+ 411 2075 702E
+ 411 2E2E 0D00
+ 412 .text
+ 414 .global main
+ 416 main:
+ 417 .stabd 46,0,0
+ 419 .LM36:
+ 420 .LFBB5:
+ 421 /* prologue: frame size=0 */
+ 422 0160 C0E0 ldi r28,lo8(__stack - 0)
+ 423 0162 D0E0 ldi r29,hi8(__stack - 0)
+ 424 0164 DEBF out __SP_H__,r29
+ 425 0166 CDBF out __SP_L__,r28
+ 426 /* prologue end (size=4) */
+ 428 .LM37:
+ 429 0168 0E94 0000 call nrk_setup_ports
+ 431 .LM38:
+ 432 016c 87E0 ldi r24,lo8(7)
+ 433 016e 90E0 ldi r25,hi8(7)
+ 434 0170 0E94 0000 call nrk_setup_uart
+ 436 .LM39:
+ 437 0174 80E0 ldi r24,lo8(.LC3)
+ 438 0176 90E0 ldi r25,hi8(.LC3)
+ 439 0178 0E94 0000 call puts
+ 441 .LM40:
+ 442 017c 0E94 0000 call nrk_init
+ 444 .LM41:
+ 445 0180 80E0 ldi r24,lo8(0)
+ 446 0182 90E0 ldi r25,hi8(0)
+ 447 0184 0E94 0000 call nrk_led_clr
+ 449 .LM42:
+ 450 0188 81E0 ldi r24,lo8(1)
+ 451 018a 90E0 ldi r25,hi8(1)
+ 452 018c 0E94 0000 call nrk_led_clr
+ 454 .LM43:
+ 455 0190 82E0 ldi r24,lo8(2)
+ 456 0192 90E0 ldi r25,hi8(2)
+ 457 0194 0E94 0000 call nrk_led_clr
+ 459 .LM44:
+ 460 0198 83E0 ldi r24,lo8(3)
+ 461 019a 90E0 ldi r25,hi8(3)
+ 462 019c 0E94 0000 call nrk_led_clr
+ 464 .LM45:
+ 465 01a0 20E0 ldi r18,lo8(0)
+ 466 01a2 30E0 ldi r19,hi8(0)
+ 467 01a4 40E0 ldi r20,hlo8(0)
+ 468 01a6 50E0 ldi r21,hhi8(0)
+ 469 01a8 60E0 ldi r22,lo8(0)
+ 470 01aa 70E0 ldi r23,hi8(0)
+ 471 01ac 80E0 ldi r24,hlo8(0)
+ 472 01ae 90E0 ldi r25,hhi8(0)
+ 473 01b0 0E94 0000 call nrk_time_set
+ 475 .LM46:
+ 476 01b4 0E94 0000 call rtl_task_config
+ 478 .LM47:
+ 479 01b8 0E94 0000 call nrk_create_taskset
+ 481 .LM48:
+ 482 01bc 0E94 0000 call nrk_start
+ 484 .LM49:
+ 485 01c0 80E0 ldi r24,lo8(0)
+ 486 01c2 90E0 ldi r25,hi8(0)
+ 487 /* epilogue: frame size=0 */
+ 488 01c4 0C94 0000 jmp exit
+ 489 /* epilogue end (size=2) */
+ 490 /* function main size 52 (46) */
+ 492 .Lscope5:
+ 494 .stabd 78,0,0
+ 495 .data
+ 496 .LC4:
+ 497 0041 476F 7420 .string "Got Packet on slot %d %d: \r\n"
+ 497 5061 636B
+ 497 6574 206F
+ 497 6E20 736C
+ 497 6F74 2025
+ 498 .LC5:
+ 499 005e 7761 6974 .string "waiting to sync\r"
+ 499 696E 6720
+ 499 746F 2073
+ 499 796E 630D
+ 499 00
+ 500 .LC6:
+ 501 006f 7379 6E63 .string "synced as player %d\r\n"
+ 501 6564 2061
+ 501 7320 706C
+ 501 6179 6572
+ 501 2025 640D
+ 502 .text
+ 504 .global Task1
+ 506 Task1:
+ 507 .stabd 46,0,0
+ 509 .LM50:
+ 510 .LFBB6:
+ 511 /* prologue: frame size=3 */
+ 512 01c8 2F92 push r2
+ 513 01ca 3F92 push r3
+ 514 01cc 4F92 push r4
+ 515 01ce 5F92 push r5
+ 516 01d0 6F92 push r6
+ 517 01d2 7F92 push r7
+ 518 01d4 8F92 push r8
+ 519 01d6 9F92 push r9
+ 520 01d8 AF92 push r10
+ 521 01da BF92 push r11
+ 522 01dc CF92 push r12
+ 523 01de DF92 push r13
+ 524 01e0 EF92 push r14
+ 525 01e2 FF92 push r15
+ 526 01e4 0F93 push r16
+ 527 01e6 1F93 push r17
+ 528 01e8 CF93 push r28
+ 529 01ea DF93 push r29
+ 530 01ec CDB7 in r28,__SP_L__
+ 531 01ee DEB7 in r29,__SP_H__
+ 532 01f0 2397 sbiw r28,3
+ 533 01f2 0FB6 in __tmp_reg__,__SREG__
+ 534 01f4 F894 cli
+ 535 01f6 DEBF out __SP_H__,r29
+ 536 01f8 0FBE out __SREG__,__tmp_reg__
+ 537 01fa CDBF out __SP_L__,r28
+ 538 /* prologue end (size=26) */
+ 540 .LM51:
+ 541 01fc 0E94 0000 call monome_comm_init
+ 542 .LBB4:
+ 543 .LBB5:
+ 545 .LM52:
+ 546 0200 81E0 ldi r24,lo8(1)
+ 547 0202 8093 0000 sts state,r24
+ 549 .LM53:
+ 550 0206 8FEF ldi r24,lo8(-1)
+ 551 0208 8093 0000 sts player_num,r24
+ 553 .LM54:
+ 554 020c 8093 0000 sts sync_pkt_tx,r24
+ 555 0210 00C0 rjmp .L19
+ 556 .L20:
+ 557 .LBE5:
+ 558 .LBE4:
+ 560 .LM55:
+ 561 0212 0E94 0000 call nrk_wait_until_next_period
+ 562 .L19:
+ 563 0216 0E94 0000 call rtl_ready
+ 564 021a 8823 tst r24
+ 565 021c 01F0 breq .L20
+ 567 .LM56:
+ 568 021e 52E0 ldi r21,lo8(2)
+ 569 0220 252E mov r2,r21
+ 570 0222 312C mov r3,__zero_reg__
+ 571 0224 2C0E add r2,r28
+ 572 0226 3D1E adc r3,r29
+ 573 0228 43E0 ldi r20,lo8(3)
+ 574 022a 442E mov r4,r20
+ 575 022c 512C mov r5,__zero_reg__
+ 576 022e 4C0E add r4,r28
+ 577 0230 5D1E adc r5,r29
+ 578 0232 3E01 movw r6,r28
+ 579 0234 0894 sec
+ 580 0236 611C adc r6,__zero_reg__
+ 581 0238 711C adc r7,__zero_reg__
+ 583 .LM57:
+ 584 023a 30E0 ldi r19,lo8(.LC4)
+ 585 023c 832E mov r8,r19
+ 586 023e 30E0 ldi r19,hi8(.LC4)
+ 587 0240 932E mov r9,r19
+ 589 .LM58:
+ 590 0242 20E0 ldi r18,lo8(.LC6)
+ 591 0244 A22E mov r10,r18
+ 592 0246 20E0 ldi r18,hi8(.LC6)
+ 593 0248 B22E mov r11,r18
+ 594 024a 90E0 ldi r25,lo8(.LC5)
+ 595 024c C92E mov r12,r25
+ 596 024e 90E0 ldi r25,hi8(.LC5)
+ 597 0250 D92E mov r13,r25
+ 598 0252 80E0 ldi r24,lo8(tx_buf)
+ 599 0254 E82E mov r14,r24
+ 600 0256 80E0 ldi r24,hi8(tx_buf)
+ 601 0258 F82E mov r15,r24
+ 602 .L34:
+ 604 .LM59:
+ 605 025a 0E94 0000 call rtl_rx_pkt_check
+ 606 025e 8823 tst r24
+ 607 0260 01F0 breq .L22
+ 609 .LM60:
+ 610 0262 A101 movw r20,r2
+ 611 0264 B201 movw r22,r4
+ 612 0266 C301 movw r24,r6
+ 613 0268 0E94 0000 call rtl_rx_pkt_get
+ 614 026c 8C01 movw r16,r24
+ 616 .LM61:
+ 617 026e 8981 ldd r24,Y+1
+ 618 0270 9927 clr r25
+ 619 0272 9F93 push r25
+ 620 0274 8F93 push r24
+ 621 0276 8A81 ldd r24,Y+2
+ 622 0278 9927 clr r25
+ 623 027a 9F93 push r25
+ 624 027c 8F93 push r24
+ 625 027e 9F92 push r9
+ 626 0280 8F92 push r8
+ 627 0282 0E94 0000 call printf
+ 629 .LM62:
+ 630 0286 8DB7 in r24,__SP_L__
+ 631 0288 9EB7 in r25,__SP_H__
+ 632 028a 0696 adiw r24,6
+ 633 028c 0FB6 in __tmp_reg__,__SREG__
+ 634 028e F894 cli
+ 635 0290 9EBF out __SP_H__,r25
+ 636 0292 0FBE out __SREG__,__tmp_reg__
+ 637 0294 8DBF out __SP_L__,r24
+ 638 0296 8981 ldd r24,Y+1
+ 639 0298 8430 cpi r24,lo8(4)
+ 640 029a 01F4 brne .L22
+ 642 .LM63:
+ 643 029c 8091 0000 lds r24,state
+ 644 02a0 80FF sbrs r24,0
+ 645 02a2 00C0 rjmp .L22
+ 647 .LM64:
+ 648 02a4 F801 movw r30,r16
+ 649 02a6 8381 ldd r24,Z+3
+ 650 02a8 8093 0000 sts player_num,r24
+ 652 .LM65:
+ 653 02ac 0E94 0000 call monome_set_player_num
+ 655 .LM66:
+ 656 02b0 0E94 0000 call rtl_rx_pkt_release
+ 657 .L22:
+ 659 .LM67:
+ 660 02b4 8091 0000 lds r24,state
+ 661 02b8 80FF sbrs r24,0
+ 662 02ba 00C0 rjmp .L26
+ 664 .LM68:
+ 665 02bc C601 movw r24,r12
+ 666 02be 0E94 0000 call puts
+ 667 .L28:
+ 669 .LM69:
+ 670 02c2 82E0 ldi r24,lo8(2)
+ 671 02c4 0E94 0000 call rtl_tx_pkt_check
+ 672 02c8 8823 tst r24
+ 673 02ca 01F4 brne .L28
+ 675 .LM70:
+ 676 02cc 8091 0000 lds r24,sync_pkt_tx
+ 677 02d0 8093 0000 sts tx_buf+3,r24
+ 679 .LM71:
+ 680 02d4 84E0 ldi r24,lo8(4)
+ 681 02d6 8093 0000 sts tx_len,r24
+ 683 .LM72:
+ 684 02da 42E0 ldi r20,lo8(2)
+ 685 02dc 64E0 ldi r22,lo8(4)
+ 686 02de C701 movw r24,r14
+ 687 02e0 0E94 0000 call rtl_tx_pkt
+ 689 .LM73:
+ 690 02e4 82E0 ldi r24,lo8(2)
+ 691 02e6 0E94 0000 call rtl_wait_until_tx_done
+ 692 02ea 00C0 rjmp .L30
+ 693 .L26:
+ 695 .LM74:
+ 696 02ec 8091 0000 lds r24,player_num
+ 697 02f0 9927 clr r25
+ 698 02f2 9F93 push r25
+ 699 02f4 8F93 push r24
+ 700 02f6 BF92 push r11
+ 701 02f8 AF92 push r10
+ 702 02fa 0E94 0000 call printf
+ 703 02fe 0F90 pop __tmp_reg__
+ 704 0300 0F90 pop __tmp_reg__
+ 705 0302 0F90 pop __tmp_reg__
+ 706 0304 0F90 pop __tmp_reg__
+ 707 .L30:
+ 709 .LM75:
+ 710 0306 0E94 0000 call nrk_wait_until_next_period
+ 711 030a 00C0 rjmp .L34
+ 712 /* epilogue: frame size=3 */
+ 713 /* epilogue: noreturn */
+ 714 /* epilogue end (size=0) */
+ 715 /* function Task1 size 162 (136) */
+ 723 .Lscope6:
+ 725 .stabd 78,0,0
+ 726 .comm _nrk_signal_list,4,1
+ 727 .comm nrk_idle_task_stk,128,1
+ 728 .comm nrk_kernel_stk_ptr,2,1
+ 729 .comm rtl_task,35,1
+ 730 .comm rtl_task_stack,128,1
+ 731 .comm rtl_node_mode,1,1
+ 732 .comm last_slot,2,1
+ 733 .comm last_slot_time,8,1
+ 734 .comm _rtl_sync_ok,1,1
+ 735 .comm _rtl_ready,1,1
+ 736 .comm _rtl_time_token,1,1
+ 737 .comm _rtl_time_token_status,1,1
+ 738 .comm rtl_tsync_tx,7,1
+ 739 .comm rtl_tsync_buf,3,1
+ 740 .comm _rtl_contention_pending,1,1
+ 741 .comm _rtl_contention_slots,1,1
+ 742 .comm rtl_rfRxInfo,9,1
+ 743 .comm rtl_rx_data_ready,1,1
+ 744 .comm rtl_rx_slot,1,1
+ 745 .comm rtl_rx_buf,116,1
+ 746 .comm rtl_rfTxInfo,7,1
+ 747 .comm rtl_tx_info,99,1
+ 748 .comm rtl_abs_tx_slot,2,1
+ 749 .comm rtl_abs_tx_ready,1,1
+ 750 .comm rtl_tx_data_ready,4,1
+ 751 .comm rtl_param,9,1
+ 752 .comm rtl_tdma_rx_mask,4,1
+ 753 .comm rtl_tdma_tx_mask,4,1
+ 754 .comm rx_callback,2,1
+ 755 .comm tx_callback,2,1
+ 756 .comm abs_callback,2,1
+ 757 .comm slot_callback,2,1
+ 758 .comm cycle_callback,2,1
+ 759 .comm error_task,1,1
+ 760 .comm error_num,1,1
+ 761 .comm state,1,1
+ 762 .comm player_num,1,1
+ 763 .comm sync_pkt_tx,1,1
+ 764 .comm sync_pkt_rx,1,1
+ 765 .comm tx_len,1,1
+ 766 .comm Stack1,128,1
+ 767 .comm TaskOne,35,1
+ 768 .comm tx_buf,116,1
+ 769 .comm rx_buf,116,1
+ 815 .Letext0:
+ 816 /* File "main.c": code 390 = 0x0186 ( 354),
prologues 30, epilogues 6 */
+DEFINED SYMBOLS
+ *ABS*:00000000 main.c
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:2
*ABS*:0000003f __SREG__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:3
*ABS*:0000003e __SP_H__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:4
*ABS*:0000003d __SP_L__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:5
*ABS*:00000000 __tmp_reg__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:6
*ABS*:00000001 __zero_reg__
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:140 .text:00000000
monome_setup_system
+ *COM*:00000001 state
+ *COM*:00000001 player_num
+ *COM*:00000001 sync_pkt_tx
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:175 .text:00000012
monome_set_player_num
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:255 .text:00000072
monome_comm_init
+ *COM*:00000074 rx_buf
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:308 .text:000000a6
nrk_create_taskset
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:506 .text:000001c8
Task1
+ *COM*:00000023 TaskOne
+ *COM*:00000080 Stack1
+/var/folders/Dg/DgVcaV3-Ey0Mr9QYZWEBOU+++TI/-Tmp-//cc694ZLl.s:416 .text:00000160
main
+ *COM*:00000074 tx_buf
+ *COM*:00000001 tx_len
+ *COM*:00000004 _nrk_signal_list
+ *COM*:00000080 nrk_idle_task_stk
+ *COM*:00000002 nrk_kernel_stk_ptr
+ *COM*:00000023 rtl_task
+ *COM*:00000080 rtl_task_stack
+ *COM*:00000001 rtl_node_mode
+ *COM*:00000002 last_slot
+ *COM*:00000008 last_slot_time
+ *COM*:00000001 _rtl_sync_ok
+ *COM*:00000001 _rtl_ready
+ *COM*:00000001 _rtl_time_token
+ *COM*:00000001 _rtl_time_token_status
+ *COM*:00000007 rtl_tsync_tx
+ *COM*:00000003 rtl_tsync_buf
+ *COM*:00000001 _rtl_contention_pending
+ *COM*:00000001 _rtl_contention_slots
+ *COM*:00000009 rtl_rfRxInfo
+ *COM*:00000001 rtl_rx_data_ready
+ *COM*:00000001 rtl_rx_slot
+ *COM*:00000074 rtl_rx_buf
+ *COM*:00000007 rtl_rfTxInfo
+ *COM*:00000063 rtl_tx_info
+ *COM*:00000002 rtl_abs_tx_slot
+ *COM*:00000001 rtl_abs_tx_ready
+ *COM*:00000004 rtl_tx_data_ready
+ *COM*:00000009 rtl_param
+ *COM*:00000004 rtl_tdma_rx_mask
+ *COM*:00000004 rtl_tdma_tx_mask
+ *COM*:00000002 rx_callback
+ *COM*:00000002 tx_callback
+ *COM*:00000002 abs_callback
+ *COM*:00000002 slot_callback
+ *COM*:00000002 cycle_callback
+ *COM*:00000001 error_task
+ *COM*:00000001 error_num
+ *COM*:00000001 sync_pkt_rx
+
+UNDEFINED SYMBOLS
+__do_copy_data
+__do_clear_bss
+puts
+printf
+nrk_led_set
+rtl_init
+rtl_set_schedule
+rtl_start
+rtl_rx_pkt_set_buffer
+nrk_activate_task
+__stack
+nrk_setup_ports
+nrk_setup_uart
+nrk_init
+nrk_led_clr
+nrk_time_set
+rtl_task_config
+nrk_start
+exit
+nrk_wait_until_next_period
+rtl_ready
+rtl_rx_pkt_check
+rtl_rx_pkt_get
+rtl_rx_pkt_release
+rtl_tx_pkt_check
+rtl_tx_pkt
+rtl_wait_until_tx_done
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.map Sat Dec 11
12:36:09 2010
@@ -0,0 +1,2093 @@
+Archive member included because of file (symbol)
+
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ (vfprintf)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__mulsi3)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ ../../../../../src/kernel/source/nrk_scheduler.o
(__udivmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__divmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__udivmodsi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o (exit)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ main.o (__do_clear_bss)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ ../../../../../src/net/rt_link/rt_link.o
(rand)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
(strlen_P)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fdevopen)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fputc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(__iob)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ main.o (printf)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ main.o (puts)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_read_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_write_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
(calloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(malloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(memset)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
(__divmodsi4)
+
+Allocating common symbols
+Common symbol size file
+
+rx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+last_slot_time 0x8 main.o
+rtl_param 0x9 main.o
+_free_node
0x2 ../../../../../src/kernel/source/nrk.o
+app_timer0_callback
+
0x2 ../../../../../src/net/rt_link/rt_link.o
+nrk_task_TCB
0x63 ../../../../../src/kernel/source/nrk.o
+cycle_callback 0x2 main.o
+next_next_wakeup
0x2 ../../../../../src/kernel/source/nrk.o
+ext_int1_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+tsync_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+radio_sem
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rx_pkt_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_ready 0x1 main.o
+global_cycle
0x2 ../../../../../src/net/rt_link/rt_link.o
+tsync_delay
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_task_stack 0x80 main.o
+rtl_tx_data_ready 0x4 main.o
+ext_int0_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+nrk_sem_list
0x3 ../../../../../src/kernel/source/nrk.o
+security_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+nrk_task_init_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+error_task 0x1 main.o
+_rtl_sync_ok 0x1 main.o
+slot_start_time
0x2 ../../../../../src/net/rt_link/rt_link.o
+_rtl_contention_slots
+ 0x1 main.o
+tx_callback 0x2 main.o
+rtl_task 0x23 main.o
+rtl_tdma_tx_mask 0x4 main.o
+mdmctrl0
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rfSettings
0x9 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_abs_wakeup
0x8 ../../../../../src/net/rt_link/rt_link.o
+global_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+_nrk_time_trigger
0x1 ../../../../../src/net/rt_link/rt_link.o
+sync_pkt_tx 0x1 main.o
+ext_int2_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+TaskOne 0x23 main.o
+_dbg_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+__brkval 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+nrk_wakeup_signal
0x1 ../../../../../src/kernel/source/nrk.o
+state 0x1 main.o
+rtl_tsync_tx 0x7 main.o
+nrk_high_ready_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+last_sync_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+pc_int0_callback
0x2 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+tmp_blah
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rfRxInfo 0x9 main.o
+nrk_cur_task_prio
0x1 ../../../../../src/kernel/source/nrk.o
+_rtl_time_token_status
+ 0x1 main.o
+_nrk_cpu_state
0x1 ../../../../../src/kernel/source/nrk.o
+prev_offset
0x2 ../../../../../src/net/rt_link/rt_link.o
+player_num 0x1 main.o
+pkt_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_abs_tx_slot 0x2 main.o
+_head_node
0x2 ../../../../../src/kernel/source/nrk.o
+nrk_system_time
0x8 ../../../../../src/kernel/source/nrk.o
+_nrk_signal_list 0x4 main.o
+_nrk_resource_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+sync_pkt_rx 0x1 main.o
+auto_ack_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_drift_rate
0x2 ../../../../../src/net/rt_link/rt_link.o
+_rtl_contention_pending
+ 0x1 main.o
+rx_buf 0x74 main.o
+current_global_slot
+
0x2 ../../../../../src/net/rt_link/rt_link.o
+nrk_cur_task_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+rtl_rx_slot 0x1 main.o
+Stack1 0x80 main.o
+rtl_tdma_rx_mask 0x4 main.o
+nrk_kernel_stk_ptr 0x2 main.o
+rx_callback 0x2 main.o
+rtl_rx_data_ready 0x1 main.o
+tx_buf 0x74 main.o
+rtl_abs_tx_ready 0x1 main.o
+slot_callback 0x2 main.o
+last_pkt_encrypted
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+nrk_high_ready_prio
+
0x1 ../../../../../src/kernel/source/nrk.o
+app_timer0_prescale
+
0x1 ../../../../../src/net/rt_link/rt_link.o
+rtl_node_mode 0x1 main.o
+abs_callback 0x2 main.o
+_tsync_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+tx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+_nrk_prev_timer_val
+
0x1 ../../../../../src/net/rt_link/rt_link.o
+rtl_rfTxInfo 0x7 main.o
+__flp 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+error_num 0x1 main.o
+rtl_sched
0x10 ../../../../../src/net/rt_link/rt_link.o
+tx_len 0x1 main.o
+_nrk_readyQ
0x14 ../../../../../src/kernel/source/nrk.o
+rtl_sched_cache
0x20 ../../../../../src/net/rt_link/rt_link.o
+__iob 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+last_slot 0x2 main.o
+rx_ready
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rx_buf 0x74 main.o
+nrk_idle_task_stk 0x80 main.o
+rtl_tx_done_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_time_token 0x1 main.o
+rtl_tx_info 0x63 main.o
+rtl_tsync_buf 0x3 main.o
+
+Discarded input sections
+
+ .stabstr 0x00000000 0x0 main.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800200
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+LOAD main.o
+LOAD ../../../../../src/net/rt_link/rt_link.o
+LOAD ../../../../../src/net/rt_link/rtl_scheduler.o
+LOAD ../../../../../src/net/rt_link/rtl_debug.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+LOAD ../../../../../src/radio/cc2420/source/basic_rf.o
+LOAD ../../../../../src/platform/firefly2_2/source/ulib.o
+LOAD ../../../../../src/platform/firefly2_2/source/hal_wait.o
+LOAD ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+LOAD ../../../../../src/kernel/source/nrk.o
+LOAD ../../../../../src/kernel/source/nrk_stats.o
+LOAD ../../../../../src/kernel/source/nrk_error.o
+LOAD ../../../../../src/kernel/source/nrk_stack_check.o
+LOAD ../../../../../src/kernel/source/nrk_events.o
+LOAD ../../../../../src/kernel/source/nrk_task.o
+LOAD ../../../../../src/kernel/source/nrk_time.o
+LOAD ../../../../../src/kernel/source/nrk_idle_task.o
+LOAD ../../../../../src/kernel/source/nrk_scheduler.o
+LOAD ../../../../../src/kernel/source/nrk_driver.o
+LOAD ../../../../../src/kernel/source/nrk_reserve.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+LOAD ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+LOAD
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libm.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x6910
+ *(.vectors)
+ .vectors 0x00000000 0xcc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x00000000 __vectors
+ *(.vectors)
+ 0x000000cc __ctors_start = .
+ *(.ctors)
+ 0x000000cc __ctors_end = .
+ 0x000000cc __dtors_start = .
+ *(.dtors)
+ 0x000000cc __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.progmem.gcc*)
+ .progmem.gcc_sw_table
+ 0x000000cc
0x24 ../../../../../src/kernel/source/nrk_error.o
+ *(.progmem*)
+ .progmem.data 0x000000f0
0x56 ../../../../../src/net/rt_link/rt_link.o
+ .progmem.data 0x00000146
0x1c8 ../../../../../src/kernel/source/nrk_error.o
+ .progmem.data 0x0000030e
0xf ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x0000031e . = ALIGN (0x2)
+ *fill* 0x0000031d 0x1 00
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ *(.init0)
+ .init0 0x0000031e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000031e __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x0000031e 0xc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x0000032a 0x1a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000032a __do_copy_data
+ .init4 0x00000344 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x00000344 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000354 0x8
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init9)
+ *(.text)
+ .text 0x0000035c 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000035c __vector_38
+ 0x0000035c __vector_22
+ 0x0000035c __vector_28
+ 0x0000035c __vector_34
+ 0x0000035c __vector_24
+ 0x0000035c __vector_12
+ 0x0000035c __vector_46
+ 0x0000035c __bad_interrupt
+ 0x0000035c __vector_6
+ 0x0000035c __vector_31
+ 0x0000035c __vector_35
+ 0x0000035c __vector_39
+ 0x0000035c __vector_3
+ 0x0000035c __vector_23
+ 0x0000035c __vector_30
+ 0x0000035c __vector_45
+ 0x0000035c __vector_25
+ 0x0000035c __vector_11
+ 0x0000035c __vector_19
+ 0x0000035c __vector_7
+ 0x0000035c __vector_49
+ 0x0000035c __vector_41
+ 0x0000035c __vector_43
+ 0x0000035c __vector_27
+ 0x0000035c __vector_5
+ 0x0000035c __vector_33
+ 0x0000035c __vector_47
+ 0x0000035c __vector_37
+ 0x0000035c __vector_4
+ 0x0000035c __vector_44
+ 0x0000035c __vector_21
+ 0x0000035c __vector_36
+ 0x0000035c __vector_29
+ 0x0000035c __vector_40
+ 0x0000035c __vector_8
+ 0x0000035c __vector_26
+ 0x0000035c __vector_48
+ 0x0000035c __vector_14
+ 0x0000035c __vector_10
+ 0x0000035c __vector_50
+ 0x0000035c __vector_16
+ 0x0000035c __vector_18
+ 0x0000035c __vector_20
+ 0x0000035c __vector_42
+ .text 0x00000360 0x30c main.o
+ 0x000003d2 monome_comm_init
+ 0x00000528 Task1
+ 0x00000372 monome_set_player_num
+ 0x00000406 nrk_create_taskset
+ 0x000004c0 main
+ 0x00000360 monome_setup_system
+ .text 0x0000066c
0xe96 ../../../../../src/net/rt_link/rt_link.o
+ 0x000006e8 rtl_set_cycle_callback
+ 0x0000141e rtl_wait_until_tx_done
+ 0x00000698 rtl_check_abs_tx_status
+ 0x000013cc rtl_wait_until_rx_or_tx
+ 0x00000be6 rtl_tx_abs_pkt
+ 0x00000686 rtl_get_slot
+ 0x000007e4 rtl_start
+ 0x00000706 rtl_set_tx_callback
+ 0x000006a6 rtl_tx_pkt_check
+ 0x0000073a rtl_task_config
+ 0x00000672 rtl_ready
+ 0x00000710 rtl_set_abs_callback
+ 0x0000066c rtl_wait_until_global_slot
+ 0x00000ecc rtl_set_channel
+ 0x00000c5c _rtl_rx_sync
+ 0x000014e8 rtl_get_tx_done_signal
+ 0x00000824 rtl_set_contention
+ 0x0000145c rtl_wait_until_rx_pkt
+ 0x0000086c rtl_init
+ 0x000014ce rtl_get_rx_pkt_signal
+ 0x000006f2 rtl_set_slot_callback
+ 0x000006fc rtl_set_rx_callback
+ 0x00000690 rtl_sync_status
+ 0x000009a6 rtl_set_tx_power
+ 0x000009ac _rtl_tx
+ 0x00000ace _rtl_rx
+ 0x0000071a rtl_rx_pkt_set_buffer
+ 0x000006a0 rtl_rx_pkt_release
+ 0x000006dc rtl_rx_pkt_check
+ 0x00001490 rtl_rx_pkt_get
+ 0x00000ed6 rtl_tx_pkt
+ 0x00000f5e rtl_nw_task
+ 0x000012ee rtl_get_global_slot
+ .text 0x00001502
0x442 ../../../../../src/net/rt_link/rtl_scheduler.o
+ 0x0000185a _rtl_clear_sched_cache
+ 0x00001746 _rtl_clr_abs_wakeup
+ 0x000016c4 rtl_set_abs_wakeup
+ 0x00001502 rtl_set_schedule
+ 0x0000189e rtl_get_slots_until_next_wakeup
+ 0x000015b8 rtl_get_schedule
+ 0x000017b0 _rtl_match_abs_wakeup
+ 0x0000186a _rtl_pow
+ 0x000015f2 rtl_clr_schedule
+ 0x00001818 _rtl_get_next_abs_wakeup
+ 0x0000169e _rtl_clr_abs_all_wakeup
+ .text 0x00001944
0x1d8 ../../../../../src/net/rt_link/rtl_debug.o
+ 0x00001a6e rtl_debug_get_tsync_delay
+ 0x000019b4 rtl_debug_get_pkt_loss
+ 0x00001944 rtl_debug_time_update
+ 0x00001964 rtl_debug_time_get_drift
+ 0x000019dc rtl_debug_get_tsync_loss
+ 0x00001a86 rtl_debug_rx_tsync
+ 0x0000196e rtl_debug_init
+ 0x00001990 bit_count
+ 0x000019e8 rtl_debug_rx_pkt
+ 0x00001a2a rtl_debug_dropped_pkt
+ 0x00001ad0 rtl_debug_dropped_tsync
+ .text 0x00001b1c
0x3e ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ 0x00001b1c halRfSetChannel
+ .text 0x00001b5a
0x18 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ 0x00001b5a halRfWaitForCrystalOscillator
+ .text 0x00001b72
0x12da ../../../../../src/radio/cc2420/source/basic_rf.o
+ 0x00002ca0 rf_set_channel
+ 0x00001d98 rf_rx_on
+ 0x00001d22 rf_auto_ack_enable
+ 0x00001c86 rf_tx_power
+ 0x00002c6a rf_set_rx
+ 0x00001cec rf_addr_decode_disable
+ 0x0000234a rf_data_mode
+ 0x00001e14 rf_rx_check_fifop
+ 0x000023bc rf_tx_packet
+ 0x00001e26 rf_rx_check_sfd
+ 0x00001c08 rf_security_enable
+ 0x00002288 rf_rx_packet
+ 0x000023ac rf_carrier_off
+ 0x00001e00 rf_busy
+ 0x00001dc0 rf_polling_rx_on
+ 0x00001e3a rf_polling_rx_packet
+ 0x0000239c rf_carrier_on
+ 0x00001c7c rf_get_sem
+ 0x00001de8 rf_rx_off
+ 0x000022a6 rf_flush_rx_fifo
+ 0x00002ca6 rf_init
+ 0x00001cb6 rf_addr_decode_enable
+ 0x00002a90 rf_security_set_key
+ 0x00002702 rf_tx_tdma_packet
+ 0x00001b7a rf_security_set_ctr_counter
+ 0x000022c4 rf_set_cca_thresh
+ 0x00002a1a rf_addr_decode_set_my_mac
+ 0x00001c54 rf_security_disable
+ 0x00001d5e rf_auto_ack_disable
+ 0x000022f4 rf_test_mode
+ 0x00001b72 rf_security_last_pkt_status
+ .text 0x00002e4c
0x952 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00002eda nrk_gpio_set
+ 0x000035b2 nrk_get_button
+ 0x00003778 nrk_kprintf
+ 0x00002e52 nrk_uart_data_ready
+ 0x00003382 nrk_gpio_direction
+ 0x0000371c getc0
+ 0x00003646 nrk_led_set
+ 0x00002e88 getc1
+ 0x00003170 nrk_gpio_toggle
+ 0x00002fe4 nrk_gpio_clr
+ 0x00003696 putc0
+ 0x00003736 nrk_setup_uart
+ 0x00003680 nrk_gpio_pullups
+ 0x000036ee setup_uart1
+ 0x00002ecc nrk_setup_ports
+ 0x000036b0 putc1
+ 0x0000360c nrk_led_clr
+ 0x000030fc nrk_gpio_get
+ 0x00002ea2 PORT_INIT
+ 0x000036c0 setup_uart0
+ 0x000035d2 nrk_led_toggle
+ 0x00002e4c nrk_uart_rx_signal_get
+ .text 0x0000379e
0xe ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ 0x0000379e halWait
+ .text 0x000037ac
0x11c ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ 0x00003846 read_eeprom_load_img_pages
+ 0x000037d4 nrk_eeprom_read_byte
+ 0x000037c0
write_eeprom_current_image_checksum
+ 0x0000388c write_eeprom_load_img_pages
+ 0x000037e0 read_eeprom_mac_address
+ 0x00003882 nrk_eeprom_write_byte
+ 0x000038a0 write_eeprom_aes_key
+ 0x00003832 read_eeprom_channel
+ 0x0000385a read_eeprom_aes_key
+ 0x000037ac
read_eeprom_current_image_checksum
+ .text 0x000038c8
0x440 ../../../../../src/kernel/source/nrk.o
+ 0x000038d0 nrk_version
+ 0x00003bec nrk_init
+ 0x000038dc nrk_TCB_init
+ 0x00003d04 nrk_halt
+ 0x000038d6 _nrk_timer_tick
+ 0x000038cc nrk_int_enable
+ 0x00003b2c nrk_start
+ 0x000038c8 nrk_int_disable
+ .text 0x00003d08
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .text 0x00003d08
0x1b0 ../../../../../src/kernel/source/nrk_error.o
+ 0x00003ea0 nrk_error_add
+ 0x00003e92 nrk_kernel_error_add
+ 0x00003d22 nrk_error_get
+ 0x00003d14 nrk_errno_get
+ 0x00003d08 _nrk_errno_set
+ 0x00003d42 nrk_error_print
+ .text 0x00003eb8
0x1e8 ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x00003f02 dump_stack_info
+ 0x00003eb8 nrk_stack_check_pid
+ 0x0000405a nrk_stack_check
+ .text 0x000040a0
0x5e0 ../../../../../src/kernel/source/nrk_events.o
+ 0x00004446 nrk_signal_delete
+ 0x00004366 nrk_event_signal
+ 0x000042be nrk_sem_post
+ 0x00004224 nrk_sem_create
+ 0x0000460a nrk_event_wait
+ 0x00004284 nrk_sem_query
+ 0x000040a0 nrk_signal_create
+ 0x000041b2 nrk_signal_register
+ 0x00004562 nrk_sem_pend
+ 0x0000423c nrk_sem_delete
+ 0x0000411a nrk_signal_get_registered_mask
+ 0x0000422a nrk_get_resource_index
+ 0x0000412c nrk_signal_unregister
+ .text 0x00004680
0x67e ../../../../../src/kernel/source/nrk_task.o
+ 0x00004864 _nrk_wait_for_scheduler
+ 0x00004856 nrk_get_pid
+ 0x00004bd6 nrk_wait_until_next_period
+ 0x00004b02 nrk_wait_ticks
+ 0x00004932 nrk_wait_until
+ 0x00004a30 nrk_set_next_wakeup
+ 0x000046a4 nrk_add_to_readyQ
+ 0x000049e2 nrk_wait_until_nw
+ 0x0000468e nrk_print_readyQ
+ 0x00004c52 nrk_activate_task
+ 0x00004aac nrk_wait_until_ticks
+ 0x00004878 nrk_wait
+ 0x00004c2e nrk_terminate_task
+ 0x00004680 nrk_get_high_ready_task_ID
+ 0x00004b70 nrk_wait_until_next_n_periods
+ 0x000047b2 nrk_rem_from_readyQ
+ .text 0x00004cfe
0x5c0 ../../../../../src/kernel/source/nrk_time.o
+ 0x00004f1a nrk_time_set
+ 0x00005208 nrk_time_get
+ 0x00004f3c _nrk_time_to_ticks
+ 0x000050f8 _nrk_time_to_ticks_long
+ 0x00004e1c nrk_time_compact_nanos
+ 0x00004e60 nrk_time_add
+ 0x00004cfe nrk_time_sub
+ 0x00005040 _nrk_ticks_to_time
+ .text 0x000052be
0x48 ../../../../../src/kernel/source/nrk_idle_task.o
+ 0x000052be nrk_idle_task
+ .text 0x00005306
0x3f0 ../../../../../src/kernel/source/nrk_scheduler.o
+ 0x00005306 _nrk_scheduler
+ .text 0x000056f6
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .text 0x000056f6
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .text 0x000056f6
0x398 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ 0x0000598c nrk_high_speed_timer_wait
+ 0x00005904 __vector_32
+ 0x000057ba nrk_timer_int_reset
+ 0x00005786 _nrk_os_timer_reset
+ 0x00005882 _nrk_os_timer_get
+ 0x000057ac nrk_timer_int_stop
+ 0x000056f6 nrk_spin_wait_us
+ 0x0000588a __vector_13
+ 0x00005712 _nrk_high_speed_timer_reset
+ 0x000058f0 __vector_17
+ 0x00005a18 _nrk_setup_timer
+ 0x00005960 __vector_default
+ 0x000057a4 _nrk_set_next_wakeup
+ 0x000057d2 nrk_timer_int_read
+ 0x00005704 _nrk_high_speed_timer_stop
+ 0x0000570a _nrk_high_speed_timer_start
+ 0x000057e6 nrk_timer_int_start
+ 0x0000588a __vector_15
+ 0x000057fc nrk_timer_int_configure
+ 0x0000576e _nrk_os_timer_set
+ 0x00005722 _nrk_high_speed_timer_get
+ 0x00005758 _nrk_os_timer_stop
+ 0x00005774 _nrk_os_timer_start
+ 0x0000579a _nrk_get_next_wakeup
+ .text 0x00005a8e
0x34e ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x00005a8e nrk_ext_int_enable
+ 0x00005d24 __vector_1
+ 0x00005ba6 nrk_ext_int_configure
+ 0x00005d80 __vector_9
+ 0x00005cc8 __vector_2
+ 0x00005b1c nrk_ext_int_disable
+ .text 0x00005ddc
0x16 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ 0x00005df0 update_watchdog
+ 0x00005ddc _nrk_startup_ok
+ .text 0x00005df2
0x54 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ 0x00005e08 nrk_watchdog_disable
+ 0x00005e26 nrk_watchdog_enable
+ 0x00005df2 nrk_watchdog_check
+ 0x00005e04 nrk_watchdog_reset
+ .text 0x00005e46
0x130 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ 0x00005efa nrk_stack_pointer_init
+ 0x00005f38 nrk_task_set_stk
+ 0x00005e60 nrk_idle
+ 0x00005e46 nrk_battery_save
+ 0x00005e76 nrk_task_set_entry_function
+ 0x00005f2e nrk_target_start
+ 0x00005f1c nrk_stack_pointer_restore
+ 0x00005e7e nrk_task_stk_init
+ 0x00005e48 nrk_sleep
+ .text 0x00005f76
0x56 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ 0x00005f76 nrk_start_high_ready_task
+ .text 0x00005fcc 0x34c
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ 0x00005fcc vfprintf
+ .text 0x00006318 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x00006318 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00006318 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x00006318 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00006318 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text 0x00006318 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text 0x00006318 0xde
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ 0x000063d0 rand_r
+ 0x000063d6 rand
+ 0x000063e0 srand
+ .text 0x000063f6 0x12
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ 0x000063f6 strlen_P
+ .text 0x00006408 0xa0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ 0x00006408 fdevopen
+ .text 0x000064a8 0x5a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ 0x000064a8 fputc
+ .text 0x00006502 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .text 0x00006502 0x40
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ 0x00006502 printf
+ .text 0x00006542 0x66
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ 0x00006542 puts
+ .text 0x000065a8 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .text 0x000065a8 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .text 0x000065a8 0x38
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ 0x000065a8 calloc
+ .text 0x000065e0 0x1f2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x000065e0 malloc
+ 0x00006726 free
+ .text 0x000067d2 0xe
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ 0x000067d2 memset
+ .text 0x000067e0 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x000067e0 . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x000067e0 0x3e
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ 0x000067e0 __mulsi3
+ .text.libgcc 0x0000681e 0x28
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x0000681e __udivmodhi4
+ .text.libgcc 0x00006846 0x26
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x00006846 __divmodhi4
+ 0x00006846 _div
+ .text.libgcc 0x0000686c 0x44
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000686c __udivmodsi4
+ .text.libgcc 0x000068b0 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x000068b0 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text.eeprom 0x000068b0 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ 0x000068b0 __eeprom_read_byte_1F2021
+ .text.eeprom 0x000068c0 0x18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ 0x000068c0 __eeprom_write_byte_1F2021
+ .text.libgcc 0x000068d8 0x36
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x000068d8 __divmodsi4
+ 0x0000690e . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x0000690e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000690e exit
+ 0x0000690e _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x0000690e 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00006910 _etext = .
+
+.data 0x00800200 0x102 load address 0x00006910
+ 0x00800200 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800200 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .data 0x00800200 0x85 main.o
+ .data 0x00800285
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .data 0x00800285
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .data 0x00800285
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .data 0x00800285
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .data 0x00800285
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .data 0x00800285
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .data 0x00800285
0x21 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00800298 NRK_LED_0
+ 0x0080029d NRK_FIFOP
+ 0x00800295 NRK_SFD
+ 0x00800291 NRK_DEBUG_3
+ 0x00800299 NRK_LED_1
+ 0x008002a3 NRK_ADC_INPUT_5
+ 0x0080029f NRK_ADC_INPUT_1
+ 0x00800297 NRK_UART0_TXD
+ 0x0080029a NRK_LED_2
+ 0x00800287 NRK_BUTTON
+ 0x0080029e NRK_ADC_INPUT_0
+ 0x00800286 NRK_DEBUG_1
+ 0x0080029c NRK_GPIO34
+ 0x00800294 NRK_CCA
+ 0x008002a4 NRK_ADC_INPUT_6
+ 0x00800285 NRK_DEBUG_0
+ 0x008002a1 NRK_ADC_INPUT_3
+ 0x0080028c NRK_GPIO26
+ 0x0080028b NRK_MISO
+ 0x0080028d NRK_MMC_11
+ 0x0080028a NRK_MOSI
+ 0x008002a2 NRK_ADC_INPUT_4
+ 0x00800293 NRK_UART1_TXD
+ 0x00800296 NRK_UART0_RXD
+ 0x008002a5 NRK_ADC_INPUT_7
+ 0x00800290 NRK_DEBUG_2
+ 0x0080028f NRK_MMC_9
+ 0x0080029b NRK_LED_3
+ 0x00800288 NRK_SPI_SS
+ 0x0080028e NRK_MMC_10
+ 0x00800292 NRK_UART1_RXD
+ 0x008002a0 NRK_ADC_INPUT_2
+ 0x00800289 NRK_SCK
+ .data 0x008002a6
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .data 0x008002a6
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .data 0x008002a6
0x0 ../../../../../src/kernel/source/nrk.o
+ .data 0x008002a6
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .data 0x008002a6
0x3 ../../../../../src/kernel/source/nrk_error.o
+ .data 0x008002a9
0x4e ../../../../../src/kernel/source/nrk_stack_check.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .data 0x008002f7
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .data 0x008002f7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .data 0x008002f7 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .data 0x008002fb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .data 0x008002fb 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008002fd __malloc_heap_start
+ 0x008002ff __malloc_heap_end
+ 0x008002fb __malloc_margin
+ .data 0x00800301 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .data 0x00800301 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x00800302 . = ALIGN (0x2)
+ *fill* 0x00800301 0x1 00
+ 0x00800302 _edata = .
+ 0x00800302 PROVIDE (__data_end, .)
+
+.bss 0x00800302 0x507
+ 0x00800302 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .bss 0x00800302 0x0 main.o
+ .bss 0x00800302
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .bss 0x00800302
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .bss 0x00800302
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .bss 0x00800302
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .bss 0x00800302
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .bss 0x00800302
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .bss 0x00800302
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .bss 0x00800302
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .bss 0x00800302
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .bss 0x00800302
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .bss 0x00800302 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x00800302 0x3e1 main.o
+ 0x00800302 last_slot_time
+ 0x0080030a rtl_param
+ 0x00800313 cycle_callback
+ 0x00800315 _rtl_ready
+ 0x00800316 rtl_task_stack
+ 0x00800396 rtl_tx_data_ready
+ 0x0080039a error_task
+ 0x0080039b _rtl_sync_ok
+ 0x0080039c _rtl_contention_slots
+ 0x0080039d tx_callback
+ 0x0080039f rtl_task
+ 0x008003c2 rtl_tdma_tx_mask
+ 0x008003c6 sync_pkt_tx
+ 0x008003c7 TaskOne
+ 0x008003ea state
+ 0x008003eb rtl_tsync_tx
+ 0x008003f2 rtl_rfRxInfo
+ 0x008003fb _rtl_time_token_status
+ 0x008003fc player_num
+ 0x008003fd rtl_abs_tx_slot
+ 0x008003ff _nrk_signal_list
+ 0x00800403 sync_pkt_rx
+ 0x00800404 _rtl_contention_pending
+ 0x00800405 rx_buf
+ 0x00800479 rtl_rx_slot
+ 0x0080047a Stack1
+ 0x008004fa rtl_tdma_rx_mask
+ 0x008004fe nrk_kernel_stk_ptr
+ 0x00800500 rx_callback
+ 0x00800502 rtl_rx_data_ready
+ 0x00800503 tx_buf
+ 0x00800577 rtl_abs_tx_ready
+ 0x00800578 slot_callback
+ 0x0080057a rtl_node_mode
+ 0x0080057b abs_callback
+ 0x0080057d rtl_rfTxInfo
+ 0x00800584 error_num
+ 0x00800585 tx_len
+ 0x00800586 last_slot
+ 0x00800588 rtl_rx_buf
+ 0x008005fc nrk_idle_task_stk
+ 0x0080067c _rtl_time_token
+ 0x0080067d rtl_tx_info
+ 0x008006e0 rtl_tsync_buf
+ COMMON 0x008006e3
0x67 ../../../../../src/net/rt_link/rt_link.o
+ 0x008006e3 app_timer0_callback
+ 0x008006e5 tsync_log
+ 0x008006ed rtl_rx_pkt_signal
+ 0x008006ee global_cycle
+ 0x008006f0 tsync_delay
+ 0x008006f8 slot_start_time
+ 0x008006fa rtl_abs_wakeup
+ 0x00800702 global_slot
+ 0x00800704 _nrk_time_trigger
+ 0x00800705 _dbg_index
+ 0x00800706 last_sync_slot
+ 0x00800708 prev_offset
+ 0x0080070a pkt_log
+ 0x00800712 rtl_drift_rate
+ 0x00800714 current_global_slot
+ 0x00800716 app_timer0_prescale
+ 0x00800717 _tsync_index
+ 0x00800718 _nrk_prev_timer_val
+ 0x00800719 rtl_sched
+ 0x00800729 rtl_sched_cache
+ 0x00800749 rtl_tx_done_signal
+ COMMON 0x0080074a
0x1b ../../../../../src/radio/cc2420/source/basic_rf.o
+ 0x0080074a rx_ctr
+ 0x0080074e radio_sem
+ 0x00800750 security_enable
+ 0x00800751 mdmctrl0
+ 0x00800753 rfSettings
+ 0x0080075c tmp_blah
+ 0x0080075e auto_ack_enable
+ 0x0080075f last_pkt_encrypted
+ 0x00800760 tx_ctr
+ 0x00800764 rx_ready
+ COMMON 0x00800765
0x92 ../../../../../src/kernel/source/nrk.o
+ 0x00800765 _free_node
+ 0x00800767 nrk_task_TCB
+ 0x008007ca next_next_wakeup
+ 0x008007cc nrk_sem_list
+ 0x008007cf nrk_task_init_cnt
+ 0x008007d0 nrk_wakeup_signal
+ 0x008007d1 nrk_high_ready_TCB
+ 0x008007d3 nrk_cur_task_prio
+ 0x008007d4 _nrk_cpu_state
+ 0x008007d5 _head_node
+ 0x008007d7 nrk_system_time
+ 0x008007df _nrk_resource_cnt
+ 0x008007e0 nrk_cur_task_TCB
+ 0x008007e2 nrk_high_ready_prio
+ 0x008007e3 _nrk_readyQ
+ COMMON 0x008007f7
0x8 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x008007f7 ext_int1_callback
+ 0x008007f9 ext_int0_callback
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/main.sym Sat Dec 11
12:36:09 2010
@@ -0,0 +1,664 @@
+00000000 W __heap_end
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 T __vectors
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+000000cc T __ctors_end
+000000cc T __ctors_start
+000000cc T __dtors_end
+000000cc T __dtors_start
+000000f0 t __c.2963
+0000011b t __c.2961
+00000146 t __c.2376
+0000014d t __c.2373
+00000168 t __c.2370
+00000180 t __c.2367
+000001a0 t __c.2364
+000001b4 t __c.2361
+000001c5 t __c.2358
+000001d4 t __c.2355
+000001ef t __c.2352
+000001fb t __c.2349
+00000220 t __c.2346
+0000023e t __c.2343
+00000251 t __c.2340
+00000264 t __c.2337
+0000027c t __c.2334
+00000292 t __c.2331
+000002ad t __c.2328
+000002c3 t __c.2325
+000002d7 t __c.2321
+000002fe t __c.2318
+00000302 t __c.2316
+0000030e t __c.2249
+0000031e W __init
+0000032a T __do_copy_data
+00000344 T __do_clear_bss
+0000034c t .do_clear_bss_loop
+0000034e t .do_clear_bss_start
+0000035c T __bad_interrupt
+0000035c W __vector_10
+0000035c W __vector_11
+0000035c W __vector_12
+0000035c W __vector_14
+0000035c W __vector_16
+0000035c W __vector_18
+0000035c W __vector_19
+0000035c W __vector_20
+0000035c W __vector_21
+0000035c W __vector_22
+0000035c W __vector_23
+0000035c W __vector_24
+0000035c W __vector_25
+0000035c W __vector_26
+0000035c W __vector_27
+0000035c W __vector_28
+0000035c W __vector_29
+0000035c W __vector_3
+0000035c W __vector_30
+0000035c W __vector_31
+0000035c W __vector_33
+0000035c W __vector_34
+0000035c W __vector_35
+0000035c W __vector_36
+0000035c W __vector_37
+0000035c W __vector_38
+0000035c W __vector_39
+0000035c W __vector_4
+0000035c W __vector_40
+0000035c W __vector_41
+0000035c W __vector_42
+0000035c W __vector_43
+0000035c W __vector_44
+0000035c W __vector_45
+0000035c W __vector_46
+0000035c W __vector_47
+0000035c W __vector_48
+0000035c W __vector_49
+0000035c W __vector_5
+0000035c W __vector_50
+0000035c W __vector_6
+0000035c W __vector_7
+0000035c W __vector_8
+00000360 T monome_setup_system
+00000372 T monome_set_player_num
+000003d2 T monome_comm_init
+00000406 T nrk_create_taskset
+000004c0 T main
+00000528 T Task1
+0000066c T rtl_wait_until_global_slot
+00000672 T rtl_ready
+00000686 T rtl_get_slot
+00000690 T rtl_sync_status
+00000698 T rtl_check_abs_tx_status
+000006a0 T rtl_rx_pkt_release
+000006a6 T rtl_tx_pkt_check
+000006dc T rtl_rx_pkt_check
+000006e8 T rtl_set_cycle_callback
+000006f2 T rtl_set_slot_callback
+000006fc T rtl_set_rx_callback
+00000706 T rtl_set_tx_callback
+00000710 T rtl_set_abs_callback
+0000071a T rtl_rx_pkt_set_buffer
+0000073a T rtl_task_config
+000007e4 T rtl_start
+00000824 T rtl_set_contention
+0000086c T rtl_init
+000009a6 T rtl_set_tx_power
+000009ac T _rtl_tx
+00000ace T _rtl_rx
+00000be6 T rtl_tx_abs_pkt
+00000c5c T _rtl_rx_sync
+00000ecc T rtl_set_channel
+00000ed6 T rtl_tx_pkt
+00000f5e T rtl_nw_task
+000012ee T rtl_get_global_slot
+000013cc T rtl_wait_until_rx_or_tx
+0000141e T rtl_wait_until_tx_done
+0000145c T rtl_wait_until_rx_pkt
+00001490 T rtl_rx_pkt_get
+000014ce T rtl_get_rx_pkt_signal
+000014e8 T rtl_get_tx_done_signal
+00001502 T rtl_set_schedule
+000015b8 T rtl_get_schedule
+000015f2 T rtl_clr_schedule
+0000169e T _rtl_clr_abs_all_wakeup
+000016c4 T rtl_set_abs_wakeup
+00001746 T _rtl_clr_abs_wakeup
+000017b0 T _rtl_match_abs_wakeup
+00001818 T _rtl_get_next_abs_wakeup
+0000185a T _rtl_clear_sched_cache
+0000186a T _rtl_pow
+0000189e T rtl_get_slots_until_next_wakeup
+00001944 T rtl_debug_time_update
+00001964 T rtl_debug_time_get_drift
+0000196e T rtl_debug_init
+00001990 T bit_count
+000019b4 T rtl_debug_get_pkt_loss
+000019dc T rtl_debug_get_tsync_loss
+000019e8 T rtl_debug_rx_pkt
+00001a2a T rtl_debug_dropped_pkt
+00001a6e T rtl_debug_get_tsync_delay
+00001a86 T rtl_debug_rx_tsync
+00001ad0 T rtl_debug_dropped_tsync
+00001b1c T halRfSetChannel
+00001b5a T halRfWaitForCrystalOscillator
+00001b72 T rf_security_last_pkt_status
+00001b7a T rf_security_set_ctr_counter
+00001c08 T rf_security_enable
+00001c54 T rf_security_disable
+00001c7c T rf_get_sem
+00001c86 T rf_tx_power
+00001cb6 T rf_addr_decode_enable
+00001cec T rf_addr_decode_disable
+00001d22 T rf_auto_ack_enable
+00001d5e T rf_auto_ack_disable
+00001d98 T rf_rx_on
+00001dc0 T rf_polling_rx_on
+00001de8 T rf_rx_off
+00001e00 T rf_busy
+00001e14 T rf_rx_check_fifop
+00001e26 T rf_rx_check_sfd
+00001e3a T rf_polling_rx_packet
+000021ff W __stack
+00002288 T rf_rx_packet
+000022a6 T rf_flush_rx_fifo
+000022c4 T rf_set_cca_thresh
+000022f4 T rf_test_mode
+0000234a T rf_data_mode
+0000239c T rf_carrier_on
+000023ac T rf_carrier_off
+000023bc T rf_tx_packet
+00002702 T rf_tx_tdma_packet
+00002a1a T rf_addr_decode_set_my_mac
+00002a90 T rf_security_set_key
+00002c6a T rf_set_rx
+00002ca0 T rf_set_channel
+00002ca6 T rf_init
+00002e4c T nrk_uart_rx_signal_get
+00002e52 T nrk_uart_data_ready
+00002e88 T getc1
+00002ea2 T PORT_INIT
+00002ecc T nrk_setup_ports
+00002eda T nrk_gpio_set
+00002fe4 T nrk_gpio_clr
+000030fc T nrk_gpio_get
+00003170 T nrk_gpio_toggle
+00003382 T nrk_gpio_direction
+000035b2 T nrk_get_button
+000035d2 T nrk_led_toggle
+0000360c T nrk_led_clr
+00003646 T nrk_led_set
+00003680 T nrk_gpio_pullups
+00003696 T putc0
+000036b0 T putc1
+000036c0 T setup_uart0
+000036ee T setup_uart1
+0000371c T getc0
+00003736 T nrk_setup_uart
+00003778 T nrk_kprintf
+0000379e T halWait
+000037ac T read_eeprom_current_image_checksum
+000037c0 T write_eeprom_current_image_checksum
+000037d4 T nrk_eeprom_read_byte
+000037e0 T read_eeprom_mac_address
+00003832 T read_eeprom_channel
+00003846 T read_eeprom_load_img_pages
+0000385a T read_eeprom_aes_key
+00003882 T nrk_eeprom_write_byte
+0000388c T write_eeprom_load_img_pages
+000038a0 T write_eeprom_aes_key
+000038c8 T nrk_int_disable
+000038cc T nrk_int_enable
+000038d0 T nrk_version
+000038d6 T _nrk_timer_tick
+000038dc T nrk_TCB_init
+00003b2c T nrk_start
+00003bec T nrk_init
+00003d04 T nrk_halt
+00003d08 T _nrk_errno_set
+00003d14 T nrk_errno_get
+00003d22 T nrk_error_get
+00003d42 T nrk_error_print
+00003e92 T nrk_kernel_error_add
+00003ea0 T nrk_error_add
+00003eb8 T nrk_stack_check_pid
+00003f02 T dump_stack_info
+0000405a T nrk_stack_check
+000040a0 T nrk_signal_create
+0000411a T nrk_signal_get_registered_mask
+0000412c T nrk_signal_unregister
+000041b2 T nrk_signal_register
+00004224 T nrk_sem_create
+0000422a T nrk_get_resource_index
+0000423c T nrk_sem_delete
+00004284 T nrk_sem_query
+000042be T nrk_sem_post
+00004366 T nrk_event_signal
+00004446 T nrk_signal_delete
+00004562 T nrk_sem_pend
+0000460a T nrk_event_wait
+00004680 T nrk_get_high_ready_task_ID
+0000468e T nrk_print_readyQ
+000046a4 T nrk_add_to_readyQ
+000047b2 T nrk_rem_from_readyQ
+00004856 T nrk_get_pid
+00004864 T _nrk_wait_for_scheduler
+00004878 T nrk_wait
+00004932 T nrk_wait_until
+000049e2 T nrk_wait_until_nw
+00004a30 T nrk_set_next_wakeup
+00004aac T nrk_wait_until_ticks
+00004b02 T nrk_wait_ticks
+00004b70 T nrk_wait_until_next_n_periods
+00004bd6 T nrk_wait_until_next_period
+00004c2e T nrk_terminate_task
+00004c52 T nrk_activate_task
+00004cfe T nrk_time_sub
+00004e1c T nrk_time_compact_nanos
+00004e60 T nrk_time_add
+00004f1a T nrk_time_set
+00004f3c T _nrk_time_to_ticks
+00005040 T _nrk_ticks_to_time
+000050f8 T _nrk_time_to_ticks_long
+00005208 T nrk_time_get
+000052be T nrk_idle_task
+00005306 T _nrk_scheduler
+000056f6 T nrk_spin_wait_us
+00005704 T _nrk_high_speed_timer_stop
+0000570a T _nrk_high_speed_timer_start
+00005712 T _nrk_high_speed_timer_reset
+00005722 T _nrk_high_speed_timer_get
+00005758 T _nrk_os_timer_stop
+0000576e T _nrk_os_timer_set
+00005774 T _nrk_os_timer_start
+00005786 T _nrk_os_timer_reset
+0000579a T _nrk_get_next_wakeup
+000057a4 T _nrk_set_next_wakeup
+000057ac T nrk_timer_int_stop
+000057ba T nrk_timer_int_reset
+000057d2 T nrk_timer_int_read
+000057e6 T nrk_timer_int_start
+000057fc T nrk_timer_int_configure
+00005882 T _nrk_os_timer_get
+0000588a T __vector_13
+0000588a T __vector_15
+000058f0 T __vector_17
+00005904 T __vector_32
+00005960 T __vector_default
+0000598c T nrk_high_speed_timer_wait
+00005a18 T _nrk_setup_timer
+00005a8e T nrk_ext_int_enable
+00005b1c T nrk_ext_int_disable
+00005ba6 T nrk_ext_int_configure
+00005cc8 T __vector_2
+00005d24 T __vector_1
+00005d80 T __vector_9
+00005ddc T _nrk_startup_ok
+00005df0 T update_watchdog
+00005df2 T nrk_watchdog_check
+00005e04 T nrk_watchdog_reset
+00005e08 T nrk_watchdog_disable
+00005e26 T nrk_watchdog_enable
+00005e46 T nrk_battery_save
+00005e48 T nrk_sleep
+00005e60 T nrk_idle
+00005e76 T nrk_task_set_entry_function
+00005e7e T nrk_task_stk_init
+00005efa T nrk_stack_pointer_init
+00005f1c T nrk_stack_pointer_restore
+00005f2e T nrk_target_start
+00005f38 T nrk_task_set_stk
+00005f76 T nrk_start_high_ready_task
+00005fcc T vfprintf
+00006318 t do_rand
+000063d0 T rand_r
+000063d6 T rand
+000063e0 T srand
+000063f6 T strlen_P
+00006408 T fdevopen
+000064a8 T fputc
+00006502 T printf
+00006542 T puts
+000065a8 T calloc
+000065e0 T malloc
+00006726 T free
+000067d2 T memset
+000067e0 T __mulsi3
+0000681e T __udivmodhi4
+00006826 t __udivmodhi4_loop
+00006834 t __udivmodhi4_ep
+00006846 T __divmodhi4
+00006846 T _div
+0000685a t __divmodhi4_neg2
+00006860 t __divmodhi4_exit
+00006862 t __divmodhi4_neg1
+0000686c T __udivmodsi4
+00006878 t __udivmodsi4_loop
+00006892 t __udivmodsi4_ep
+000068b0 T __eeprom_read_byte_1F2021
+000068c0 T __eeprom_write_byte_1F2021
+000068d8 T __divmodsi4
+000068ec t __divmodsi4_neg2
+000068fa t __divmodsi4_exit
+000068fc t __divmodsi4_neg1
+0000690e t __stop_program
+0000690e T _exit
+0000690e W exit
+00006910 A __data_load_start
+00006910 T _etext
+00006a12 A __data_load_end
+00800200 D __data_start
+00800285 D NRK_DEBUG_0
+00800286 D NRK_DEBUG_1
+00800287 D NRK_BUTTON
+00800288 D NRK_SPI_SS
+00800289 D NRK_SCK
+0080028a D NRK_MOSI
+0080028b D NRK_MISO
+0080028c D NRK_GPIO26
+0080028d D NRK_MMC_11
+0080028e D NRK_MMC_10
+0080028f D NRK_MMC_9
+00800290 D NRK_DEBUG_2
+00800291 D NRK_DEBUG_3
+00800292 D NRK_UART1_RXD
+00800293 D NRK_UART1_TXD
+00800294 D NRK_CCA
+00800295 D NRK_SFD
+00800296 D NRK_UART0_RXD
+00800297 D NRK_UART0_TXD
+00800298 D NRK_LED_0
+00800299 D NRK_LED_1
+0080029a D NRK_LED_2
+0080029b D NRK_LED_3
+0080029c D NRK_GPIO34
+0080029d D NRK_FIFOP
+0080029e D NRK_ADC_INPUT_0
+0080029f D NRK_ADC_INPUT_1
+008002a0 D NRK_ADC_INPUT_2
+008002a1 D NRK_ADC_INPUT_3
+008002a2 D NRK_ADC_INPUT_4
+008002a3 D NRK_ADC_INPUT_5
+008002a4 D NRK_ADC_INPUT_6
+008002a5 D NRK_ADC_INPUT_7
+008002f7 d next
+008002fb D __malloc_margin
+008002fd D __malloc_heap_start
+008002ff D __malloc_heap_end
+00800302 B __bss_start
+00800302 D __data_end
+00800302 D _edata
+00800302 B last_slot_time
+0080030a B rtl_param
+00800313 B cycle_callback
+00800315 B _rtl_ready
+00800316 B rtl_task_stack
+00800396 B rtl_tx_data_ready
+0080039a B error_task
+0080039b B _rtl_sync_ok
+0080039c B _rtl_contention_slots
+0080039d B tx_callback
+0080039f B rtl_task
+008003c2 B rtl_tdma_tx_mask
+008003c6 B sync_pkt_tx
+008003c7 B TaskOne
+008003ea B state
+008003eb B rtl_tsync_tx
+008003f2 B rtl_rfRxInfo
+008003fb B _rtl_time_token_status
+008003fc B player_num
+008003fd B rtl_abs_tx_slot
+008003ff B _nrk_signal_list
+00800403 B sync_pkt_rx
+00800404 B _rtl_contention_pending
+00800405 B rx_buf
+00800479 B rtl_rx_slot
+0080047a B Stack1
+008004fa B rtl_tdma_rx_mask
+008004fe B nrk_kernel_stk_ptr
+00800500 B rx_callback
+00800502 B rtl_rx_data_ready
+00800503 B tx_buf
+00800577 B rtl_abs_tx_ready
+00800578 B slot_callback
+0080057a B rtl_node_mode
+0080057b B abs_callback
+0080057d B rtl_rfTxInfo
+00800584 B error_num
+00800585 B tx_len
+00800586 B last_slot
+00800588 B rtl_rx_buf
+008005fc B nrk_idle_task_stk
+0080067c B _rtl_time_token
+0080067d B rtl_tx_info
+008006e0 B rtl_tsync_buf
+008006e3 B app_timer0_callback
+008006e5 B tsync_log
+008006ed B rtl_rx_pkt_signal
+008006ee B global_cycle
+008006f0 B tsync_delay
+008006f8 B slot_start_time
+008006fa B rtl_abs_wakeup
+00800702 B global_slot
+00800704 B _nrk_time_trigger
+00800705 B _dbg_index
+00800706 B last_sync_slot
+00800708 B prev_offset
+0080070a B pkt_log
+00800712 B rtl_drift_rate
+00800714 B current_global_slot
+00800716 B app_timer0_prescale
+00800717 B _tsync_index
+00800718 B _nrk_prev_timer_val
+00800719 B rtl_sched
+00800729 B rtl_sched_cache
+00800749 B rtl_tx_done_signal
+0080074a B rx_ctr
+0080074e B radio_sem
+00800750 B security_enable
+00800751 B mdmctrl0
+00800753 B rfSettings
+0080075c B tmp_blah
+0080075e B auto_ack_enable
+0080075f B last_pkt_encrypted
+00800760 B tx_ctr
+00800764 B rx_ready
+00800765 B _free_node
+00800767 B nrk_task_TCB
+008007ca B next_next_wakeup
+008007cc B nrk_sem_list
+008007cf B nrk_task_init_cnt
+008007d0 B nrk_wakeup_signal
+008007d1 B nrk_high_ready_TCB
+008007d3 B nrk_cur_task_prio
+008007d4 B _nrk_cpu_state
+008007d5 B _head_node
+008007d7 B nrk_system_time
+008007df B _nrk_resource_cnt
+008007e0 B nrk_cur_task_TCB
+008007e2 B nrk_high_ready_prio
+008007e3 B _nrk_readyQ
+008007f7 B ext_int1_callback
+008007f9 B ext_int0_callback
+008007fb B ext_int2_callback
+008007fd B pc_int0_callback
+008007ff B __iob
+00800805 B __brkval
+00800807 B __flp
+00800809 B __bss_end
+00800809 A __heap_start
+00800809 A _end
+00810000 A __eeprom_end
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/makefile Sat Dec 11
12:36:09 2010
@@ -0,0 +1,41 @@
+# Platform name cc2420DK, firefly, micaZ, firefly2, firefly2_2
+PLATFORM = firefly2_2
+
+
+# Target file name (without extension).
+TARGET = main
+
+# Set the Port that you programmer is connected to
+ PROGRAMMING_PORT = /dev/tty.usbserial-0000101DB # Default FireFly
serial port
+# PROGRAMMING_PORT = /dev/ttyUSB0 # Default micaZ serial port
+
+# Set this such that the nano-RK directory is the base path
+ROOT_DIR = ../../../../..
+
+# Set platform specific defines
+# The following will be defined based on the PLATFORM variable:
+# PROG_TYPE (e.g. avrdude, or uisp)
+# MCU (e.g. atmega32, atmega128, atmega1281)
+# RADIO (e.g. cc2420)
+include $(ROOT_DIR)/include/platform.mk
+
+
+SRC = $(TARGET).c
+SRC += $(ROOT_DIR)/src/net/rt_link/rt_link.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_scheduler.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_debug.c
+
+# Add extra source files.
+# For example:
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src1.c
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src2.c
+
+# Add extra includes files.
+# For example:
+# EXTRAINCDIRS += $(ROOT_DIR)/src/platform/include
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/platform/$(PLATFORM_TYPE)/
+
+
+# This is where the final compile and download happens
+include $(ROOT_DIR)/include/platform/$(PLATFORM)/common.mk
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers/nrk_cfg.h Sat Dec 11
12:36:09 2010
@@ -0,0 +1,35 @@
+/***************************************************************
+* NanoRK CONFIG *
+***************************************************************/
+
+#ifndef __nrk_cfg_h
+#define __nrk_cfg_h
+
+// NRK_REPORT_ERRORS will cause the kernel to print out information about
+// missed deadlines or reserve violations
+#define NRK_REPORT_ERRORS
+// NRK_HALT_ON_ERRORS will cause the kernel to freeze on errors so that
+// it is easier to see debugging messages.
+#define NRK_HALT_ON_ERROR
+
+// NRK_STACK_CHECK adds a little check to see if the bottom of the stack
+// has been over written on all suspend calls
+#define NRK_STACK_CHECK
+
+// Leave NRK_NO_POWER_DOWN define in if the target can not wake up from
sleep
+// because it has no asynchronously clocked
+// #define NRK_NO_POWER_DOWN
+
+
+
+#define NRK_MAX_TASKS 3 // Max number of tasks in your
application
+#define NRK_N_SYS_TASKS 1 // you need at least the idle task
+
+
+#define NRK_TASK_IDLE_STK_SIZE 128 // Idle task stack size min=32
+#define NRK_APP_STACKSIZE 128
+#define NRK_KERNEL_STACKSIZE 128
+#define NRK_MAX_RESOURCE_CNT 1
+
+
+#endif
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.c Sat
Dec 11 12:36:09 2010
@@ -0,0 +1,427 @@
+/*
+ * main.c
+ *
+ *
+ * Created by Philip Asare on 12/6/10.
+ * Copyright 2010 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+#include <nrk.h>
+#include <include.h>
+#include <ulib.h>
+#include <stdio.h>
+#include <avr/sleep.h>
+#include <hal.h>
+#include <rt_link.h>
+#include <nrk_error.h>
+#include <nrk_timer.h>
+#include <nrk_ext_int.h>
+#include <nrk_driver_list.h>
+#include <nrk_driver.h>
+#include <ff_basic_sensor.h>
+
+NRK_STK MainStack[NRK_APP_STACKSIZE];
+nrk_task_type MainTask;
+void main_task(void);
+
+//#define IRQ NRK_UART0_TXD
+
+#define UP NRK_UART0_RXD
+#define DOWN NRK_DEBUG_0
+#define LEFT NRK_UART1_TXD
+#define RIGHT NRK_UART1_RXD
+
+#define DRAW NRK_DEBUG_2
+#define ERASE NRK_DEBUG_3
+
+#define DRAW_INT NRK_EXT_INT_0
+#define ERASE_INT NRK_EXT_INT_1
+
+#define DRAW_OUT NRK_UART0_TXD
+#define ERASE_OUT NRK_DEBUG_1
+
+#define DEVIATION 10
+uint16_t z_baseline, x_baseline, y_baseline;
+
+/* controller tx slots --> base station rx slots */
+#define C1
+
+#ifdef C1
+#define MY_TX 2
+#define MY_RX 5
+#endif
+
+#ifdef C2
+#define MY_TX 4
+#define MY_RX 7
+#endif
+
+#ifdef C3
+#define MY_TX 6
+#define MY_RX 9
+#endif
+
+#ifdef C4
+#define MY_TX 8
+#define MY_RX 11
+#endif
+
+#define ALL_RX 3
+
+/* game states and controller tracking */
+
+uint8_t state, player_num;
+
+#define SYNC 1
+#define SELECT (1<<1)
+#define PREGAME (1<<2)
+
+/* monome helper functions */
+
+#define type(x) (sizeof(x) + PKT_DATA_START)
+
+typedef struct{
+ uint8_t player;
+} monome_comm_sync_pkt;
+
+monome_comm_sync_pkt sync_pkt_tx, sync_pkt_rx;
+
+inline void monome_set_player_num();
+inline void monome_setup_system();
+inline void monome_comm_init();
+
+uint8_t tx_len;
+
+/* task setup */
+
+NRK_STK CommStack[NRK_APP_STACKSIZE];
+nrk_task_type CommTask;
+void comm_task(void);
+
+inline void monome_comm_init();
+void nrk_create_taskset();
+
+uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+
+/* monome sketch-it functions */
+void monome_move(uint8_t direction);
+void monome_draw();
+void monome_erase();
+
+void nrk_register_drivers();
+uint8_t kill_stack(uint8_t val);
+
+int
+main ()
+{
+ uint8_t t;
+ nrk_setup_ports();
+ //nrk_setup_uart(UART_BAUDRATE_115K2);
+
+ /* output pins */
+ nrk_gpio_direction(NRK_UART0_RXD, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(NRK_UART0_TXD, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(NRK_UART1_RXD, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(NRK_UART1_TXD, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(NRK_DEBUG_0, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(NRK_DEBUG_1, NRK_PIN_OUTPUT);
+
+ /* button input pins */
+ nrk_gpio_direction(NRK_DEBUG_2, NRK_PIN_INPUT);
+ nrk_gpio_direction(NRK_DEBUG_3, NRK_PIN_INPUT);
+
+ /* configure interrupts */
+ nrk_ext_int_configure(DRAW_INT, NRK_RISING_EDGE, monome_draw);
+ nrk_ext_int_configure(ERASE_INT, NRK_RISING_EDGE, monome_erase);
+
+ //nrk_gpio_clr(IRQ);
+ nrk_gpio_clr(UP);
+ nrk_gpio_clr(DOWN);
+ nrk_gpio_clr(LEFT);
+ nrk_gpio_clr(RIGHT);
+ nrk_gpio_clr(DRAW_OUT);
+ nrk_gpio_clr(ERASE_OUT);
+
+ //printf( PSTR("starting...\r\n") );
+
+ nrk_init();
+ nrk_time_set(0,0);
+
+ nrk_register_drivers();
+ nrk_create_taskset ();
+ nrk_start();
+
+ return 0;
+}
+
+void main_task()
+{
+ uint16_t cnt, calibration;
+ int8_t i,fd,val;
+ uint16_t x_val, y_val, z_val;
+
+ //printf( "My node's address is %d\r\n",NODE_ADDR );
+
+ //printf( "Task1 PID=%d\r\n",nrk_get_pid());
+
+ //nrk_gpio_clr(IRQ);
+ nrk_gpio_clr(UP);
+ nrk_gpio_clr(DOWN);
+ nrk_gpio_clr(LEFT);
+ nrk_gpio_clr(RIGHT);
+ nrk_gpio_clr(DRAW_OUT);
+ nrk_gpio_clr(ERASE_OUT);
+
+ nrk_ext_int_enable(DRAW_INT);
+ nrk_ext_int_enable(ERASE_INT);
+
+ x_baseline = 0;
+ y_baseline = 0;
+ z_baseline = 0;
+ cnt=0;
+ calibration = 1;
+ while(1) {
+ // Open ADC device as read
+ fd=nrk_open(FIREFLY_SENSOR_BASIC,READ);
+ if(fd==NRK_ERROR) nrk_kprintf(PSTR("Failed to open sensor driver\r\n"));
+ nrk_led_toggle(BLUE_LED);
+ /* read x value */
+ val=nrk_set_status(fd,SENSOR_SELECT,ACC_X);
+ val=nrk_read(fd,&x_val,2);
+
+ /* read y value */
+ val=nrk_set_status(fd,SENSOR_SELECT,ACC_Y);
+ val=nrk_read(fd,&y_val,2);
+
+ /* read z value */
+ val=nrk_set_status(fd,SENSOR_SELECT,ACC_Z);
+ val=nrk_read(fd,&z_val,2);
+
+ if(cnt > 10){
+ calibration = 0;
+ //printf( "z_baseline=%d\r\n",z_baseline);
+ //printf( "x_baseline=%d\r\n",x_baseline);
+ //printf( "y_baseline=%d\r\n",y_baseline);
+ cnt = 0;
+ }
+ /* calibration */
+ if(calibration > 0){
+ if(cnt == 0){
+ x_baseline = x_val;
+ y_baseline = y_val;
+ z_baseline = z_val;
+ }
+ else{
+ x_baseline = (x_baseline + x_val)>>1;
+ y_baseline = (y_baseline + y_val)>>1;
+ z_baseline = (z_baseline + z_val)>>1;
+ }
+
+ cnt++;
+ }
+
+ else{
+
+ /*
+ * change in z value beyond threshold indicates cursor move
+ * determine cursor direction only on this indicator
+ */
+ if((z_val > z_baseline + DEVIATION) || z_val < z_baseline - DEVIATION){
+
+ //printf( "acc_z=%d",z_val);
+ //printf( " acc_x=%d",x_val);
+ //printf( " acc_y=%d\r\n",y_val);
+ if((x_val > (x_baseline + DEVIATION)) || (x_val < (x_baseline -
DEVIATION))){
+ if(x_val > x_baseline) //nrk_kprintf( PSTR("move down\r\n") );
+ monome_move(DOWN);
+ else //nrk_kprintf( PSTR("move up\r\n") );
+ monome_move(UP);
+ }
+ if((y_val > (y_baseline + DEVIATION)) || (y_val < (y_baseline -
DEVIATION))){
+ if(y_val > y_baseline) //nrk_kprintf( PSTR("move right\r\n") );
+ monome_move(RIGHT);
+ else //nrk_kprintf( PSTR("move left\r\n") );
+ monome_move(LEFT);
+ }
+ }
+ else {
+ //nrk_kprintf( PSTR("no move\r\n") );
+ ;
+ }
+ }
+
+ nrk_close(fd);
+ nrk_wait_until_next_period();
+
+ }
+}
+
+
+void comm_task()
+{
+ //uint8_t j, i;
+ uint8_t *local_rx_buf;
+ uint8_t length,slot;
+ int8_t rssi;
+
+ monome_comm_init();
+ monome_setup_system();
+
+ while(!rtl_ready()) nrk_wait_until_next_period();
+
+ while(1){
+ if( rtl_rx_pkt_check()!=0 )
+ {
+ //nrk_led_set(BLUE_LED);
+ local_rx_buf=rtl_rx_pkt_get(&length, &rssi, &slot);
+ printf( "Got Packet on slot %d %d: \r\n",slot,length );
+ if(length == type(monome_comm_sync_pkt)){
+ if(state & SYNC){
+ //memcpy(&rx_buf[PKT_DATA_START], &sync_pkt_rx,
sizeof(monome_comm_sync_pkt));
+ player_num = local_rx_buf[PKT_DATA_START];
+ monome_set_player_num();
+ rtl_rx_pkt_release();
+ }
+ }
+ }
+ if(state & SYNC){
+ printf("waiting to sync\r\n");
+ while( rtl_tx_pkt_check(MY_TX)!=0 );
+ memcpy(&tx_buf[PKT_DATA_START], &sync_pkt_tx,
sizeof(monome_comm_sync_pkt));
+ tx_len = type(monome_comm_sync_pkt);
+ rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ rtl_wait_until_tx_done(MY_TX);
+ }
+
+ else{
+ printf("synced as player %d\r\n", player_num);
+ }
+ nrk_wait_until_next_period();
+ }
+}
+
+void
+nrk_create_taskset()
+{
+
+
+ CommTask.task = comm_task;
+ CommTask.Ptos = (void *) &CommStack[NRK_APP_STACKSIZE-1];
+ CommTask.Pbos = (void *) &CommStack[0];
+ CommTask.prio = 2;
+ CommTask.FirstActivation = TRUE;
+ CommTask.Type = BASIC_TASK;
+ CommTask.SchType = PREEMPTIVE;
+ CommTask.period.secs = 1;
+ CommTask.period.nano_secs = 500*NANOS_PER_MS;
+ CommTask.cpu_reserve.secs = 0;
+ CommTask.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ CommTask.offset.secs = 0;
+ CommTask.offset.nano_secs= 0;
+ nrk_activate_task (&CommTask);
+
+ MainTask.task = main_task;
+ nrk_task_set_stk( &MainTask, MainStack, NRK_APP_STACKSIZE);
+ MainTask.prio = 1;
+ MainTask.FirstActivation = TRUE;
+ MainTask.Type = BASIC_TASK;
+ MainTask.SchType = PREEMPTIVE;
+ MainTask.period.secs = 1;
+ MainTask.period.nano_secs = 500*NANOS_PER_MS; //*NANOS_PER_MS;
+ MainTask.cpu_reserve.secs = 1;
+ MainTask.cpu_reserve.nano_secs = 0*NANOS_PER_MS;
+ MainTask.offset.secs = 0;
+ MainTask.offset.nano_secs= 0;
+ nrk_activate_task (&MainTask);
+
+
+ printf ("Create done\r\n");
+}
+
+inline void monome_comm_init(){
+ rtl_init (RTL_MOBILE);
+
+ /* rx schedules */
+ rtl_set_schedule( RTL_RX, MY_RX, 1 );
+ rtl_set_schedule( RTL_RX, ALL_RX, 1 );
+
+ /* tx schedules */
+ rtl_set_schedule( RTL_TX, MY_TX, 1 );
+
+ rtl_start();
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+}
+
+inline void monome_setup_system(){
+ state = 0 | SYNC;
+ player_num = -1;
+ sync_pkt_tx.player = -1;
+
+}
+
+inline void monome_set_player_num(){
+ printf("setting player\r\n");
+ //player_num = sync_pkt_rx.player;
+ printf("player number: %d\r\n", player_num);
+ switch (player_num) {
+ case 0:
+ nrk_led_set(RED_LED);
+ break;
+ case 1:
+ nrk_led_set(GREEN_LED);
+ break;
+ case 2:
+ nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);
+ break;
+ case 3:
+ nrk_led_set(BLUE_LED);
+ break;
+ default:
+ break;
+ }
+ state = 0 | SELECT;
+}
+
+void nrk_register_drivers()
+{
+ int8_t val;
+
+ // Register the Basic FireFly Sensor device driver
+ // Make sure to add:
+ // #define NRK_MAX_DRIVER_CNT
+ // in nrk_cfg.h
+ // Make sure to add:
+ // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+ // in makefile
+ val=nrk_register_driver( &dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to load my ADC driver\r\n")
);
+
+}
+
+void monome_move(uint8_t direction){
+ nrk_gpio_set(direction);
+ //nrk_gpio_set(IRQ);
+ nrk_spin_wait_us(100000);
+ //nrk_gpio_clr(IRQ);
+ nrk_gpio_clr(direction);
+}
+
+void monome_draw(){
+ while(nrk_gpio_get(DRAW)); //debounce
+ //nrk_kprintf( PSTR("draw\r\n") );
+ nrk_led_toggle(GREEN_LED);
+ nrk_gpio_set(DRAW_OUT);
+ nrk_spin_wait_us(90000);
+ nrk_gpio_clr(DRAW_OUT);
+}
+
+void monome_erase(){
+ while(nrk_gpio_get(ERASE)); //debounce
+ //nrk_kprintf( PSTR("erase\r\n") );
+ nrk_led_toggle(RED_LED);
+ nrk_gpio_set(ERASE_OUT);
+ nrk_spin_wait_us(90000);
+ nrk_gpio_clr(ERASE_OUT);
+}
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.d Sat
Dec 11 12:36:09 2010
@@ -0,0 +1,22 @@
+main.o main.d : main.c ../../../../../src/kernel/include/nrk.h \
+ ../../../../../src/kernel/hal/include/nrk_cpu.h nrk_cfg.h \
+ ../../../../../src/kernel/include/nrk_time.h \
+ ../../../../../src/platform/firefly2_2/include/include.h \
+ ../../../../../src/platform/firefly2_2/include/hal.h \
+ ../../../../../src/platform/firefly2_2/include/hal_firefly2_2.h \
+ ../../../../../src/radio/cc2420/include/hal_cc2420.h \
+ ../../../../../src/radio/cc2420/hal/atmega1281/cc2420_mcu_hal.h \
+ ../../../../../src/radio/cc2420/platform/firefly2_2/cc2420_platform_hal.h
\
+ ../../../../../src/radio/cc2420/include/basic_rf.h \
+ ../../../../../src/kernel/include/nrk_events.h \
+ ../../../../../src/platform/include/ulib.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_pin_define.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_platform_time.h \
+ ../../../../../src/kernel/include/nrk_task.h \
+ ../../../../../src/net/rt_link/rt_link.h \
+ ../../../../../src/kernel/include/nrk_error.h \
+ ../../../../../src/kernel/hal/include/nrk_timer.h \
+ ../../../../../src/kernel/hal/include/nrk_ext_int.h \
+ ../../../../../src/drivers/include/nrk_driver_list.h \
+ ../../../../../src/kernel/include/nrk_driver.h \
+ ../../../../../src/drivers/platform/firefly2_2/include/ff_basic_sensor.h
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.elf
Sat Dec 11 12:36:09 2010
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.hex
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,1857 @@
+:100000000C94AE010C9489330C945B330C94CD01A9
+:100010000C94CD010C94CD010C94CD010C94CD0128
+:100020000C94CD010C94B7330C94CD010C94CD01FC
+:100030000C94CD010C943C310C94CD010C943C31CA
+:100040000C94CD010C946F310C94CD010C94CD0126
+:100050000C94CD010C94CD010C94CD010C94CD01E8
+:100060000C94CD010C94CD010C94CD010C94CD01D8
+:100070000C94CD010C94CD010C94CD010C94CD01C8
+:100080000C9479310C94CD010C94CD010C94CD01DC
+:100090000C94CD010C94CD010C94CD010C94CD01A8
+:1000A0000C94CD010C94CD010C94CD010C94CD0198
+:1000B0000C94CD010C94CD010C94CD010C94CD0188
+:1000C0000C94CD010C94CD010C94CD01BB22C12226
+:1000D000C422C722CA22CD22D322D022D622D9229C
+:1000E000DC22E222E522E822EB22DF22B822BE2235
+:1000F0004661696C656420746F206C6F6164206D6B
+:100100007920414443206472697665720D0A004685
+:1001100061696C656420746F206F70656E20736513
+:100120006E736F72206472697665720D0A005254A4
+:100130002D4C696E6B204552524F523A20637265C6
+:100140006174696E67207478207369676E616C20D2
+:100150006661696C65640D0A0052542D4C696E6BC2
+:10016000204552524F523A206372656174696E673E
+:10017000207278207369676E616C206661696C65B6
+:10018000640D0A00554E4B4F574E004661696C6531
+:100190006420746F206372656174652053656D61BE
+:1001A00070686F7265004661696C656420746F20C9
+:1001B000637265617465205369676E616C004B659D
+:1001C000726E656C2066756E6374696F6E206E6FFB
+:1001D0007420696D706C656D656E7465640044654E
+:1001E0007669636520447269766572204572726F24
+:1001F00072005761746368646F672052657374613D
+:1002000072740054696D6572204F766572666C6F0A
+:100210007700556E68616E646C656420496E746524
+:10022000727275707420566563746F72004C6F77CC
+:1002300020566F6C74616765004578747261205454
+:1002400061736B20737461727465642C2069732010
+:100250006E726B5F6366672E68206F6B3F00496448
+:100260006C65206F72204B65726E656C20537461F3
+:10027000636B204F766572666C6F7700556E65789C
+:1002800070656374656420526573746172740044B0
+:1002900075706C696361746564205461736B204987
+:1002A00044005363686564756C6572204D697373AF
+:1002B00065642057616B657570005461736B2052E3
+:1002C0006573657276652056696F6C61746564004C
+:1002D00052657365727665204572726F7220696E21
+:1002E000205363686564756C657200496E76616C55
+:1002F000696420537461636B20506F696E7465721A
+:10030000005461736B20537461636B204F76657288
+:10031000666C6F7700537461636B20776173206E36
+:100320006F7420646566696E6564206173206C611A
+:1003300072676520656E6F7567682100293A200035
+:100340002A4E524B204552524F5228000D0A535408
+:1003500041434B2044554D500D0A000011241FBE4F
+:10036000CFEFD1E2DEBFCDBF12E0A0E0B2E0EEEF12
+:10037000F2E700E00BBF02C007900D92A23FB10769
+:10038000D9F718E0A2EFB2E001C01D92AA3AB10776
+:10039000E1F70E9449040C947E390C94A73181E066
+:1003A0008093C2038FEF8093D6038093BF03089599
+:1003B0001F9310918102812F0E945C1C8823D9F722
+:1003C00083E090E00E94C71E10917602812F0E9468
+:1003D0004B1B80E99FE50E947230812F0E94D01B49
+:1003E0001F9108951F9310918002812F0E945C1C21
+:1003F0008823D9F782E090E00E94C71E10918702FF
+:10040000812F0E944B1B80E99FE50E947230812F53
+:100410000E94D01B1F9108951F93182F0E944B1B01
+:1004200080EA96E80E947230812F0E94D01B1F91B3
+:10043000089561E083E790E10E94592F8F3F21F4F6
+:1004400080EF90E00E949A1F089580E092E00E9461
+:1004500098378091D60399279F938F9380E192E0FC
+:100460009F938F930E9478370F900F900F900F906B
+:100470008091D603813071F0813028F0823031F0E4
+:10048000833079F40AC083E090E009C083E090E013
+:100490000E94011F82E090E002C081E090E00E9493
+:1004A000011F82E08093C203089580E00E945306FA
+:1004B00041E065E080E00E949E0C41E063E080E066
+:1004C0000E949E0C41E062E081E00E949E0C0E942E
+:1004D0000F0664E78FE594E00E94AA0508956F92E5
+:1004E0007F928F929F92AF92BF92DF92EF92FF9294
+:1004F0000F931F9381EB94E0909311068093100665
+:100500008DE594E090930D0680930C068EED93E0BC
+:1005100090930F0680930E0682E080931306DD24ED
+:10052000D394D0921206D0921406D092150621E0F0
+:10053000E22EF12C012D112DE0921606F0921706F5
+:100540000093180610931906812C95E6992E9DECC0
+:10055000A92E9DE1B92E80921A0690921B06A092B8
+:100560001C06B0921D0610921E0610921F061092D5
+:1005700020061092210680E092ECABEEBBE0809367
+:10058000220690932306A0932406B093250610928A
+:10059000260610922706109228061092290610921D
+:1005A0002A0610922B0610922C0610922D068BE034
+:1005B00096E00E94072A87E393E09093E2058093F8
+:1005C000E1058CED682E85E0782E40E850E06AED7C
+:1005D00074E0C3010E949334D092E405D092E30505
+:1005E000D092E505D092E605E092E705F092E805A5
+:1005F0000093E9051093EA058092EB059092EC05D3
+:10060000A092ED05B092EE05E092EF05F092F005B4
+:100610000093F1051093F2051092F3051092F40582
+:100620001092F5051092F6051092F7051092F80554
+:100630001092F9051092FA051092FB051092FC0534
+:100640001092FD051092FE05C3010E94072A84E264
+:1006500092E00E9498371F910F91FF90EF90DF90EA
+:10066000BF90AF909F908F907F906F9008952F9242
+:100670003F924F925F926F927F929F92AF92BF9202
+:10068000CF92DF92EF92FF920F931F93CF93DF935E
+:10069000CDB7DEB726970FB6F894DEBF0FBECDBF3D
+:1006A00090908602892D0E94D01BA09075028A2D01
+:1006B0000E94D01BB09083028B2D0E94D01B009112
+:1006C0008202802F0E94D01B809187020E94D01B43
+:1006D000809176020E94D01B80E00E943E3281E031
+:1006E0000E943E321092D7051092D6051092D50581
+:1006F0001092D4051092930310929203EE24FF24DB
+:1007000011E0C12ED12C1E010894211C311CB3E034
+:100710004B2E512C4C0E5D1EA5E06A2E712C6C0EDA
+:100720007D1E65E081E00E94762F182F8F3F21F417
+:100730008FE091E00E949A1F81E090E00E94C71E26
+:1007400042E061E0812F0E94E92F42E0B101812F58
+:100750000E940B3045E061E0812F0E94E92F42E0CA
+:10076000B201812F0E940B3046E061E0812F0E9490
+:10077000E92F42E0B301812F0E940B308BE0E81695
+:10078000F104E8F5C114D104F1F129813A814B81DA
+:100790005C816D817E81E114F10449F43093D705C9
+:1007A0002093D6055093D5054093D40520C0809161
+:1007B000D6059091D705280F391F36952795309388
+:1007C000D7052093D6058091D4059091D505480F83
+:1007D000591F569547955093D5054093D405809160
+:1007E000920390919303680F791F769567957093A4
+:1007F0009303609392030894E11CF11C44C0EE241F
+:10080000FF24CC24DD244D815E8120919203309120
+:100810009303C9010A968417950728F02A5030409F
+:100820004217530780F549815A812091D6053091AE
+:10083000D705C9010A968417950728F0C9010A97B8
+:100840004817590740F42417350710F48A2D01C0C2
+:10085000892D0E940C024B815C812091D40530913E
+:10086000D505C9010A968417950728F0C9010A978A
+:100870004817590740F42417350710F4802F01C09A
+:100880008B2D0E940C02812F0E944F300E94C9299B
+:1008900048CFCFEFD1E2DEBFCDBF0E94441BD09046
+:1008A000860261E08D2D0E949F1DC090870261E04D
+:1008B0008C2D0E949F1DE090820261E08E2D0E948F
+:1008C0009F1DF090830261E08F2D0E949F1D10916B
+:1008D000750261E0812F0E949F1D0091760261E008
+:1008E000802F0E949F1D60E0809180020E949F1DCA
+:1008F00060E0809181020E949F1D42EF51E063E021
+:1009000080E00E94CA3248ED51E063E081E00E943D
+:10091000CA328D2D0E94D01B812F0E94D01B8F2D9B
+:100920000E94D01B8E2D0E94D01B8C2D0E94D01BAC
+:10093000802F0E94D01B0E94D42120E030E040E0B4
+:1009400050E060E070E080E090E00E946B2B0E943D
+:1009500019020E946F020E94742180E090E00C94C2
+:100960007E392F923F924F925F926F927F928F9239
+:100970009F92AF92BF92CF92DF92EF92FF920F932E
+:100980001F93CF93DF93CDB7DEB723970FB6F894BD
+:10099000DEBF0FBECDBF0E94550281E08093C2032F
+:1009A0008FEF8093D6038093BF0302C00E94C929B2
+:1009B0000E9456058823D1F342E0242E312C2C0EC0
+:1009C0003D1E33E0432E512C4C0E5D1E3E0108941B
+:1009D000611C711C21E3822E22E0922E9FE5A92E3C
+:1009E00092E0B92E8EE4C82E82E0D82E0DE5E02EDE
+:1009F00005E0F02E0E948B05882349F1A101B20188
+:100A0000C3010E94650C8C01898199279F938F9364
+:100A10008A8199279F938F939F928F920E94783714
+:100A20008DB79EB706960FB6F8949EBF0FBE8DBFCA
+:100A30008981843061F48091C20380FF08C0F8018D
+:100A400083818093D6030E9425020E946D058091C8
+:100A5000C20380FF18C0C6010E94983782E00E943E
+:100A600070058823D9F78091BF038093600584E0E7
+:100A70008093080642E064E0C7010E94880982E092
+:100A80000E942C0C0DC08091D60399279F938F93C1
+:100A9000BF92AF920E9478370F900F900F900F90F7
+:100AA0000E94C929A7CF8FEF9FEF08958091090376
+:100AB000813019F481E090E008958FEF9FEF089561
+:100AC0008091B7079091B807089580919103992775
+:100AD00008958091D1059927089510925C05089595
+:100AE000282F813231F480915E04992787FD9095FB
+:100AF000089580918A0390918B03A0918C03B0910B
+:100B00008D0304C0B695A795979587952A95D2F73A
+:100B100081709070089580915C05992787FD90956C
+:100B20000895909306038093050308959093D30549
+:100B30008093D205089590935B0580935A0508959C
+:100B4000909396038093950308959093DB0580938B
+:100B5000DA050895662359F0009749F09093D2037F
+:100B60008093D1036093D00381E090E008958FEFEC
+:100B70009FEF08950F931F938CEC99E090939D0342
+:100B800080939C0307E913E040E850E06AE073E0DB
+:100B9000C8010E94933484E180939F0381E0809395
+:100BA0009E038093A0038093A1031092A20310924E
+:100BB000A3031092A4031092A5038BE49CE1A6E882
+:100BC000B0E08093A6039093A703A093A803B093EB
+:100BD000A9031092AA031092AB031092AC031092D7
+:100BE000AD031092AE031092AF031092B0031092B7
+:100BF000B1031092B2031092B3031092B403109297
+:100C0000B5031092B6031092B7031092B803109276
+:100C1000B903C8010E94072A1F910F91089580917E
+:100C2000D9058230B1F48091BA039091BB03A091B1
+:100C3000BC03B091BD0380FF07C08091BA0799271C
+:100C40008F70907005972CF044E060E081E00E9486
+:100C50009E0C0E944A0E82E08093090308950F9330
+:100C60001F93CF93DF93062F809394038823B1F0D3
+:100C70001FE1CFE1D0E0C81BD1090BC0402F612F8D
+:100C800080E00E949E0C402F612F81E00E949E0C0C
+:100C90001150812F9927C817D90784F3DF91CF917D
+:100CA0001F910F9108951F93182F0E942E24809357
+:100CB00091078F3F19F489E591E008C00E942E2426
+:100CC0008093EA078F3F69F48EE291E00E949A1FB9
+:100CD000E0918308F091840860858EE00E942723CC
+:100CE0007DC01092D2031092D1031092D0030E94C3
+:100CF0007C301092D503109222071092AA0710920E
+:100D0000A907109293071092920781E094E09093C4
+:100D1000A7078093A607109291031093D90510920C
+:100D2000940310925E0410925B0510925A05109283
+:100D30009603109295031092DB051092DA0510923B
+:100D4000D3051092D205109206031092050384E693
+:100D50008093020380E49FE190930103809300035A
+:100D600080EA9FE09093FF028093FE028AE08093E6
+:100D7000FC0280E899E19093FB028093FA02EAEB8F
+:100D8000F7E0119287E0EA3CF807D9F71092D40413
+:100D90001092D5041092D6041092D7041092BA0380
+:100DA0001092BB031092BC031092BD0310925C051D
+:100DB00010928A0310928B0310928C0310928D0371
+:100DC0000E946C0D2091FA023091FB026091FC02AE
+:100DD00040E254E28CEC93E00E94311A1F91089596
+:100DE0000E94211208951F93CF93DF93182F8091B3
+:100DF0009103882309F484C0E0919503F091960350
+:100E0000309711F0812F0995C12FDD27FE01EE0FDC
+:100E1000FF1FEC0FFD1FED5DF84F818192819093D4
+:100E2000040680930306808180930206E091030606
+:100E3000F09104068091A6079091A707892F992722
+:100E40008083E0910306F09104068091A6079091BB
+:100E5000A7078183E0910306F091040680912207A1
+:100E6000828380910206833011F010E008C0E09187
+:100E70000306F091040682818068828311E040912C
+:100E8000FE025091FF0260919C0770919D0780E0E7
+:100E900096E00E945F1721E030E040E050E00C2E29
+:100EA00004C0220F331F441F551F0A94D2F7209508
+:100EB00030954095509580918A0390918B03A09135
+:100EC0008C03B0918D0382239323A423B5238093B5
+:100ED0008A0390938B03A0938C03B0938D0320918E
+:100EE000940380E290E0821B9109C817D90714F09F
+:100EF00010925E04112321F48091EA070E9491254B
+:100F0000DF91CF911F9108950F931F93CF93DF939C
+:100F1000CDB7DEB722970FB6F894DEBF0FBECDBFB8
+:100F2000082F6091FC028CEC93E00E94131A0E943F
+:100F3000BE120E94383199279A83898389819A81C8
+:100F400004969A8389830BC00E94383129813A81A3
+:100F500099272817390718F40E94D21256C00E9408
+:100F6000F112882389F30E94383199279A83898363
+:100F70000E94383199279A83898389819A810596BD
+:100F80009A83898308C00E94383129813A81992740
+:100F90002817390728F00E94FB12182F882399F38D
+:100FA0000E94D212113089F510935C050093D3048E
+:100FB000E091D103F091D20380819927982F88275F
+:100FC00021813327282B392B8091A6079091A707E1
+:100FD0002817390721F03093A7072093A607E0913F
+:100FE0005A05F0915B05309711F0802F0995E0913B
+:100FF000D103F091D203828187FD05C080919107D2
+:101000000E94912502C010925C0522960FB6F894BA
+:10101000DEBF0FBECDBFDF91CF911F910F9108951D
+:10102000CF93DF93EC01FA01842F8F7121E030E040
+:1010300040E050E004C0220F331F441F551F8A9523
+:10104000D2F78091BA039091BB03A091BC03B091F9
+:10105000BD03282339234A235B232115310541058C
+:10106000510519F080E090E013C0D0938807C09339
+:10107000870760938607F093D803E093D70360E077
+:10108000CF010E947F0D81E08093D10581E090E047
+:10109000DF91CF910895AF92BF92CF92DF92EF92FE
+:1010A000FF920F931F93CF93DF93CDB7DEB72297B5
+:1010B0000FB6F894DEBF0FBECDBFCC24DD24EE24E6
+:1010C0006CECA62E63E0B62EE091D103F091D20332
+:1010D0008FEF8083E091D103F091D20381836091FF
+:1010E000FC02C5010E94131A0E94BE1210929103C5
+:1010F0008AEF0E94C93010E01EC00E9438311817D4
+:10110000D1F00E943831182F0894C11CD11C21E164
+:10111000C21627E2D20678F010922207E39485E007
+:101120008E1518F0CC24DD240BC00E941A34CC2478
+:10113000DD24EE2405C00E94F112F82E8823E9F286
+:101140000E9480300E9488309A8389830E943831BF
+:10115000082F11270C5F1F4FFF2061F006C00E946F
+:10116000383199270817190728F00E94FB12F82E2A
+:101170008823A9F30E94D21221E0F21609F0A4CF2D
+:101180008091CF0318160CF09FCFF0925C05E09190
+:10119000D103F091D203808199279093A707809380
+:1011A000A6078091A6079091A707982F882790936C
+:1011B000A7078093A6072091A6073091A7078181F2
+:1011C0009927822B932B9093A7078093A6072281C0
+:1011D000122F1F7780912207811730F08F3608F485
+:1011E00073CF1A3008F070CF8091A6079091A707AF
+:1011F0008F718093D30427FD18C02091D304809170
+:10120000D4049091D504A091D604B091D70404C021
+:10121000B695A795979587952A95D2F780FF05C033
+:10122000809191070E94912502C010925C058091E7
+:10123000A6079091A7078F718093D3048091A6078A
+:101240009091A70701979093B8078093B7071092E2
+:10125000D5031093220781E0809391038091A90721
+:101260009091AA070E94C00D8091A6079091A707B0
+:101270008050944030F48091A6079091A707029780
+:1012800018F48EEF93E005C08091A6079091A70710
+:1012900002979093AA078093A90760E08091A9071D
+:1012A0009091AA070E947F0D0E944A0E0E94A330CF
+:1012B0000E94BA3087E00E94AE3066E67CE680E0AD
+:1012C00090E00E94BD310E94BA300E94B1300E946D
+:1012D00080300E94883090939D0780939C07809176
+:1012E0009103992722960FB6F894DEBF0FBECDBFAB
+:1012F000DF91CF911F910F91FF90EF90DF90CF90F2
+:10130000BF90AF9008958093FC020E942E1A08951A
+:101310001F93CF93DF93EC01162F413261F40E94AB
+:10132000E2366091940377270E941A394FE1481BF7
+:1013300081E080935E04842F9927FC01EE0FFF1F4C
+:10134000E80FF91FED5DF84FD283C183108321E0D0
+:1013500030E040E050E004C0220F331F441F551F0F
+:101360008A95D2F780918A0390918B03A0918C0388
+:10137000B0918D03822B932BA42BB52B80938A03E2
+:1013800090938B03A0938C03B0938D0381E090E046
+:10139000DF91CF911F9108956F927F928F929F92CC
+:1013A000AF92BF92DF92EF92FF920F931F93CF9372
+:1013B000DF93109209030E94C929809109038823B1
+:1013C000D1F381E08093090310920A061092090676
+:1013D00082EF92E00E94E22C12EF612E12E0712E59
+:1013E000B6E88B2EB7E09B2EA3ECAA2EA3E0BA2E74
+:1013F0000E94883090939D0780939C07C3010E94B0
+:10140000E22C8091A6079091A70790930A068093FB
+:1014100009068150944021F410920A0610920906A0
+:101420008091A6079091A7079093B8078093B7077C
+:101430008091A6079091A7078050944008F11092E0
+:10144000A7071092A60780919207909193070196A3
+:101450009093930780939207E0910503F091060320
+:10146000309729F0809192079091930709950E94F7
+:101470004A0E8091D905823019F481E0809391035E
+:10148000E091D205F091D305309729F08091A6071D
+:101490009091A70709958091D905882381F420911F
+:1014A000A6073091A7078091A9079091AA070196F6
+:1014B0002817390721F40E944B088823E1F3809113
+:1014C000A6079091A7070E94F50D813059F4E0918D
+:1014D000DA05F091DB05309729F08091A60790910D
+:1014E000A70709958091A6079091A7070E946C0E07
+:1014F000EC018091A6079091A7070E94290E009702
+:1015000039F0209709F40AC18C179D0758F406C1D9
+:10151000209741F48091A6079091A707C0E0D4E0FE
+:10152000C81BD90B8091A6079091A707FFE1DF2E7A
+:10153000D8228091D905823099F48091A6079091A4
+:10154000A707892B09F0ECC0809122078F5F809359
+:10155000220787FFE5C010922207E2C01092D50350
+:101560004D2D5527E1E0EE2EF12C012D112D042EED
+:1015700004C0EE0CFF1C001F111F0A94D2F78091CB
+:10158000D503882309F043C08091BA039091BB032F
+:10159000A091BC03B091BD038E219F21A023B12354
+:1015A0000097A105B10599F180918A0390918B0371
+:1015B000A0918C03B0918D038E219F21A023B12394
+:1015C0000097A105B10501F59092C7038092C6036B
+:1015D0008091880780688093880783E08093C503A3
+:1015E0002091940380E290E0821B91098417950773
+:1015F00034F480915E04882339F441E201C04D2D1A
+:1016000063E0C5010E94880981E08093D5032091A1
+:10161000A6073091A7078091A9079091AA072817DC
+:10162000390709F448C08091BA039091BB03A09197
+:10163000BC03B091BD0320918A0330918B0340918C
+:101640008C0350918D0382239323A423B5238E21F1
+:101650009F21A023B1230097A105B10521F08D2D75
+:101660000E94F30628C08091D4049091D504A091E3
+:10167000D604B091D7048E219F21A023B1230097D7
+:10168000A105B10541F080915C05882321F48D2DE1
+:101690000E94840710C02091A6073091A70780916F
+:1016A000D7039091D8032817390729F481E20E94C3
+:1016B000F3061092D1052091A6073091A7078091DB
+:1016C000A9079091AA072817390791F48091D905A5
+:1016D000823071F08091A6079091A70701969093B0
+:1016E000A7078093A60785E090E00E94342980CE6A
+:1016F0008091A6079091A7078C0F9D1F9093A70735
+:101700008093A60780E090E00E94E41ECE010E9434
+:10171000962980E090E00E94011F6ACEEC0102CF82
+:10172000DD2009F41BCF1CCF6F927F928F929F9286
+:10173000AF92BF92CF92DF92EF92FF920F931F93DF
+:10174000CF93DF93CDB7DEB728970FB6F894DEBFFF
+:101750000FBECDBF3E010894611C711CC3010E94E5
+:10176000E22C8090F2029090F302A090F402B090EC
+:10177000F502C090F602D090F702E090F802F090E7
+:10178000F90209811A812B813C814D815E816F8133
+:101790007885C3010E945D2A69817A818B819C8151
+:1017A00020E03AEC4AE95BE30E94E7389B01AC0198
+:1017B0006D817E818F819885620F731F841F951FB5
+:1017C00028EA3BE246E850E00E942D39DA01C901DF
+:1017D0002091090630910A06820F931F28960FB6B2
+:1017E000F894DEBF0FBECDBFDF91CF911F910F9157
+:1017F000FF90EF90DF90CF90BF90AF909F908F9031
+:101800007F906F900895809191070E94B7248091F6
+:10181000EA070E94B72421E030E040E050E0CA012E
+:10182000B9010090EA0704C0660F771F881F991F4F
+:101830000A94D2F70090910704C0220F331F441F6F
+:10184000551F0A94D2F7622B732B842B952B0E9481
+:10185000E32681E090E008951F93182F8091EA0716
+:101860000E94B7240FC061E070E080E090E000903B
+:10187000EA0704C0660F771F881F991F0A94D2F7E2
+:101880000E94E326812F0E947005882361F781E082
+:1018900090E01F910895809191070E94B724809154
+:1018A0005C05882379F461E070E080E090E00090CE
+:1018B000910704C0660F771F881F991F0A94D2F7FB
+:1018C0000E94E32681E090E00895CF93DF93FC012E
+:1018D000DB01EA0180915C05882331F410821C92BF
+:1018E000188280E090E00DC08091CF0380838091CA
+:1018F000D4038C938091D30488838091D1039091F9
+:10190000D203DF91CF91089580910903813019F0BE
+:101910008FEF9FEF089580919107992787FD90950C
+:10192000089580910903813019F08FEF9FEF08959A
+:101930008091EA07992787FD909508951F93142FAA
+:10194000403108F052C0603208F04FC0E62FFF2748
+:1019500021E030E040E050E00E2E04C0220F331FA3
+:10196000441F551F0A94D2F78823A9F48091D40408
+:101970009091D504A091D604B091D704822B932BDB
+:10198000A42BB52B8093D4049093D504A093D604B4
+:10199000B093D70414C08091BA039091BB03A09177
+:1019A000BC03B091BD03822B932BA42BB52B80934A
+:1019B000BA039093BB03A093BC03B093BD03669599
+:1019C0007727E0FD06C0FB01E654F84F8081807F59
+:1019D00007C0FB01E654F84F80811295107F8F708D
+:1019E000812B808381E090E002C08FEF9FEF1F91F9
+:1019F0000895982F803218F08FEF9FEF0895869505
+:101A0000E82FFF2790FD09C0E654F84F8081992701
+:101A100087FD90958F7090700895E654F84F8081FF
+:101A200082958F70992787FD90950895782F603261
+:101A300008F04FC0E62FFF2781E090E00E2E02C095
+:101A4000880F991F0A94E2F79C01442737FD4095BF
+:101A5000542F20953095409550957723A9F4809187
+:101A6000D4049091D504A091D604B091D7048223D8
+:101A70009323A423B5238093D4049093D504A093F7
+:101A8000D604B093D70414C08091BA039091BB03DD
+:101A9000A091BC03B091BD0382239323A423B5235B
+:101AA0008093BA039093BB03A093BC03B093BD0390
+:101AB00066957727E0FD06C0FB01E654F84F80816C
+:101AC000807F05C0FB01E654F84F80818F708083D2
+:101AD00008958FEF9FEF089581E094E090939F0722
+:101AE00080939E079093A1078093A0079093A307EC
+:101AF0008093A2079093A5078093A40708959C0163
+:101B000080919E0790919F079F778150944018F095
+:101B100080E090E023C08091A0079091A1079F777B
+:101B20008150944018F081E090E018C08091A207A5
+:101B30009091A3079F778150944018F082E090E045
+:101B40000DC08091A4079091A5079F778150944084
+:101B500018F48FEF9FEF089583E090E0FC01EE0F03
+:101B6000FF1FE256F84F31832083662319F481E08A
+:101B700090E0089530683183208381E090E00895FB
+:101B80009C0180919E0790919F079F7782179307F2
+:101B900019F4E0E0F0E020C08091A0079091A10747
+:101BA0009F778217930719F4E1E0F0E015C0809168
+:101BB000A2079091A3079F778217930719F4E2E099
+:101BC000F0E00AC08091A4079091A5079F77821743
+:101BD000930751F4E3E0F0E0EE0FFF1FE256F84FF9
+:101BE00081E094E0918380830895AC0120919E0769
+:101BF00030919F07C9019F7784179507F1F02091D5
+:101C0000A0073091A107C9019F7784179507A9F014
+:101C10002091A2073091A307C9019F7784179507E8
+:101C200061F02091A4073091A507C9019F7784171F
+:101C3000950719F080E090E008952150304818F0A1
+:101C400081E090E00895CA010E94C00D81E090E01B
+:101C50000895AC01EEE9F7E081E094E02081318164
+:101C60003F7764E02030360748F4241B350B12160A
+:101C7000130624F4281739070CF4C901329627E01B
+:101C8000E63AF20759F764E08130960711F480E0F4
+:101C900090E00895EAECF7E0119287E0EA3EF80759
+:101CA000D9F70895582F662319F481E090E008953C
+:101CB000482F20E030E077276150704003C0459FF7
+:101CC000402D1124822F99272F5F3F4F86179707AA
+:101CD000B4F3842F99270895AF92BF92CF92DF92E9
+:101CE000EF92FF921F93CF93DF935C016AECC62EB5
+:101CF00067E0D62E51E0E52E54E0F52EC0E0D0E0AE
+:101D00008C2F0E94F90C682F882301F1F6011081B5
+:101D1000615082E00E94520E212F332745E0220FAE
+:101D2000331F4A95E1F72C0F3D1FA216B30610F0A2
+:101D3000180FF2CFF6011083C9018A199B098E157D
+:101D40009F0520F42150344008F47C01219608942A
+:101D5000C11CD11CC032D10599F641E0E41644E023
+:101D6000F40610F0EE24FF24C701DF91CF911F91FC
+:101D7000FF90EF90DF90CF90BF90AF9008952091AB
+:101D8000AB073091AC07AC01421B530B5093B60725
+:101D90004093B5079093AC078093AB07089580916B
+:101DA000B5079091B6070895EDEAF7E08FEF8193BC
+:101DB00097E0E53BF907D1F7809389071092A807D0
+:101DC0001092AC071092AB070895982F96959575D1
+:101DD0008575980F892F8695869583739373890FE0
+:101DE000982F9F7082958F70890F992708951F9360
+:101DF000CF93DF93CDEAD7E010E089910E94E50E02
+:101E0000180F87E0C53BD807C1F7812F9927DF91CD
+:101E1000CF911F910895809189070E94E50E99271F
+:101E200008954091A807E42FE695E695E695FF27EB
+:101E3000E355F84F842F992780959095877090707F
+:101E400021E030E002C0220F331F8A95E2F7808143
+:101E5000822B80834F5F4093A807413410F010928B
+:101E6000A80708954091A807E42FE695E695E69522
+:101E7000FF27E355F84F242F3327209530952770FF
+:101E8000307081E090E002C0880F991F2A95E2F738
+:101E900080952081822380834F5F4093A80741343F
+:101EA00010F01092A8070895883018F080E090E0B4
+:101EB0000895E82FFF27EC56F84F80819927089561
+:101EC0004091B907E42FE695E695E695FF27A42F04
+:101ED000BB27E757F84FCD0180959095877090709C
+:101EE00021E030E002C0220F331F8A95E2F78081A3
+:101EF000822B8083AC56B84F1C924F5F4093B9073A
+:101F0000493010F01092B90708956091B907E62F93
+:101F1000E695E695E695FF27A62FBB27E757F84FEE
+:101F2000AD01409550954770507021E030E002C0FF
+:101F3000220F331F4A95E2F72095908129232083B1
+:101F4000AC56B84F8C936F5F6093B907693010F04F
+:101F50001092B9070895EAE7F0E083E08083ACE7E8
+:101F6000B0E080E48C938081806880831092EC07DD
+:101F70008C91807E8C939C918C91807E892B8C930C
+:101F8000089588EC90E00E947230089580917A0064
+:101F9000806480937A0080917A0084FFFCCF0E9455
+:101FA000C10F209178003327809179009927982FCD
+:101FB0008827822B932B0895FF920F931F93CF9323
+:101FC000DF93CDB7DEB722970FB6F894DEBF0FBE12
+:101FD000CDBF0E941C128C01009711F00E948F2629
+:101FE000159AFF248F2D806299279A8389834098C0
+:101FF0008BE18EBD0DB407FEFDCF89819A81892FBB
+:1020000099278EBD0DB407FEFDCF89819A818EBDC3
+:102010000DB407FEFDCF409A82E090E00E9472303E
+:1020200040988BE58EBD0DB407FEFDCF1EBC0DB4F0
+:1020300007FEFDCF8EB59927982F88279A8389832D
+:102040001EBC0DB407FEFDCF89819A812EB53327C2
+:10205000282B392B3A832983409A89819A8186FDDE
+:1020600005C0F3942FE1F21609F0BCCF011511055C
+:1020700019F0C8010E943D25FF20C9F40E94C60F37
+:102080009A83898389819A818F3A910530F0898179
+:102090009A818E5A90409A83898389819A818A5441
+:1020A000914098F48AE491E09A8389830EC02DE7E9
+:1020B000F29E9001112488E293E2821B930B6BE164
+:1020C00070E00E941A397A83698389819A81229605
+:1020D0000FB6F894DEBF0FBECDBFDF91CF911F9139
+:1020E0000F91FF900895CF92DF92EF92FF920F939E
+:1020F0001F93CF93DF93982FEA01122F823009F4B8
+:1021000081C0833030F4882371F0813009F0D2C06F
+:1021100010C0843009F481C0843008F477C0853061
+:1021200009F0C8C02DC080E880BB8F9A0E94AB0F19
+:102130006AC08091EB07813009F4C3C09093EB072C
+:10214000772760FF13C08F981092EC0780917C0076
+:10215000807E80937C0090917C0080917C00807ECA
+:10216000892B80937C0088EE93E09FC061FDA9C01D
+:1021700062FDA7C067707070672B09F4A2C097C09A
+:10218000822F8150823008F099C09091EC07892FFE
+:102190008150863018F40E94C60F22C0992319F48A
+:1021A0000E94DC0F1DC0973051F5F1E0CF2EF4E016
+:1021B000DF2EEE24FF2400E00E94C60F8C159D0543
+:1021C00008F46C01E816F90608F47C018DE790E04C
+:1021D0000E9472300F5F003479F7C7018C199D0996
+:1021E000123031F48883892F9927898381E008C0D0
+:1021F000113029F49695879596958795888380E088
+:102200008F5F09C08F9A1092EB0751C0613009F0BF
+:1022100058C08091EC07992756C0613009F051C031
+:102220002730D9F42093EC0780917C008F7780933E
+:102230007C0080917C00806480937C0080917C0095
+:10224000807E80937C0090917C0080917C009360E4
+:10225000807E982B90937C0026C0283020F081E06F
+:102260000E9462222EC02093EC07213049F4809115
+:102270007C008F7780937C0080917C00806403C019
+:1022800080917C00806C80937C0080917C00807EBB
+:1022900080937C0090917C0080917C00807E892BD3
+:1022A000812B80937C0088EC90E00E94723081E06A
+:1022B00090E009C060E08CE00E94272380E090E07D
+:1022C00002C08FEF90E0DF91CF911F910F91FF90AF
+:1022D000EF90DF90CF90089599279C01265A3E4BAE
+:1022E0000B97880F991F880F991F280F391FF89493
+:1022F000409888E18EBD0DB407FEFDCF832F99274E
+:102300008EBD0DB407FEFDCF2EBD0DB407FEFDCF73
+:10231000409A78940895F89440981EBC0DB407FE36
+:10232000FDCF8EB5409A789486FFF5CF08958091C1
+:10233000020899270895CF93DF93DC01409889EC38
+:102340008EBD0DB407FEFDCF80E88EBD0DB407FE37
+:10235000FDCF92E09150FD01E90FF11D80818EBD0E
+:102360000DB407FEFDCF9923A9F7409A40988BEC56
+:102370008EBD0DB407FEFDCF80E88EBD0DB407FE07
+:10238000FDCF92E09D012E5F3F4FE9019150F90191
+:10239000E90FF11D80818EBD0DB407FEFDCF99239D
+:1023A000A1F7409A8C9180930308FD01818180936D
+:1023B0000408888180930508838180930608DF9153
+:1023C000CF910895409889E18EBD0DB407FEFDCFF1
+:1023D00083E08EBD0DB407FEFDCF86E08EBD0DB44B
+:1023E00007FEFDCF409A40988AE18EBD0DB407FEEE
+:1023F000FDCF8EE08EBD0DB407FEFDCF8EE08EBD0D
+:102400000DB407FEFDCF409A81E08093F307089555
+:10241000409889E18EBD0DB407FEFDCF81E08EBDF1
+:102420000DB407FEFDCF84EC8EBD0DB407FEFDCFCD
+:10243000409A1092F30708958091F1079091F20766
+:102440000895282F33272F713070206E306A4098FE
+:1024500085E18EBD0DB407FEFDCF832F99278EBD7C
+:102460000DB407FEFDCF2EBD0DB407FEFDCF409A83
+:1024700008952091F4073091F50738603093F507FF
+:102480002093F407409881E18EBD0DB407FEFDCF87
+:10249000832F99278EBD0DB407FEFDCF2EBD0DB441
+:1024A00007FEFDCF409A08952091F4073091F5077B
+:1024B000377F3093F5072093F407409881E18EBD74
+:1024C0000DB407FEFDCF832F99278EBD0DB407FEF7
+:1024D000FDCF2EBD0DB407FEFDCF409A089581E0DB
+:1024E000809301082091F4073091F5072061309323
+:1024F000F5072093F407409881E18EBD0DB407FEE7
+:10250000FDCF832F99278EBD0DB407FEFDCF2EBDC5
+:102510000DB407FEFDCF409A089510920108209156
+:10252000F4073091F5072F7E3093F5072093F407D9
+:10253000409881E18EBD0DB407FEFDCF832F992712
+:102540008EBD0DB407FEFDCF2EBD0DB407FEFDCF31
+:10255000409A089581E08093FE07409883E08EBD05
+:102560000DB407FEFDCF409A409888E08EBD0DB4B3
+:1025700007FEFDCF409A10920708089581E08093EE
+:10258000FE07409883E08EBD0DB407FEFDCF409A54
+:10259000409888E08EBD0DB407FEFDCF409A1092A2
+:1025A000070808951092FE07409886E08EBD0DB48E
+:1025B00007FEFDCF409A10920708089589B1992728
+:1025C00076E0969587957A95E1F7817090700895F9
+:1025D0008CB1992787FD90958827990F881F992797
+:1025E000089589B19927F6E096958795FA95E1F7D0
+:1025F000817090700895CF93DF93CDB7DEB72497A5
+:102600000FB6F894DEBF0FBECDBF679903C080E060
+:1026100090E00FC210920208679B1FC031991DC045
+:1026200040988FE78EBD0DB407FEFDCF1EBC0DB4E4
+:1026300007FEFDCF8EB5409A409888E08EBD0DB460
+:1026400007FEFDCF409A409888E08EBD0DB407FE8E
+:10265000FDCF409A8FEF9FEFECC140988FE78EBD82
+:102660000DB407FEFDCF1EBC0DB407FEFDCF4EB569
+:10267000409A4F77E9F440988FE78EBD0DB407FE7E
+:10268000FDCF1EBC0DB407FEFDCF8EB5409A40981D
+:1026900088E08EBD0DB407FEFDCF409A409888E0DB
+:1026A0008EBD0DB407FEFDCF409A8EEF9FEFC1C1E6
+:1026B00045308CF0E091F607F091F707242F33278F
+:1026C00027FD30952B5030408481992787FD9095C8
+:1026D00082179307C4F540988FE78EBD0DB407FEAF
+:1026E000FDCF60E070E0242F332727FD309506C032
+:1026F0001EBC0DB407FEFDCF6F5F7F4F862F99275D
+:102700008217930714F43199F3CF409A40988FE7DA
+:102710008EBD0DB407FEFDCF1EBC0DB407FEFDCF70
+:102720008EB5409A409888E08EBD0DB407FEFDCF6F
+:10273000409A409888E08EBD0DB407FEFDCF409AC8
+:102740008DEF9FEF76C1E091F607F091F7074C50BF
+:10275000438340988FE78EBD0DB407FEFDCFFE0189
+:1027600031969E012D5F3F4F1EBC0DB407FEFDCF7D
+:102770008EB58193E217F307B9F7409AE091F60717
+:10278000F091F70789819A81A5E096958795AA959A
+:10279000E1F78170878340988FE78EBD0DB407FE07
+:1027A000FDCF1EBC0DB407FEFDCFE091F607F09102
+:1027B000F7078EB58083409A40988FE78EBD0DB4A1
+:1027C00007FEFDCF80E007C01EBC0DB407FEFDCFA5
+:1027D0008F5F843011F03199F7CF409A40988FE79E
+:1027E0008EBD0DB407FEFDCF20E030E01EBC0DB461
+:1027F00007FEFDCFE091F607F091F707E20FF31F18
+:102800008EB581832F5F3F4F2230310579F7409A93
+:1028100089819A8183FF56C040988FE78EBD0DB4A1
+:1028200007FEFDCFEDEEF7E01EBC0DB407FEFDCFB9
+:102830008EB5819387E0E13FF807B1F7409A409861
+:1028400089E98EBD0DB407FEFDCF80E88EBD0DB4C5
+:1028500007FEFDCF92E09150E92FFF27E351F84F9B
+:1028600080818EBD0DB407FEFDCF9923A1F7409A5C
+:1028700040988BE98EBD0DB407FEFDCF80E88EBD7C
+:102880000DB407FEFDCF92E09150E92FFF27E151F3
+:10289000F84F80818EBD0DB407FEFDCF9923A1F7BF
+:1028A000409A40988CE08EBD0DB407FEFDCF409A53
+:1028B00081E080930208E091F607F091F7078381A9
+:1028C0008450838340988FE78EBD0DB407FEFDCF03
+:1028D00040E050E011C01EBC0DB407FEFDCFE091FA
+:1028E000F607F091F7070580F681E02DE60FF11D60
+:1028F0008EB580834F5F5F4F642FE091F607F091B4
+:10290000F707242F33278381992787FD9095281770
+:1029100039070CF3409A40988FE78EBD0DB407FC41
+:102920000AC0FCCF0DB407FEFDCF5EB5409A4098BB
+:102930008FE78EBD02C01EBCF5CF0DB407FEFDCFE4
+:10294000FE0133969E012B5F3F4F1EBC0DB407FE68
+:10295000FDCF8EB58193E217F307B9F7409AE09166
+:10296000F607F091F7078B81808740E020E030E0A8
+:102970000AC0E091F607F091F70785819681A80FCC
+:10298000B91F8C91480F822FE091F607F091F7075D
+:102990002F5F3F4FA82FBB278381992787FD9095F5
+:1029A000A817B90734F34517E9F040988FE78EBDB3
+:1029B0000DB407FEFDCF1EBC0DB407FEFDCF8EB5D6
+:1029C000409A409888E08EBD0DB407FEFDCF409A36
+:1029D000409888E08EBD0DB407FEFDCF409A8CEF85
+:1029E0009FEF27C08C8187FF08C0809107088F5F09
+:1029F0008093070881E090E01CC040988FE78EBD6F
+:102A00000DB407FEFDCF1EBC0DB407FEFDCF8EB585
+:102A1000409A409888E08EBD0DB407FEFDCF409AE5
+:102A2000409888E08EBD0DB407FEFDCF409A8BEF35
+:102A30009FEF24960FB6F894DEBF0FBECDBFDF9197
+:102A4000CF91089580910708882319F480E090E0E1
+:102A500008958091070810920708992787FD90959F
+:102A60000895409888E08EBD0DB407FEFDCF409AD2
+:102A7000409888E08EBD0DB407FEFDCF409A0895C2
+:102A8000992787FD9095382F22272068409883E169
+:102A90008EBD0DB407FEFDCF832F99278EBD0DB4DB
+:102AA00007FEFDCF2EBD0DB407FEFDCF409A089561
+:102AB000409886E08EBD0DB407FEFDCF409A409849
+:102AC00082E18EBD0DB407FEFDCF85E08EBD0DB455
+:102AD00007FEFDCF88E08EBD0DB407FEFDCF409A06
+:102AE00040988EE28EBD0DB407FEFDCF88E18EBD0D
+:102AF0000DB407FEFDCF1EBC0DB407FEFDCF409AFE
+:102B00000E9431150895409886E08EBD0DB407FEF1
+:102B1000FDCF409A409882E18EBD0DB407FEFDCFF7
+:102B200085E08EBD0DB407FEFDCF1EBC0DB407FEC3
+:102B3000FDCF409A40988EE28EBD0DB407FEFDCFCA
+:102B40001EBC0DB407FEFDCF1EBC0DB407FEFDCFAD
+:102B5000409A0E9431150895409884E08EBD0DB4CE
+:102B600007FEFDCF409A0895409886E08EBD0DB4D3
+:102B700007FEFDCF409A0895EF92FF920F931F93A7
+:102B8000CF93DF93CDB7DEB722970FB6F894DEBFB1
+:102B90000FBECDBFDC015091F307552339F04098AB
+:102BA0008DE08EBD0DB407FEFDCF409AFD01428140
+:102BB000642F772767FD709510E020E030E008C0B3
+:102BC000FD0183819481E80EF91EF7018081180FC1
+:102BD000822F2F5F3F4FE82EFF24E616F70684F37F
+:102BE000942F945F51119C5F6799FECF4E99FCCF53
+:102BF000F894409889E08EBD0DB407FEFDCF409A51
+:102C0000409889E08EBD0DB407FEFDCF409A4098F4
+:102C10008EE38EBD0DB407FC05C0FCCF0DB407FCE0
+:102C20002AC1FCCF9EBDFACF81E698E89A838983BA
+:102C3000552329F089819A8188609A8389834098F5
+:102C40008EE38EBD0DB407FEFDCFFE0131969E01D1
+:102C50002D5F3F4F80818EBD0DB407FEFDCF3196B5
+:102C6000E217F307B9F7409A40988EE38EBD0DB492
+:102C700007FC05C0FCCF0DB407FC08C1FCCF809158
+:102C8000F8078EBDF8CF0DB407FEFDCF20E030E091
+:102C9000F901E650F84F80818EBD0DB407FEFDCFDF
+:102CA0002F5F3F4F2230310599F7409A40988EE3CD
+:102CB0008EBD0DB407FEFDCF20E030E0FD01E20F38
+:102CC000F31F80818EBD0DB407FEFDCF2F5F3F4FF8
+:102CD0002230310599F7409A40988EE38EBD0DB4AD
+:102CE00007FEFDCF20E030E0F901E450F84F80818D
+:102CF0008EBD0DB407FEFDCF2F5F3F4F2230310553
+:102D000099F7409A552399F040988EE38EBD0DB403
+:102D100007FEFDCFE3E0F8E080818EBD0DB407FE35
+:102D2000FDCF319688E0E730F807B1F7409A409838
+:102D30008EE38EBD0DB407FEFDCF20E030E00DC068
+:102D4000FD0183819481480F591FFA0180818EBD56
+:102D50000DB407FEFDCF2F5F3F4F422F552746177B
+:102D6000570774F3409A40988EE38EBD0DB407FC6C
+:102D700005C0FCCF0DB407FC8EC0FCCF1EBDFACF42
+:102D80008091FE07882339F4409883E08EBD0DB40E
+:102D900007FEFDCF409A40981EBC0DB407FEFDCF44
+:102DA0008EB5409A81FFF7CF00E0409885E08EBD58
+:102DB0000DB407FEFDCF409A40981EBC0DB407FE2F
+:102DC000FDCF1EB5409A0F5F053651F4789480917F
+:102DD000F1079091F2070E943D2580E090E062C0EB
+:102DE00084E690E00E94AD1F13FD08C0DECF40983E
+:102DF00084E08EBD0DB407FEFDCF409A78944E9BC3
+:102E0000FECF4E99FECF80910108882391F084EA8D
+:102E100092E00E94AD1F319B0EC040988FE78EBD9F
+:102E20000DB407FEFDCF1EBC0DB407FEFDCF8EB561
+:102E3000409A91E00FC0409888E08EBD0DB407FE27
+:102E4000FDCF409A409888E08EBD0DB407FEFDCFBF
+:102E5000409A90E0F894409886E08EBD0DB407FE4D
+:102E6000FDCF409A78948091F8078F5F8093F807A0
+:102E7000892F992717C0409A81E498E89A8389831B
+:102E800080910108882309F0CFCED2CE409A409895
+:102E90008EE38EBDF8CE409AFD018581882309F02E
+:102EA0006FCFA5CF22960FB6F894DEBF0FBECDBF71
+:102EB000DF91CF911F910F91FF90EF900895BF92F6
+:102EC000CF92DF92EF92FF920F931F93CF93DF93F6
+:102ED000CDB7DEB722970FB6F894DEBF0FBECDBFD9
+:102EE0008C016B017A010E943831409888E08EBDD8
+:102EF0000DB407FEFDCF409A409888E08EBD0DB41A
+:102F000007FEFDCF409A6799FECF4E99FCCFF8940B
+:102F1000409889E08EBD0DB407FEFDCF409A4098E1
+:102F200089E08EBD0DB407FEFDCF409AF8016281A5
+:102F3000462F552747FD5095BB2420E030E007C0C1
+:102F4000F80183819481A80FB91F8C91B80E822F4C
+:102F50002F5F3F4FA82FBB27A417B5078CF3962FE1
+:102F6000945F40988EE38EBD0DB407FC05C0FCCF86
+:102F70000DB407FC10C1FCCF9EBDFACF81E698E8E6
+:102F80009A83898340988EE38EBD0DB407FEFDCFF2
+:102F9000FE0131969E012D5F3F4F80818EBD0DB4A5
+:102FA00007FEFDCF3196E217F307B9F7409A409834
+:102FB0008EE38EBD0DB407FC05C0FCCF0DB407FC3D
+:102FC000F3C0FCCF8091F8078EBDF8CF0DB407FE9B
+:102FD000FDCF20E030E0F901E650F84F80818EBD52
+:102FE0000DB407FEFDCF2F5F3F4F2230310599F71B
+:102FF000409A40988EE38EBD0DB407FEFDCF20E0D1
+:1030000030E0F801E20FF31F80818EBD0DB407FEA2
+:10301000FDCF2F5F3F4F2230310599F7409A4098FE
+:103020008EE38EBD0DB407FEFDCF20E030E0F90148
+:10303000E450F84F80818EBD0DB407FEFDCF2F5FA9
+:103040003F4F2230310599F7409AB701C6010E94DF
+:10305000BD31F80185818823C1F18091FE07882365
+:1030600039F4409883E08EBD0DB407FEFDCF409A41
+:1030700040981EBC0DB407FEFDCF8EB5409A81FF6F
+:10308000F7CFEE24409885E08EBD0DB407FEFDCF4E
+:10309000409A40981EBC0DB407FEFDCFFEB4409A86
+:1030A000E394F5E6EF1651F478948091F10790914E
+:1030B000F2070E943D2580E090E07DC084E690E02C
+:1030C0000E94AD1FF3FC08C0DDCF409884E08EBDA8
+:1030D0000DB407FEFDCF409A40988EE38EBD0DB42F
+:1030E00007FEFDCFF8018281482F552747FD5095F7
+:1030F00020E030E00CC0F80183819481A80FB91F53
+:103100008C918EBD0DB407FEFDCF2F5F3F4FA22FD8
+:10311000BB27A417B5077CF3409A40988EE38EBD79
+:103120000DB407FC05C0FCCF0DB407FC42C0FCCFBA
+:10313000BEBCFACF4E9BFECFF8944E99FECF40987E
+:1031400088E08EBD0DB407FEFDCF409A409888E020
+:103150008EBD0DB407FEFDCF409A409889E08EBD2C
+:103160000DB407FEFDCF409A409889E08EBD0DB4A6
+:1031700007FEFDCF409A409886E08EBD0DB407FE55
+:10318000FDCF409A78948091F8078F5F8093F8077D
+:1031900081E090E010C0409AF8018681882309F010
+:1031A000EDCE81E498E8ECCE409A40988EE38EBD57
+:1031B0000DCF409ABFCF22960FB6F894DEBF0FBE58
+:1031C000CDBFDF91CF911F910F91FF90EF90DF90D6
+:1031D000CF90BF900895CF93DF93CDB7DEB72297FE
+:1031E0000FB6F894DEBF0FBECDBF9A83898390934C
+:1031F000FD078093FC0784EF91E00E9472304098B5
+:103200008AEE8EBD0DB407FEFDCF80E88EBD0DB4F5
+:1032100007FEFDCFFE0131969E012D5F3F4F80815D
+:103220008EBD0DB407FEFDCF3196E217F307B9F757
+:10323000409A84EF91E00E94723022960FB6F89483
+:10324000DEBF0FBECDBFDF91CF9108956F927F9209
+:103250008F929F92AF92BF92CF92DF92EF92FF92A6
+:103260000F931F93CF93DF93CDB7DEB722970FB69F
+:10327000F894DEBF0FBECDBF8C0184E690E00E94C3
+:1032800072307801C12CB1E0DB2E3E010894611C44
+:10329000711CA3E08A2E912C8C0E9D1EF70180815B
+:1032A000218133279927982F8827282B392B3A8378
+:1032B000298384E690E00E94723040988C2D8068CB
+:1032C0008EBD0DB407FEFDCFC60195958795807C18
+:1032D0008EBD0DB407FEFDCF83015301F501808142
+:1032E0008EBD0DB407FEFDCF0894A11CB11CA8141F
+:1032F000B904A1F7409A0894E11CF11C82E090E027
+:10330000C80ED91E90E1C91691E0D90639F684E6B7
+:1033100090E00E94723020E131E040E451E01A82F6
+:1033200019824098842F80688EBD0DB407FEFDCFB2
+:10333000CA0195958795807C8EBD0DB407FEFDCFA3
+:10334000F80180818EBD0DB407FEFDCF3196EA15E0
+:10335000FB05B9F7409A4098822F80688EBD0DB466
+:1033600007FEFDCFC90195958795807C8EBD0DB474
+:1033700007FEFDCFF80180818EBD0DB407FEFDCFA5
+:103380003196EA15FB05B9F7409A2E5F3F4F4E5F25
+:103390005F4FE1E02E313E0711F681E090E09A8325
+:1033A000898340988EEC8EBD0DB407FEFDCF80E87A
+:1033B0008EBD0DB407FEFDCFF80180818EBD0DB42A
+:1033C00007FEFDCF3196EA15FB05B9F7409A409804
+:1033D0008EE98EBD0DB407FEFDCF80E88EBD0DB425
+:1033E00007FEFDCFF80180818EBD0DB407FEFDCF35
+:1033F0000F5F1F4F0A151B05A9F7409A22960FB6BB
+:10340000F894DEBF0FBECDBFDF91CF911F910F911A
+:10341000FF90EF90DF90CF90BF90AF909F908F90F4
+:103420007F906F900895CF93DF93EC01409888E0F0
+:103430008EBD0DB407FEFDCF409A409888E08EBD4A
+:103440000DB407FEFDCF409A862F0E946C11D093D9
+:10345000F707C093F607DF91CF9108950E946C1192
+:103460000895DF92EF92FF920F931F93CF93DF9314
+:10347000CDB7DEB722970FB6F894DEBF0FBECDBF33
+:103480008C01D62E5A8349837901159A88EE93E0F0
+:103490000E94AD1F169881E090E00E94AD1F169A21
+:1034A00084E690E00E94AD1FF894409881E08EBDC4
+:1034B0000DB407FEFDCF409A82EE92E09093F5079F
+:1034C0008093F407409881E18EBD0DB407FEFDCFD7
+:1034D00082E08EBD0DB407FEFDCF82EE8EBD0DB431
+:1034E00007FEFDCF409A409882E18EBD0DB407FEE5
+:1034F000FDCF85E08EBD0DB407FEFDCF1EBC0DB423
+:1035000007FEFDCF409A40988CE18EBD0DB407FEBA
+:10351000FDCF1EBC0DB407FEFDCF8FE78EBD0DB4F1
+:1035200007FEFDCF409A409889E18EBD0DB407FE9D
+:10353000FDCF81E08EBD0DB407FEFDCF84EC8EBDC6
+:103540000DB407FEFDCF409A409887E18EBD0DB4C3
+:1035500007FEFDCF8AE18EBD0DB407FEFDCF86E5E7
+:103560008EBD0DB407FEFDCF409A84EF91E00E941E
+:103570007230409888EE8EBD0DB407FEFDCF80E816
+:103580008EBD0DB407FEFDCFFE0131969E012D5F6D
+:103590003F4F80818EBD0DB407FEFDCF3196E217FF
+:1035A000F307B9F7409A84EF91E00E947230789463
+:1035B0008D2D0E946C1178941093F7070093F607F5
+:1035C00089819A819093FB078093FA07F092FD0717
+:1035D000E092FC071092F8071092FE070E948B11F0
+:1035E000109201081092F3071092020822960FB66B
+:1035F000F894DEBF0FBECDBFDF91CF911F910F9129
+:10360000FF90EF90DF9008958FEF9FEF0895813046
+:1036100051F48091C800992787FD90958827990FCC
+:10362000881F99270895882319F080E090E0089575
+:103630008091C000992787FD90958827990F881F52
+:10364000992708958091C80087FFFCCF8091C8001A
+:103650008F778093C8008091CE009927089585B711
+:10366000806185BF86E084B987E085B981E087B94C
+:1036700088B98CE38DB98BE08AB98EE38EB988E77F
+:1036800081B980E482B908950E942F1B80E58CBD2A
+:1036900081E08DBD08958F3F09F47FC0482F5527E5
+:1036A0009A012770307022303105A9F1233031059D
+:1036B00044F42115310589F02130310509F06DC040
+:1036C0001CC02430310509F446C0243031059CF17A
+:1036D0002530310509F061C04EC022B1B3E05695E6
+:1036E0004795BA95E1F781E090E002C0880F991FF5
+:1036F0004A95E2F7282B22B94DC085B1A3E0569533
+:103700004795AA95E1F702C0220F331F4A95E2F7C9
+:10371000822B85B93FC028B1F3E056954795FA95BD
+:10372000E1F781E090E002C0880F991F4A95E2F727
+:10373000282B28B92FC02BB1E3E056954795EA9581
+:10374000E1F781E090E002C0880F991F4A95E2F707
+:10375000282B2BB91FC02EB173E0569547957A954B
+:10376000E1F781E090E002C0880F991F4A95E2F7E7
+:10377000282B2EB90FC021B363E0569547956A9563
+:10378000E1F781E090E002C0880F991F4A95E2F7C7
+:10379000282B21BB81E090E008958FEF9FEF0895E3
+:1037A0008F3F09F486C0482F55279A012770307043
+:1037B00022303105C1F12330310544F421153105A2
+:1037C00089F02130310509F074C01DC02430310565
+:1037D00009F44BC024303105BCF12530310509F026
+:1037E00068C054C022B1E3E056954795EA95E1F7E9
+:1037F00081E090E002C0880F991F4A95E2F780951A
+:10380000822382B953C095B173E0569547957A9556
+:10381000E1F702C0220F331F4A95E2F7822F80950D
+:10382000892385B943C028B163E0569547956A95C9
+:10383000E1F781E090E002C0880F991F4A95E2F716
+:103840008095822388B932C02BB133E056954795D5
+:103850003A95E1F781E090E002C0880F991F4A9500
+:10386000E2F7809582238BB921C02EB193E0569563
+:1038700047959A95E1F781E090E002C0880F991F83
+:103880004A95E2F7809582238EB910C021B383E078
+:10389000569547958A95E1F781E090E002C0880F40
+:1038A000991F4A95E2F78095822381BB81E090E0E1
+:1038B00008958FEF9FEF08958F3FA9F1282F3327A9
+:1038C000C9018770907082309105A9F0833091050D
+:1038D0002CF4009761F0019731F50BC0843091050D
+:1038E00071F0843091054CF00597E9F40AC080B17D
+:1038F00009C083B107C086B105C089B103C08CB1CE
+:1039000001C08FB19927F3E036952795FA95E1F735
+:1039100002C0959587952A95E2F7992787FD90959E
+:103920008170907008958FEF9FEF08958F3F09F495
+:1039300003C1282F3327A901477050704230510529
+:1039400009F45CC04330510544F44115510591F030
+:103950004130510509F0F0C034C04430510509F43C
+:103960009BC0443051050CF470C04530510509F03E
+:10397000E3C0B9C080B1A90173E0569547957A9527
+:10398000E1F79927042E02C0959587950A94E2F7EE
+:1039900080FD0BC022B181E090E002C0880F991F2A
+:1039A0004A95E2F7282B22B9C4C022B181E090E009
+:1039B00002C0880F991F4A95E2F78095822382B949
+:1039C000B8C083B163E0369527956A95E1F79927EA
+:1039D000022E02C0959587950A94E2F702C0440F23
+:1039E000551F2A95E2F780FD03C085B1842B04C0E2
+:1039F00095B1842F8095892385B99BC086B1A90193
+:103A000023E0569547952A95E1F79927042E02C0A1
+:103A1000959587950A94E2F780FD0BC028B181E067
+:103A200090E002C0880F991F4A95E2F7282B28B929
+:103A300080C028B181E090E002C0880F991F4A95AC
+:103A4000E2F78095822388B974C089B1A90193E017
+:103A5000569547959A95E1F79927042E02C09595BA
+:103A600087950A94E2F780FD0BC02BB181E090E0CE
+:103A700002C0880F991F4A95E2F7282B2BB959C02D
+:103A80002BB181E090E002C0880F991F4A95E2F7C0
+:103A9000809582238BB94DC08CB1A901B3E05695B6
+:103AA0004795BA95E1F79927042E02C09595879519
+:103AB0000A94E2F780FD0BC02EB181E090E002C0D5
+:103AC000880F991F4A95E2F7282B2EB932C02EB1E4
+:103AD00081E090E002C0880F991F4A95E2F7809537
+:103AE00082238EB926C08FB1A901A3E056954795D0
+:103AF000AA95E1F79927042E02C0959587950A9417
+:103B0000E2F780FD0BC021B381E090E002C0880F96
+:103B1000991F4A95E2F7282B21BB0BC021B381E006
+:103B200090E002C0880F991F4A95E2F780958223A2
+:103B300081BB81E090E008958FEF9FEF08958F3F64
+:103B400009F412C1482F5527662309F090C0CA0115
+:103B5000877090708230910509F43EC083309105E2
+:103B60003CF4009789F08130910509F0FDC021C037
+:103B70008430910509F454C0843091050CF43EC0A2
+:103B8000059709F0F1C05EC031B1B3E05695479595
+:103B9000BA95E1F781E090E002C0880F991F4A953D
+:103BA000E2F7282F2095232321B922B1822B82B955
+:103BB000D8C024B1A3E056954795AA95E1F702C075
+:103BC000880F991F4A95E2F7982F8095822384B930
+:103BD00085B1982B95B9C5C037B1F3E05695479597
+:103BE000FA95E1F781E090E002C0880F991F4A95AD
+:103BF000E2F7282F2095232327B935C03AB1E3E017
+:103C000056954795EA95E1F781E090E002C0880F6C
+:103C1000991F4A95E2F7282F209523232AB923C01C
+:103C20003DB173E0569547957A95E1F781E090E0D4
+:103C300002C0880F991F4A95E2F7282F2095232369
+:103C40002DB911C030B363E0569547956A95E1F7F9
+:103C500081E090E002C0880F991F4A95E2F7282F73
+:103C60002095232320BB25B1822B85B97AC09A01E8
+:103C70002770307022303105A9F12330310544F42A
+:103C80002115310589F02130310509F06DC01CC0C6
+:103C90002430310509F446C0243031059CF125302B
+:103CA000310509F061C04EC021B133E0569547950A
+:103CB0003A95E1F781E090E002C0880F991F4A959C
+:103CC000E2F7282B21B94DC084B193E05695479572
+:103CD0009A95E1F702C0220F331F4A95E2F7822B33
+:103CE00084B93FC027B1B3E056954795BA95E1F73F
+:103CF00081E090E002C0880F991F4A95E2F7282BD7
+:103D000027B92FC02AB1A3E056954795AA95E1F7A8
+:103D100081E090E002C0880F991F4A95E2F7282BB6
+:103D20002AB91FC02DB1F3E056954795FA95E1F7F2
+:103D300081E090E002C0880F991F4A95E2F7282B96
+:103D40002DB90FC020B3E3E056954795EA95E1F70A
+:103D500081E090E002C0880F991F4A95E2F7282B76
+:103D600020BB81E090E008958FEF9FEF08958823B6
+:103D700019F08FEF9FEF089580B1992787FD9095F7
+:103D8000809590958827990F881F99270895009707
+:103D900011F484E109C08130910511F48CE104C073
+:103DA0008230910531F484E20E94961C81E090E01B
+:103DB0000895039719F08FEF9FEF08958CE20E940A
+:103DC000961C81E090E00895009711F484E109C009
+:103DD0008130910511F48CE104C08230910531F4F9
+:103DE00084E20E944B1B81E090E00895039719F054
+:103DF0008FEF9FEF08958CE20E944B1B81E090E0D3
+:103E00000895009711F484E109C08130910511F4FF
+:103E10008CE104C08230910531F484E20E94D01B11
+:103E200081E090E00895039719F08FEF9FEF0895D8
+:103E30008CE20E94D01B81E090E00895882319F065
+:103E400085B78F7E02C085B7806185BF81E090E035
+:103E50000895982F8091C00085FFFCCF8091C0000D
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.lss
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,16142 @@
+
+main.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 000000f2 00800200 000072fe 00007392 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 000072fe 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 000005b8 008002f2 008002f2 00007484 2**0
+ ALLOC
+ 3 .stab 0000f270 00000000 00000000 00007484 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 000064ea 00000000 00000000 000166f4 2**0
+ CONTENTS, READONLY, DEBUGGING
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__init>
+ 4: 0c 94 89 33 jmp 0x6712 ; 0x6712 <__vector_1>
+ 8: 0c 94 5b 33 jmp 0x66b6 ; 0x66b6 <__vector_2>
+ c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 10: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 14: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 18: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 1c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 20: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 24: 0c 94 b7 33 jmp 0x676e ; 0x676e <__vector_9>
+ 28: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 2c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 30: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 34: 0c 94 3c 31 jmp 0x6278 ; 0x6278 <__vector_13>
+ 38: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 3c: 0c 94 3c 31 jmp 0x6278 ; 0x6278 <__vector_13>
+ 40: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 44: 0c 94 6f 31 jmp 0x62de ; 0x62de <__vector_17>
+ 48: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 4c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 50: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 54: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 58: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 5c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 60: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 64: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 68: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 6c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 70: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 74: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 78: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 7c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 80: 0c 94 79 31 jmp 0x62f2 ; 0x62f2 <__vector_32>
+ 84: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 88: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 8c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 90: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 94: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 98: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 9c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ a0: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ a4: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ a8: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ ac: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ b0: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ b4: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ b8: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ bc: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ c0: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ c4: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ c8: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+
+000000cc <__ctors_end>:
+ cc: bb 22 and r11, r27
+ ce: c1 22 and r12, r17
+ d0: c4 22 and r12, r20
+ d2: c7 22 and r12, r23
+ d4: ca 22 and r12, r26
+ d6: cd 22 and r12, r29
+ d8: d3 22 and r13, r19
+ da: d0 22 and r13, r16
+ dc: d6 22 and r13, r22
+ de: d9 22 and r13, r25
+ e0: dc 22 and r13, r28
+ e2: e2 22 and r14, r18
+ e4: e5 22 and r14, r21
+ e6: e8 22 and r14, r24
+ e8: eb 22 and r14, r27
+ ea: df 22 and r13, r31
+ ec: b8 22 and r11, r24
+ ee: be 22 and r11, r30
+
+000000f0 <__c.2625>:
+ f0: 46 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 6d Failed to
load m
+ 100: 79 20 41 44 43 20 64 72 69 76 65 72 0d 0a 00 y ADC
driver...
+
+0000010f <__c.2530>:
+ 10f: 46 61 69 6c 65 64 20 74 6f 20 6f 70 65 6e 20 73 Failed to
open s
+ 11f: 65 6e 73 6f 72 20 64 72 69 76 65 72 0d 0a 00 ensor
driver...
+
+0000012e <__c.2963>:
+ 12e: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 13e: 72 65 61 74 69 6e 67 20 74 78 20 73 69 67 6e 61 reating tx
signa
+ 14e: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+00000159 <__c.2961>:
+ 159: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 169: 72 65 61 74 69 6e 67 20 72 78 20 73 69 67 6e 61 reating rx
signa
+ 179: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+00000184 <__c.2376>:
+ 184: 55 4e 4b 4f 57 4e 00 UNKOWN.
+
+0000018b <__c.2373>:
+ 18b: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 19b: 20 53 65 6d 61 70 68 6f 72 65 00 Semaphore.
+
+000001a6 <__c.2370>:
+ 1a6: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 1b6: 20 53 69 67 6e 61 6c 00 Signal.
+
+000001be <__c.2367>:
+ 1be: 4b 65 72 6e 65 6c 20 66 75 6e 63 74 69 6f 6e 20 Kernel
function
+ 1ce: 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 00 not
implemented.
+
+000001de <__c.2364>:
+ 1de: 44 65 76 69 63 65 20 44 72 69 76 65 72 20 45 72 Device
Driver Er
+ 1ee: 72 6f 72 00 ror.
+
+000001f2 <__c.2361>:
+ 1f2: 57 61 74 63 68 64 6f 67 20 52 65 73 74 61 72 74 Watchdog
Restart
+ ...
+
+00000203 <__c.2358>:
+ 203: 54 69 6d 65 72 20 4f 76 65 72 66 6c 6f 77 00 Timer
Overflow.
+
+00000212 <__c.2355>:
+ 212: 55 6e 68 61 6e 64 6c 65 64 20 49 6e 74 65 72 72 Unhandled
Interr
+ 222: 75 70 74 20 56 65 63 74 6f 72 00 upt Vector.
+
+0000022d <__c.2352>:
+ 22d: 4c 6f 77 20 56 6f 6c 74 61 67 65 00 Low Voltage.
+
+00000239 <__c.2349>:
+ 239: 45 78 74 72 61 20 54 61 73 6b 20 73 74 61 72 74 Extra Task
start
+ 249: 65 64 2c 20 69 73 20 6e 72 6b 5f 63 66 67 2e 68 ed, is
nrk_cfg.h
+ 259: 20 6f 6b 3f 00 ok?.
+
+0000025e <__c.2346>:
+ 25e: 49 64 6c 65 20 6f 72 20 4b 65 72 6e 65 6c 20 53 Idle or
Kernel S
+ 26e: 74 61 63 6b 20 4f 76 65 72 66 6c 6f 77 00 tack
Overflow.
+
+0000027c <__c.2343>:
+ 27c: 55 6e 65 78 70 65 63 74 65 64 20 52 65 73 74 61 Unexpected
Resta
+ 28c: 72 74 00 rt.
+
+0000028f <__c.2340>:
+ 28f: 44 75 70 6c 69 63 61 74 65 64 20 54 61 73 6b 20 Duplicated
Task
+ 29f: 49 44 00 ID.
+
+000002a2 <__c.2337>:
+ 2a2: 53 63 68 65 64 75 6c 65 72 20 4d 69 73 73 65 64 Scheduler
Missed
+ 2b2: 20 57 61 6b 65 75 70 00 Wakeup.
+
+000002ba <__c.2334>:
+ 2ba: 54 61 73 6b 20 52 65 73 65 72 76 65 20 56 69 6f Task Reserve
Vio
+ 2ca: 6c 61 74 65 64 00 lated.
+
+000002d0 <__c.2331>:
+ 2d0: 52 65 73 65 72 76 65 20 45 72 72 6f 72 20 69 6e Reserve
Error in
+ 2e0: 20 53 63 68 65 64 75 6c 65 72 00 Scheduler.
+
+000002eb <__c.2328>:
+ 2eb: 49 6e 76 61 6c 69 64 20 53 74 61 63 6b 20 50 6f Invalid
Stack Po
+ 2fb: 69 6e 74 65 72 00 inter.
+
+00000301 <__c.2325>:
+ 301: 54 61 73 6b 20 53 74 61 63 6b 20 4f 76 65 72 66 Task Stack
Overf
+ 311: 6c 6f 77 00 low.
+
+00000315 <__c.2321>:
+ 315: 53 74 61 63 6b 20 77 61 73 20 6e 6f 74 20 64 65 Stack was
not de
+ 325: 66 69 6e 65 64 20 61 73 20 6c 61 72 67 65 20 65 fined as
large e
+ 335: 6e 6f 75 67 68 21 00 nough!.
+
+0000033c <__c.2318>:
+ 33c: 29 3a 20 00 ): .
+
+00000340 <__c.2316>:
+ 340: 2a 4e 52 4b 20 45 52 52 4f 52 28 00 *NRK ERROR(.
+
+0000034c <__c.2249>:
+ 34c: 0d 0a 53 54 41 43 4b 20 44 55 4d 50 0d 0a 00 00 ..STACK
DUMP....
+
+0000035c <__init>:
+ 35c: 11 24 eor r1, r1
+ 35e: 1f be out 0x3f, r1 ; 63
+ 360: cf ef ldi r28, 0xFF ; 255
+ 362: d1 e2 ldi r29, 0x21 ; 33
+ 364: de bf out 0x3e, r29 ; 62
+ 366: cd bf out 0x3d, r28 ; 61
+
+00000368 <__do_copy_data>:
+ 368: 12 e0 ldi r17, 0x02 ; 2
+ 36a: a0 e0 ldi r26, 0x00 ; 0
+ 36c: b2 e0 ldi r27, 0x02 ; 2
+ 36e: ee ef ldi r30, 0xFE ; 254
+ 370: f2 e7 ldi r31, 0x72 ; 114
+ 372: 00 e0 ldi r16, 0x00 ; 0
+ 374: 0b bf out 0x3b, r16 ; 59
+ 376: 02 c0 rjmp .+4 ; 0x37c <__do_copy_data+0x14>
+ 378: 07 90 elpm r0, Z+
+ 37a: 0d 92 st X+, r0
+ 37c: a2 3f cpi r26, 0xF2 ; 242
+ 37e: b1 07 cpc r27, r17
+ 380: d9 f7 brne .-10 ; 0x378 <__do_copy_data+0x10>
+
+00000382 <__do_clear_bss>:
+ 382: 18 e0 ldi r17, 0x08 ; 8
+ 384: a2 ef ldi r26, 0xF2 ; 242
+ 386: b2 e0 ldi r27, 0x02 ; 2
+ 388: 01 c0 rjmp .+2 ; 0x38c <.do_clear_bss_start>
+
+0000038a <.do_clear_bss_loop>:
+ 38a: 1d 92 st X+, r1
+
+0000038c <.do_clear_bss_start>:
+ 38c: aa 3a cpi r26, 0xAA ; 170
+ 38e: b1 07 cpc r27, r17
+ 390: e1 f7 brne .-8 ; 0x38a <.do_clear_bss_loop>
+ 392: 0e 94 49 04 call 0x892 ; 0x892 <main>
+ 396: 0c 94 7e 39 jmp 0x72fc ; 0x72fc <_exit>
+
+0000039a <__bad_interrupt>:
+ 39a: 0c 94 a7 31 jmp 0x634e ; 0x634e <__vector_default>
+
+0000039e <monome_setup_system>:
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+}
+
+inline void monome_setup_system(){
+ state = 0 | SYNC;
+ 39e: 81 e0 ldi r24, 0x01 ; 1
+ 3a0: 80 93 c2 03 sts 0x03C2, r24
+ player_num = -1;
+ 3a4: 8f ef ldi r24, 0xFF ; 255
+ 3a6: 80 93 d6 03 sts 0x03D6, r24
+ sync_pkt_tx.player = -1;
+ 3aa: 80 93 bf 03 sts 0x03BF, r24
+ 3ae: 08 95 ret
+
+000003b0 <monome_erase>:
+
+}
+
+inline void monome_set_player_num(){
+ printf("setting player\r\n");
+ //player_num = sync_pkt_rx.player;
+ printf("player number: %d\r\n", player_num);
+ switch (player_num) {
+ case 0:
+ nrk_led_set(RED_LED);
+ break;
+ case 1:
+ nrk_led_set(GREEN_LED);
+ break;
+ case 2:
+ nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);
+ break;
+ case 3:
+ nrk_led_set(BLUE_LED);
+ break;
+ default:
+ break;
+ }
+ state = 0 | SELECT;
+}
+
+void nrk_register_drivers()
+{
+ int8_t val;
+
+ // Register the Basic FireFly Sensor device driver
+ // Make sure to add:
+ // #define NRK_MAX_DRIVER_CNT
+ // in nrk_cfg.h
+ // Make sure to add:
+ // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+ // in makefile
+ val=nrk_register_driver( &dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to load my ADC driver\r\n")
);
+
+}
+
+void monome_move(uint8_t direction){
+ nrk_gpio_set(direction);
+ //nrk_gpio_set(IRQ);
+ nrk_spin_wait_us(100000);
+ //nrk_gpio_clr(IRQ);
+ nrk_gpio_clr(direction);
+}
+
+void monome_draw(){
+ while(nrk_gpio_get(DRAW)); //debounce
+ //nrk_kprintf( PSTR("draw\r\n") );
+ nrk_led_toggle(GREEN_LED);
+ nrk_gpio_set(DRAW_OUT);
+ nrk_spin_wait_us(90000);
+ nrk_gpio_clr(DRAW_OUT);
+}
+
+void monome_erase(){
+ 3b0: 1f 93 push r17
+ while(nrk_gpio_get(ERASE)); //debounce
+ 3b2: 10 91 81 02 lds r17, 0x0281
+ 3b6: 81 2f mov r24, r17
+ 3b8: 0e 94 5c 1c call 0x38b8 ; 0x38b8 <nrk_gpio_get>
+ 3bc: 88 23 and r24, r24
+ 3be: d9 f7 brne .-10 ; 0x3b6 <monome_erase+0x6>
+ //nrk_kprintf( PSTR("erase\r\n") );
+ nrk_led_toggle(RED_LED);
+ 3c0: 83 e0 ldi r24, 0x03 ; 3
+ 3c2: 90 e0 ldi r25, 0x00 ; 0
+ 3c4: 0e 94 c7 1e call 0x3d8e ; 0x3d8e <nrk_led_toggle>
+ nrk_gpio_set(ERASE_OUT);
+ 3c8: 10 91 76 02 lds r17, 0x0276
+ 3cc: 81 2f mov r24, r17
+ 3ce: 0e 94 4b 1b call 0x3696 ; 0x3696 <nrk_gpio_set>
+ nrk_spin_wait_us(90000);
+ 3d2: 80 e9 ldi r24, 0x90 ; 144
+ 3d4: 9f e5 ldi r25, 0x5F ; 95
+ 3d6: 0e 94 72 30 call 0x60e4 ; 0x60e4 <nrk_spin_wait_us>
+ nrk_gpio_clr(ERASE_OUT);
+ 3da: 81 2f mov r24, r17
+ 3dc: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 3e0: 1f 91 pop r17
+ 3e2: 08 95 ret
+
+000003e4 <monome_draw>:
+ 3e4: 1f 93 push r17
+ 3e6: 10 91 80 02 lds r17, 0x0280
+ 3ea: 81 2f mov r24, r17
+ 3ec: 0e 94 5c 1c call 0x38b8 ; 0x38b8 <nrk_gpio_get>
+ 3f0: 88 23 and r24, r24
+ 3f2: d9 f7 brne .-10 ; 0x3ea <monome_draw+0x6>
+ 3f4: 82 e0 ldi r24, 0x02 ; 2
+ 3f6: 90 e0 ldi r25, 0x00 ; 0
+ 3f8: 0e 94 c7 1e call 0x3d8e ; 0x3d8e <nrk_led_toggle>
+ 3fc: 10 91 87 02 lds r17, 0x0287
+ 400: 81 2f mov r24, r17
+ 402: 0e 94 4b 1b call 0x3696 ; 0x3696 <nrk_gpio_set>
+ 406: 80 e9 ldi r24, 0x90 ; 144
+ 408: 9f e5 ldi r25, 0x5F ; 95
+ 40a: 0e 94 72 30 call 0x60e4 ; 0x60e4 <nrk_spin_wait_us>
+ 40e: 81 2f mov r24, r17
+ 410: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 414: 1f 91 pop r17
+ 416: 08 95 ret
+
+00000418 <monome_move>:
+ 418: 1f 93 push r17
+ 41a: 18 2f mov r17, r24
+ 41c: 0e 94 4b 1b call 0x3696 ; 0x3696 <nrk_gpio_set>
+ 420: 80 ea ldi r24, 0xA0 ; 160
+ 422: 96 e8 ldi r25, 0x86 ; 134
+ 424: 0e 94 72 30 call 0x60e4 ; 0x60e4 <nrk_spin_wait_us>
+ 428: 81 2f mov r24, r17
+ 42a: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 42e: 1f 91 pop r17
+ 430: 08 95 ret
+
+00000432 <nrk_register_drivers>:
+ 432: 61 e0 ldi r22, 0x01 ; 1
+ 434: 83 e7 ldi r24, 0x73 ; 115
+ 436: 90 e1 ldi r25, 0x10 ; 16
+ 438: 0e 94 59 2f call 0x5eb2 ; 0x5eb2 <nrk_register_driver>
+ 43c: 8f 3f cpi r24, 0xFF ; 255
+ 43e: 21 f4 brne .+8 ; 0x448 <nrk_register_drivers+0x16>
+ 440: 80 ef ldi r24, 0xF0 ; 240
+ 442: 90 e0 ldi r25, 0x00 ; 0
+ 444: 0e 94 9a 1f call 0x3f34 ; 0x3f34 <nrk_kprintf>
+ 448: 08 95 ret
+
+0000044a <monome_set_player_num>:
+ 44a: 80 e0 ldi r24, 0x00 ; 0
+ 44c: 92 e0 ldi r25, 0x02 ; 2
+ 44e: 0e 94 98 37 call 0x6f30 ; 0x6f30 <puts>
+ 452: 80 91 d6 03 lds r24, 0x03D6
+ 456: 99 27 eor r25, r25
+ 458: 9f 93 push r25
+ 45a: 8f 93 push r24
+ 45c: 80 e1 ldi r24, 0x10 ; 16
+ 45e: 92 e0 ldi r25, 0x02 ; 2
+ 460: 9f 93 push r25
+ 462: 8f 93 push r24
+ 464: 0e 94 78 37 call 0x6ef0 ; 0x6ef0 <printf>
+ 468: 0f 90 pop r0
+ 46a: 0f 90 pop r0
+ 46c: 0f 90 pop r0
+ 46e: 0f 90 pop r0
+ 470: 80 91 d6 03 lds r24, 0x03D6
+ 474: 81 30 cpi r24, 0x01 ; 1
+ 476: 71 f0 breq .+28 ; 0x494 <monome_set_player_num+0x4a>
+ 478: 81 30 cpi r24, 0x01 ; 1
+ 47a: 28 f0 brcs .+10 ; 0x486 <monome_set_player_num+0x3c>
+ 47c: 82 30 cpi r24, 0x02 ; 2
+ 47e: 31 f0 breq .+12 ; 0x48c <monome_set_player_num+0x42>
+ 480: 83 30 cpi r24, 0x03 ; 3
+ 482: 79 f4 brne .+30 ; 0x4a2 <monome_set_player_num+0x58>
+ 484: 0a c0 rjmp .+20 ; 0x49a <monome_set_player_num+0x50>
+ 486: 83 e0 ldi r24, 0x03 ; 3
+ 488: 90 e0 ldi r25, 0x00 ; 0
+ 48a: 09 c0 rjmp .+18 ; 0x49e <monome_set_player_num+0x54>
+ 48c: 83 e0 ldi r24, 0x03 ; 3
+ 48e: 90 e0 ldi r25, 0x00 ; 0
+ 490: 0e 94 01 1f call 0x3e02 ; 0x3e02 <nrk_led_set>
+ 494: 82 e0 ldi r24, 0x02 ; 2
+ 496: 90 e0 ldi r25, 0x00 ; 0
+ 498: 02 c0 rjmp .+4 ; 0x49e <monome_set_player_num+0x54>
+ 49a: 81 e0 ldi r24, 0x01 ; 1
+ 49c: 90 e0 ldi r25, 0x00 ; 0
+ 49e: 0e 94 01 1f call 0x3e02 ; 0x3e02 <nrk_led_set>
+ 4a2: 82 e0 ldi r24, 0x02 ; 2
+ 4a4: 80 93 c2 03 sts 0x03C2, r24
+ 4a8: 08 95 ret
+
+000004aa <monome_comm_init>:
+ 4aa: 80 e0 ldi r24, 0x00 ; 0
+ 4ac: 0e 94 53 06 call 0xca6 ; 0xca6 <rtl_init>
+ 4b0: 41 e0 ldi r20, 0x01 ; 1
+ 4b2: 65 e0 ldi r22, 0x05 ; 5
+ 4b4: 80 e0 ldi r24, 0x00 ; 0
+ 4b6: 0e 94 9e 0c call 0x193c ; 0x193c <rtl_set_schedule>
+ 4ba: 41 e0 ldi r20, 0x01 ; 1
+ 4bc: 63 e0 ldi r22, 0x03 ; 3
+ 4be: 80 e0 ldi r24, 0x00 ; 0
+ 4c0: 0e 94 9e 0c call 0x193c ; 0x193c <rtl_set_schedule>
+ 4c4: 41 e0 ldi r20, 0x01 ; 1
+ 4c6: 62 e0 ldi r22, 0x02 ; 2
+ 4c8: 81 e0 ldi r24, 0x01 ; 1
+ 4ca: 0e 94 9e 0c call 0x193c ; 0x193c <rtl_set_schedule>
+ 4ce: 0e 94 0f 06 call 0xc1e ; 0xc1e <rtl_start>
+ 4d2: 64 e7 ldi r22, 0x74 ; 116
+ 4d4: 8f e5 ldi r24, 0x5F ; 95
+ 4d6: 94 e0 ldi r25, 0x04 ; 4
+ 4d8: 0e 94 aa 05 call 0xb54 ; 0xb54 <rtl_rx_pkt_set_buffer>
+ 4dc: 08 95 ret
+
+000004de <nrk_create_taskset>:
+ 4de: 6f 92 push r6
+ 4e0: 7f 92 push r7
+ 4e2: 8f 92 push r8
+ 4e4: 9f 92 push r9
+ 4e6: af 92 push r10
+ 4e8: bf 92 push r11
+ 4ea: df 92 push r13
+ 4ec: ef 92 push r14
+ 4ee: ff 92 push r15
+ 4f0: 0f 93 push r16
+ 4f2: 1f 93 push r17
+ 4f4: 81 eb ldi r24, 0xB1 ; 177
+ 4f6: 94 e0 ldi r25, 0x04 ; 4
+ 4f8: 90 93 11 06 sts 0x0611, r25
+ 4fc: 80 93 10 06 sts 0x0610, r24
+ 500: 8d e5 ldi r24, 0x5D ; 93
+ 502: 94 e0 ldi r25, 0x04 ; 4
+ 504: 90 93 0d 06 sts 0x060D, r25
+ 508: 80 93 0c 06 sts 0x060C, r24
+ 50c: 8e ed ldi r24, 0xDE ; 222
+ 50e: 93 e0 ldi r25, 0x03 ; 3
+ 510: 90 93 0f 06 sts 0x060F, r25
+ 514: 80 93 0e 06 sts 0x060E, r24
+ 518: 82 e0 ldi r24, 0x02 ; 2
+ 51a: 80 93 13 06 sts 0x0613, r24
+ 51e: dd 24 eor r13, r13
+ 520: d3 94 inc r13
+ 522: d0 92 12 06 sts 0x0612, r13
+ 526: d0 92 14 06 sts 0x0614, r13
+ 52a: d0 92 15 06 sts 0x0615, r13
+ 52e: 21 e0 ldi r18, 0x01 ; 1
+ 530: e2 2e mov r14, r18
+ 532: f1 2c mov r15, r1
+ 534: 01 2d mov r16, r1
+ 536: 11 2d mov r17, r1
+ 538: e0 92 16 06 sts 0x0616, r14
+ 53c: f0 92 17 06 sts 0x0617, r15
+ 540: 00 93 18 06 sts 0x0618, r16
+ 544: 10 93 19 06 sts 0x0619, r17
+ 548: 81 2c mov r8, r1
+ 54a: 95 e6 ldi r25, 0x65 ; 101
+ 54c: 99 2e mov r9, r25
+ 54e: 9d ec ldi r25, 0xCD ; 205
+ 550: a9 2e mov r10, r25
+ 552: 9d e1 ldi r25, 0x1D ; 29
+ 554: b9 2e mov r11, r25
+ 556: 80 92 1a 06 sts 0x061A, r8
+ 55a: 90 92 1b 06 sts 0x061B, r9
+ 55e: a0 92 1c 06 sts 0x061C, r10
+ 562: b0 92 1d 06 sts 0x061D, r11
+ 566: 10 92 1e 06 sts 0x061E, r1
+ 56a: 10 92 1f 06 sts 0x061F, r1
+ 56e: 10 92 20 06 sts 0x0620, r1
+ 572: 10 92 21 06 sts 0x0621, r1
+ 576: 80 e0 ldi r24, 0x00 ; 0
+ 578: 92 ec ldi r25, 0xC2 ; 194
+ 57a: ab ee ldi r26, 0xEB ; 235
+ 57c: bb e0 ldi r27, 0x0B ; 11
+ 57e: 80 93 22 06 sts 0x0622, r24
+ 582: 90 93 23 06 sts 0x0623, r25
+ 586: a0 93 24 06 sts 0x0624, r26
+ 58a: b0 93 25 06 sts 0x0625, r27
+ 58e: 10 92 26 06 sts 0x0626, r1
+ 592: 10 92 27 06 sts 0x0627, r1
+ 596: 10 92 28 06 sts 0x0628, r1
+ 59a: 10 92 29 06 sts 0x0629, r1
+ 59e: 10 92 2a 06 sts 0x062A, r1
+ 5a2: 10 92 2b 06 sts 0x062B, r1
+ 5a6: 10 92 2c 06 sts 0x062C, r1
+ 5aa: 10 92 2d 06 sts 0x062D, r1
+ 5ae: 8b e0 ldi r24, 0x0B ; 11
+ 5b0: 96 e0 ldi r25, 0x06 ; 6
+ 5b2: 0e 94 07 2a call 0x540e ; 0x540e <nrk_activate_task>
+ 5b6: 87 e3 ldi r24, 0x37 ; 55
+ 5b8: 93 e0 ldi r25, 0x03 ; 3
+ 5ba: 90 93 e2 05 sts 0x05E2, r25
+ 5be: 80 93 e1 05 sts 0x05E1, r24
+ 5c2: 8c ed ldi r24, 0xDC ; 220
+ 5c4: 68 2e mov r6, r24
+ 5c6: 85 e0 ldi r24, 0x05 ; 5
+ 5c8: 78 2e mov r7, r24
+ 5ca: 40 e8 ldi r20, 0x80 ; 128
+ 5cc: 50 e0 ldi r21, 0x00 ; 0
+ 5ce: 6a ed ldi r22, 0xDA ; 218
+ 5d0: 74 e0 ldi r23, 0x04 ; 4
+ 5d2: c3 01 movw r24, r6
+ 5d4: 0e 94 93 34 call 0x6926 ; 0x6926 <nrk_task_set_stk>
+ 5d8: d0 92 e4 05 sts 0x05E4, r13
+ 5dc: d0 92 e3 05 sts 0x05E3, r13
+ 5e0: d0 92 e5 05 sts 0x05E5, r13
+ 5e4: d0 92 e6 05 sts 0x05E6, r13
+ 5e8: e0 92 e7 05 sts 0x05E7, r14
+ 5ec: f0 92 e8 05 sts 0x05E8, r15
+ 5f0: 00 93 e9 05 sts 0x05E9, r16
+ 5f4: 10 93 ea 05 sts 0x05EA, r17
+ 5f8: 80 92 eb 05 sts 0x05EB, r8
+ 5fc: 90 92 ec 05 sts 0x05EC, r9
+ 600: a0 92 ed 05 sts 0x05ED, r10
+ 604: b0 92 ee 05 sts 0x05EE, r11
+ 608: e0 92 ef 05 sts 0x05EF, r14
+ 60c: f0 92 f0 05 sts 0x05F0, r15
+ 610: 00 93 f1 05 sts 0x05F1, r16
+ 614: 10 93 f2 05 sts 0x05F2, r17
+ 618: 10 92 f3 05 sts 0x05F3, r1
+ 61c: 10 92 f4 05 sts 0x05F4, r1
+ 620: 10 92 f5 05 sts 0x05F5, r1
+ 624: 10 92 f6 05 sts 0x05F6, r1
+ 628: 10 92 f7 05 sts 0x05F7, r1
+ 62c: 10 92 f8 05 sts 0x05F8, r1
+ 630: 10 92 f9 05 sts 0x05F9, r1
+ 634: 10 92 fa 05 sts 0x05FA, r1
+ 638: 10 92 fb 05 sts 0x05FB, r1
+ 63c: 10 92 fc 05 sts 0x05FC, r1
+ 640: 10 92 fd 05 sts 0x05FD, r1
+ 644: 10 92 fe 05 sts 0x05FE, r1
+ 648: c3 01 movw r24, r6
+ 64a: 0e 94 07 2a call 0x540e ; 0x540e <nrk_activate_task>
+ 64e: 84 e2 ldi r24, 0x24 ; 36
+ 650: 92 e0 ldi r25, 0x02 ; 2
+ 652: 0e 94 98 37 call 0x6f30 ; 0x6f30 <puts>
+ 656: 1f 91 pop r17
+ 658: 0f 91 pop r16
+ 65a: ff 90 pop r15
+ 65c: ef 90 pop r14
+ 65e: df 90 pop r13
+ 660: bf 90 pop r11
+ 662: af 90 pop r10
+ 664: 9f 90 pop r9
+ 666: 8f 90 pop r8
+ 668: 7f 90 pop r7
+ 66a: 6f 90 pop r6
+ 66c: 08 95 ret
+
+0000066e <main_task>:
+ 66e: 2f 92 push r2
+ 670: 3f 92 push r3
+ 672: 4f 92 push r4
+ 674: 5f 92 push r5
+ 676: 6f 92 push r6
+ 678: 7f 92 push r7
+ 67a: 9f 92 push r9
+ 67c: af 92 push r10
+ 67e: bf 92 push r11
+ 680: cf 92 push r12
+ 682: df 92 push r13
+ 684: ef 92 push r14
+ 686: ff 92 push r15
+ 688: 0f 93 push r16
+ 68a: 1f 93 push r17
+ 68c: cf 93 push r28
+ 68e: df 93 push r29
+ 690: cd b7 in r28, 0x3d ; 61
+ 692: de b7 in r29, 0x3e ; 62
+ 694: 26 97 sbiw r28, 0x06 ; 6
+ 696: 0f b6 in r0, 0x3f ; 63
+ 698: f8 94 cli
+ 69a: de bf out 0x3e, r29 ; 62
+ 69c: 0f be out 0x3f, r0 ; 63
+ 69e: cd bf out 0x3d, r28 ; 61
+ 6a0: 90 90 86 02 lds r9, 0x0286
+ 6a4: 89 2d mov r24, r9
+ 6a6: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 6aa: a0 90 75 02 lds r10, 0x0275
+ 6ae: 8a 2d mov r24, r10
+ 6b0: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 6b4: b0 90 83 02 lds r11, 0x0283
+ 6b8: 8b 2d mov r24, r11
+ 6ba: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 6be: 00 91 82 02 lds r16, 0x0282
+ 6c2: 80 2f mov r24, r16
+ 6c4: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 6c8: 80 91 87 02 lds r24, 0x0287
+ 6cc: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 6d0: 80 91 76 02 lds r24, 0x0276
+ 6d4: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 6d8: 80 e0 ldi r24, 0x00 ; 0
+ 6da: 0e 94 3e 32 call 0x647c ; 0x647c <nrk_ext_int_enable>
+ 6de: 81 e0 ldi r24, 0x01 ; 1
+ 6e0: 0e 94 3e 32 call 0x647c ; 0x647c <nrk_ext_int_enable>
+ 6e4: 10 92 d7 05 sts 0x05D7, r1
+ 6e8: 10 92 d6 05 sts 0x05D6, r1
+ 6ec: 10 92 d5 05 sts 0x05D5, r1
+ 6f0: 10 92 d4 05 sts 0x05D4, r1
+ 6f4: 10 92 93 03 sts 0x0393, r1
+ 6f8: 10 92 92 03 sts 0x0392, r1
+ 6fc: ee 24 eor r14, r14
+ 6fe: ff 24 eor r15, r15
+ 700: 11 e0 ldi r17, 0x01 ; 1
+ 702: c1 2e mov r12, r17
+ 704: d1 2c mov r13, r1
+ 706: 1e 01 movw r2, r28
+ 708: 08 94 sec
+ 70a: 21 1c adc r2, r1
+ 70c: 31 1c adc r3, r1
+ 70e: b3 e0 ldi r27, 0x03 ; 3
+ 710: 4b 2e mov r4, r27
+ 712: 51 2c mov r5, r1
+ 714: 4c 0e add r4, r28
+ 716: 5d 1e adc r5, r29
+ 718: a5 e0 ldi r26, 0x05 ; 5
+ 71a: 6a 2e mov r6, r26
+ 71c: 71 2c mov r7, r1
+ 71e: 6c 0e add r6, r28
+ 720: 7d 1e adc r7, r29
+ 722: 65 e0 ldi r22, 0x05 ; 5
+ 724: 81 e0 ldi r24, 0x01 ; 1
+ 726: 0e 94 76 2f call 0x5eec ; 0x5eec <nrk_open>
+ 72a: 18 2f mov r17, r24
+ 72c: 8f 3f cpi r24, 0xFF ; 255
+ 72e: 21 f4 brne .+8 ; 0x738 <main_task+0xca>
+ 730: 8f e0 ldi r24, 0x0F ; 15
+ 732: 91 e0 ldi r25, 0x01 ; 1
+ 734: 0e 94 9a 1f call 0x3f34 ; 0x3f34 <nrk_kprintf>
+ 738: 81 e0 ldi r24, 0x01 ; 1
+ 73a: 90 e0 ldi r25, 0x00 ; 0
+ 73c: 0e 94 c7 1e call 0x3d8e ; 0x3d8e <nrk_led_toggle>
+ 740: 42 e0 ldi r20, 0x02 ; 2
+ 742: 61 e0 ldi r22, 0x01 ; 1
+ 744: 81 2f mov r24, r17
+ 746: 0e 94 e9 2f call 0x5fd2 ; 0x5fd2 <nrk_set_status>
+ 74a: 42 e0 ldi r20, 0x02 ; 2
+ 74c: b1 01 movw r22, r2
+ 74e: 81 2f mov r24, r17
+ 750: 0e 94 0b 30 call 0x6016 ; 0x6016 <nrk_read>
+ 754: 45 e0 ldi r20, 0x05 ; 5
+ 756: 61 e0 ldi r22, 0x01 ; 1
+ 758: 81 2f mov r24, r17
+ 75a: 0e 94 e9 2f call 0x5fd2 ; 0x5fd2 <nrk_set_status>
+ 75e: 42 e0 ldi r20, 0x02 ; 2
+ 760: b2 01 movw r22, r4
+ 762: 81 2f mov r24, r17
+ 764: 0e 94 0b 30 call 0x6016 ; 0x6016 <nrk_read>
+ 768: 46 e0 ldi r20, 0x06 ; 6
+ 76a: 61 e0 ldi r22, 0x01 ; 1
+ 76c: 81 2f mov r24, r17
+ 76e: 0e 94 e9 2f call 0x5fd2 ; 0x5fd2 <nrk_set_status>
+ 772: 42 e0 ldi r20, 0x02 ; 2
+ 774: b3 01 movw r22, r6
+ 776: 81 2f mov r24, r17
+ 778: 0e 94 0b 30 call 0x6016 ; 0x6016 <nrk_read>
+ 77c: 8b e0 ldi r24, 0x0B ; 11
+ 77e: e8 16 cp r14, r24
+ 780: f1 04 cpc r15, r1
+ 782: e8 f5 brcc .+122 ; 0x7fe <main_task+0x190>
+ 784: c1 14 cp r12, r1
+ 786: d1 04 cpc r13, r1
+ 788: f1 f1 breq .+124 ; 0x806 <main_task+0x198>
+ 78a: 29 81 ldd r18, Y+1 ; 0x01
+ 78c: 3a 81 ldd r19, Y+2 ; 0x02
+ 78e: 4b 81 ldd r20, Y+3 ; 0x03
+ 790: 5c 81 ldd r21, Y+4 ; 0x04
+ 792: 6d 81 ldd r22, Y+5 ; 0x05
+ 794: 7e 81 ldd r23, Y+6 ; 0x06
+ 796: e1 14 cp r14, r1
+ 798: f1 04 cpc r15, r1
+ 79a: 49 f4 brne .+18 ; 0x7ae <main_task+0x140>
+ 79c: 30 93 d7 05 sts 0x05D7, r19
+ 7a0: 20 93 d6 05 sts 0x05D6, r18
+ 7a4: 50 93 d5 05 sts 0x05D5, r21
+ 7a8: 40 93 d4 05 sts 0x05D4, r20
+ 7ac: 20 c0 rjmp .+64 ; 0x7ee <main_task+0x180>
+ 7ae: 80 91 d6 05 lds r24, 0x05D6
+ 7b2: 90 91 d7 05 lds r25, 0x05D7
+ 7b6: 28 0f add r18, r24
+ 7b8: 39 1f adc r19, r25
+ 7ba: 36 95 lsr r19
+ 7bc: 27 95 ror r18
+ 7be: 30 93 d7 05 sts 0x05D7, r19
+ 7c2: 20 93 d6 05 sts 0x05D6, r18
+ 7c6: 80 91 d4 05 lds r24, 0x05D4
+ 7ca: 90 91 d5 05 lds r25, 0x05D5
+ 7ce: 48 0f add r20, r24
+ 7d0: 59 1f adc r21, r25
+ 7d2: 56 95 lsr r21
+ 7d4: 47 95 ror r20
+ 7d6: 50 93 d5 05 sts 0x05D5, r21
+ 7da: 40 93 d4 05 sts 0x05D4, r20
+ 7de: 80 91 92 03 lds r24, 0x0392
+ 7e2: 90 91 93 03 lds r25, 0x0393
+ 7e6: 68 0f add r22, r24
+ 7e8: 79 1f adc r23, r25
+ 7ea: 76 95 lsr r23
+ 7ec: 67 95 ror r22
+ 7ee: 70 93 93 03 sts 0x0393, r23
+ 7f2: 60 93 92 03 sts 0x0392, r22
+ 7f6: 08 94 sec
+ 7f8: e1 1c adc r14, r1
+ 7fa: f1 1c adc r15, r1
+ 7fc: 44 c0 rjmp .+136 ; 0x886 <main_task+0x218>
+ 7fe: ee 24 eor r14, r14
+ 800: ff 24 eor r15, r15
+ 802: cc 24 eor r12, r12
+ 804: dd 24 eor r13, r13
+ 806: 4d 81 ldd r20, Y+5 ; 0x05
+ 808: 5e 81 ldd r21, Y+6 ; 0x06
+ 80a: 20 91 92 03 lds r18, 0x0392
+ 80e: 30 91 93 03 lds r19, 0x0393
+ 812: c9 01 movw r24, r18
+ 814: 0a 96 adiw r24, 0x0a ; 10
+ 816: 84 17 cp r24, r20
+ 818: 95 07 cpc r25, r21
+ 81a: 28 f0 brcs .+10 ; 0x826 <main_task+0x1b8>
+ 81c: 2a 50 subi r18, 0x0A ; 10
+ 81e: 30 40 sbci r19, 0x00 ; 0
+ 820: 42 17 cp r20, r18
+ 822: 53 07 cpc r21, r19
+ 824: 80 f5 brcc .+96 ; 0x886 <main_task+0x218>
+ 826: 49 81 ldd r20, Y+1 ; 0x01
+ 828: 5a 81 ldd r21, Y+2 ; 0x02
+ 82a: 20 91 d6 05 lds r18, 0x05D6
+ 82e: 30 91 d7 05 lds r19, 0x05D7
+ 832: c9 01 movw r24, r18
+ 834: 0a 96 adiw r24, 0x0a ; 10
+ 836: 84 17 cp r24, r20
+ 838: 95 07 cpc r25, r21
+ 83a: 28 f0 brcs .+10 ; 0x846 <main_task+0x1d8>
+ 83c: c9 01 movw r24, r18
+ 83e: 0a 97 sbiw r24, 0x0a ; 10
+ 840: 48 17 cp r20, r24
+ 842: 59 07 cpc r21, r25
+ 844: 40 f4 brcc .+16 ; 0x856 <main_task+0x1e8>
+ 846: 24 17 cp r18, r20
+ 848: 35 07 cpc r19, r21
+ 84a: 10 f4 brcc .+4 ; 0x850 <main_task+0x1e2>
+ 84c: 8a 2d mov r24, r10
+ 84e: 01 c0 rjmp .+2 ; 0x852 <main_task+0x1e4>
+ 850: 89 2d mov r24, r9
+ 852: 0e 94 0c 02 call 0x418 ; 0x418 <monome_move>
+ 856: 4b 81 ldd r20, Y+3 ; 0x03
+ 858: 5c 81 ldd r21, Y+4 ; 0x04
+ 85a: 20 91 d4 05 lds r18, 0x05D4
+ 85e: 30 91 d5 05 lds r19, 0x05D5
+ 862: c9 01 movw r24, r18
+ 864: 0a 96 adiw r24, 0x0a ; 10
+ 866: 84 17 cp r24, r20
+ 868: 95 07 cpc r25, r21
+ 86a: 28 f0 brcs .+10 ; 0x876 <main_task+0x208>
+ 86c: c9 01 movw r24, r18
+ 86e: 0a 97 sbiw r24, 0x0a ; 10
+ 870: 48 17 cp r20, r24
+ 872: 59 07 cpc r21, r25
+ 874: 40 f4 brcc .+16 ; 0x886 <main_task+0x218>
+ 876: 24 17 cp r18, r20
+ 878: 35 07 cpc r19, r21
+ 87a: 10 f4 brcc .+4 ; 0x880 <main_task+0x212>
+ 87c: 80 2f mov r24, r16
+ 87e: 01 c0 rjmp .+2 ; 0x882 <main_task+0x214>
+ 880: 8b 2d mov r24, r11
+ 882: 0e 94 0c 02 call 0x418 ; 0x418 <monome_move>
+ 886: 81 2f mov r24, r17
+ 888: 0e 94 4f 30 call 0x609e ; 0x609e <nrk_close>
+ 88c: 0e 94 c9 29 call 0x5392 ; 0x5392 <nrk_wait_until_next_period>
+ 890: 48 cf rjmp .-368 ; 0x722 <main_task+0xb4>
+
+00000892 <main>:
+ 892: cf ef ldi r28, 0xFF ; 255
+ 894: d1 e2 ldi r29, 0x21 ; 33
+ 896: de bf out 0x3e, r29 ; 62
+ 898: cd bf out 0x3d, r28 ; 61
+ 89a: 0e 94 44 1b call 0x3688 ; 0x3688 <nrk_setup_ports>
+ 89e: d0 90 86 02 lds r13, 0x0286
+ 8a2: 61 e0 ldi r22, 0x01 ; 1
+ 8a4: 8d 2d mov r24, r13
+ 8a6: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8aa: c0 90 87 02 lds r12, 0x0287
+ 8ae: 61 e0 ldi r22, 0x01 ; 1
+ 8b0: 8c 2d mov r24, r12
+ 8b2: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8b6: e0 90 82 02 lds r14, 0x0282
+ 8ba: 61 e0 ldi r22, 0x01 ; 1
+ 8bc: 8e 2d mov r24, r14
+ 8be: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8c2: f0 90 83 02 lds r15, 0x0283
+ 8c6: 61 e0 ldi r22, 0x01 ; 1
+ 8c8: 8f 2d mov r24, r15
+ 8ca: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8ce: 10 91 75 02 lds r17, 0x0275
+ 8d2: 61 e0 ldi r22, 0x01 ; 1
+ 8d4: 81 2f mov r24, r17
+ 8d6: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8da: 00 91 76 02 lds r16, 0x0276
+ 8de: 61 e0 ldi r22, 0x01 ; 1
+ 8e0: 80 2f mov r24, r16
+ 8e2: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8e6: 60 e0 ldi r22, 0x00 ; 0
+ 8e8: 80 91 80 02 lds r24, 0x0280
+ 8ec: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8f0: 60 e0 ldi r22, 0x00 ; 0
+ 8f2: 80 91 81 02 lds r24, 0x0281
+ 8f6: 0e 94 9f 1d call 0x3b3e ; 0x3b3e <nrk_gpio_direction>
+ 8fa: 42 ef ldi r20, 0xF2 ; 242
+ 8fc: 51 e0 ldi r21, 0x01 ; 1
+ 8fe: 63 e0 ldi r22, 0x03 ; 3
+ 900: 80 e0 ldi r24, 0x00 ; 0
+ 902: 0e 94 ca 32 call 0x6594 ; 0x6594 <nrk_ext_int_configure>
+ 906: 48 ed ldi r20, 0xD8 ; 216
+ 908: 51 e0 ldi r21, 0x01 ; 1
+ 90a: 63 e0 ldi r22, 0x03 ; 3
+ 90c: 81 e0 ldi r24, 0x01 ; 1
+ 90e: 0e 94 ca 32 call 0x6594 ; 0x6594 <nrk_ext_int_configure>
+ 912: 8d 2d mov r24, r13
+ 914: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 918: 81 2f mov r24, r17
+ 91a: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 91e: 8f 2d mov r24, r15
+ 920: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 924: 8e 2d mov r24, r14
+ 926: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 92a: 8c 2d mov r24, r12
+ 92c: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 930: 80 2f mov r24, r16
+ 932: 0e 94 d0 1b call 0x37a0 ; 0x37a0 <nrk_gpio_clr>
+ 936: 0e 94 d4 21 call 0x43a8 ; 0x43a8 <nrk_init>
+ 93a: 20 e0 ldi r18, 0x00 ; 0
+ 93c: 30 e0 ldi r19, 0x00 ; 0
+ 93e: 40 e0 ldi r20, 0x00 ; 0
+ 940: 50 e0 ldi r21, 0x00 ; 0
+ 942: 60 e0 ldi r22, 0x00 ; 0
+ 944: 70 e0 ldi r23, 0x00 ; 0
+ 946: 80 e0 ldi r24, 0x00 ; 0
+ 948: 90 e0 ldi r25, 0x00 ; 0
+ 94a: 0e 94 6b 2b call 0x56d6 ; 0x56d6 <nrk_time_set>
+ 94e: 0e 94 19 02 call 0x432 ; 0x432 <nrk_register_drivers>
+ 952: 0e 94 6f 02 call 0x4de ; 0x4de <nrk_create_taskset>
+ 956: 0e 94 74 21 call 0x42e8 ; 0x42e8 <nrk_start>
+ 95a: 80 e0 ldi r24, 0x00 ; 0
+ 95c: 90 e0 ldi r25, 0x00 ; 0
+ 95e: 0c 94 7e 39 jmp 0x72fc ; 0x72fc <_exit>
+
+00000962 <comm_task>:
+ 962: 2f 92 push r2
+ 964: 3f 92 push r3
+ 966: 4f 92 push r4
+ 968: 5f 92 push r5
+ 96a: 6f 92 push r6
+ 96c: 7f 92 push r7
+ 96e: 8f 92 push r8
+ 970: 9f 92 push r9
+ 972: af 92 push r10
+ 974: bf 92 push r11
+ 976: cf 92 push r12
+ 978: df 92 push r13
+ 97a: ef 92 push r14
+ 97c: ff 92 push r15
+ 97e: 0f 93 push r16
+ 980: 1f 93 push r17
+ 982: cf 93 push r28
+ 984: df 93 push r29
+ 986: cd b7 in r28, 0x3d ; 61
+ 988: de b7 in r29, 0x3e ; 62
+ 98a: 23 97 sbiw r28, 0x03 ; 3
+ 98c: 0f b6 in r0, 0x3f ; 63
+ 98e: f8 94 cli
+ 990: de bf out 0x3e, r29 ; 62
+ 992: 0f be out 0x3f, r0 ; 63
+ 994: cd bf out 0x3d, r28 ; 61
+ 996: 0e 94 55 02 call 0x4aa ; 0x4aa <monome_comm_init>
+ 99a: 81 e0 ldi r24, 0x01 ; 1
+ 99c: 80 93 c2 03 sts 0x03C2, r24
+ 9a0: 8f ef ldi r24, 0xFF ; 255
+ 9a2: 80 93 d6 03 sts 0x03D6, r24
+ 9a6: 80 93 bf 03 sts 0x03BF, r24
+ 9aa: 02 c0 rjmp .+4 ; 0x9b0 <comm_task+0x4e>
+ 9ac: 0e 94 c9 29 call 0x5392 ; 0x5392 <nrk_wait_until_next_period>
+ 9b0: 0e 94 56 05 call 0xaac ; 0xaac <rtl_ready>
+ 9b4: 88 23 and r24, r24
+ 9b6: d1 f3 breq .-12 ; 0x9ac <comm_task+0x4a>
+ 9b8: 42 e0 ldi r20, 0x02 ; 2
+ 9ba: 24 2e mov r2, r20
+ 9bc: 31 2c mov r3, r1
+ 9be: 2c 0e add r2, r28
+ 9c0: 3d 1e adc r3, r29
+ 9c2: 33 e0 ldi r19, 0x03 ; 3
+ 9c4: 43 2e mov r4, r19
+ 9c6: 51 2c mov r5, r1
+ 9c8: 4c 0e add r4, r28
+ 9ca: 5d 1e adc r5, r29
+ 9cc: 3e 01 movw r6, r28
+ 9ce: 08 94 sec
+ 9d0: 61 1c adc r6, r1
+ 9d2: 71 1c adc r7, r1
+ 9d4: 21 e3 ldi r18, 0x31 ; 49
+ 9d6: 82 2e mov r8, r18
+ 9d8: 22 e0 ldi r18, 0x02 ; 2
+ 9da: 92 2e mov r9, r18
+ 9dc: 9f e5 ldi r25, 0x5F ; 95
+ 9de: a9 2e mov r10, r25
+ 9e0: 92 e0 ldi r25, 0x02 ; 2
+ 9e2: b9 2e mov r11, r25
+ 9e4: 8e e4 ldi r24, 0x4E ; 78
+ 9e6: c8 2e mov r12, r24
+ 9e8: 82 e0 ldi r24, 0x02 ; 2
+ 9ea: d8 2e mov r13, r24
+ 9ec: 0d e5 ldi r16, 0x5D ; 93
+ 9ee: e0 2e mov r14, r16
+ 9f0: 05 e0 ldi r16, 0x05 ; 5
+ 9f2: f0 2e mov r15, r16
+ 9f4: 0e 94 8b 05 call 0xb16 ; 0xb16 <rtl_rx_pkt_check>
+ 9f8: 88 23 and r24, r24
+ 9fa: 49 f1 breq .+82 ; 0xa4e <comm_task+0xec>
+ 9fc: a1 01 movw r20, r2
+ 9fe: b2 01 movw r22, r4
+ a00: c3 01 movw r24, r6
+ a02: 0e 94 65 0c call 0x18ca ; 0x18ca <rtl_rx_pkt_get>
+ a06: 8c 01 movw r16, r24
+ a08: 89 81 ldd r24, Y+1 ; 0x01
+ a0a: 99 27 eor r25, r25
+ a0c: 9f 93 push r25
+ a0e: 8f 93 push r24
+ a10: 8a 81 ldd r24, Y+2 ; 0x02
+ a12: 99 27 eor r25, r25
+ a14: 9f 93 push r25
+ a16: 8f 93 push r24
+ a18: 9f 92 push r9
+ a1a: 8f 92 push r8
+ a1c: 0e 94 78 37 call 0x6ef0 ; 0x6ef0 <printf>
+ a20: 8d b7 in r24, 0x3d ; 61
+ a22: 9e b7 in r25, 0x3e ; 62
+ a24: 06 96 adiw r24, 0x06 ; 6
+ a26: 0f b6 in r0, 0x3f ; 63
+ a28: f8 94 cli
+ a2a: 9e bf out 0x3e, r25 ; 62
+ a2c: 0f be out 0x3f, r0 ; 63
+ a2e: 8d bf out 0x3d, r24 ; 61
+ a30: 89 81 ldd r24, Y+1 ; 0x01
+ a32: 84 30 cpi r24, 0x04 ; 4
+ a34: 61 f4 brne .+24 ; 0xa4e <comm_task+0xec>
+ a36: 80 91 c2 03 lds r24, 0x03C2
+ a3a: 80 ff sbrs r24, 0
+ a3c: 08 c0 rjmp .+16 ; 0xa4e <comm_task+0xec>
+ a3e: f8 01 movw r30, r16
+ a40: 83 81 ldd r24, Z+3 ; 0x03
+ a42: 80 93 d6 03 sts 0x03D6, r24
+ a46: 0e 94 25 02 call 0x44a ; 0x44a <monome_set_player_num>
+ a4a: 0e 94 6d 05 call 0xada ; 0xada <rtl_rx_pkt_release>
+ a4e: 80 91 c2 03 lds r24, 0x03C2
+ a52: 80 ff sbrs r24, 0
+ a54: 18 c0 rjmp .+48 ; 0xa86 <comm_task+0x124>
+ a56: c6 01 movw r24, r12
+ a58: 0e 94 98 37 call 0x6f30 ; 0x6f30 <puts>
+ a5c: 82 e0 ldi r24, 0x02 ; 2
+ a5e: 0e 94 70 05 call 0xae0 ; 0xae0 <rtl_tx_pkt_check>
+ a62: 88 23 and r24, r24
+ a64: d9 f7 brne .-10 ; 0xa5c <comm_task+0xfa>
+ a66: 80 91 bf 03 lds r24, 0x03BF
+ a6a: 80 93 60 05 sts 0x0560, r24
+ a6e: 84 e0 ldi r24, 0x04 ; 4
+ a70: 80 93 08 06 sts 0x0608, r24
+ a74: 42 e0 ldi r20, 0x02 ; 2
+ a76: 64 e0 ldi r22, 0x04 ; 4
+ a78: c7 01 movw r24, r14
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.lst
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,1687 @@
+ 1 .file "main.c"
+ 2 __SREG__ = 0x3f
+ 3 __SP_H__ = 0x3e
+ 4 __SP_L__ = 0x3d
+ 5 __tmp_reg__ = 0
+ 6 __zero_reg__ = 1
+ 7 .global __do_copy_data
+ 8 .global __do_clear_bss
+ 11 .text
+ 12 .Ltext0:
+ 145 .global monome_setup_system
+ 147 monome_setup_system:
+ 148 .stabd 46,0,0
+ 1:main.c **** /*
+ 2:main.c **** * main.c
+ 3:main.c **** *
+ 4:main.c **** *
+ 5:main.c **** * Created by Philip Asare on 12/6/10.
+ 6:main.c **** * Copyright 2010 __MyCompanyName__. All rights
reserved.
+ 7:main.c **** *
+ 8:main.c **** */
+ 9:main.c ****
+ 10:main.c **** #include <nrk.h>
+ 11:main.c **** #include <include.h>
+ 12:main.c **** #include <ulib.h>
+ 13:main.c **** #include <stdio.h>
+ 14:main.c **** #include <avr/sleep.h>
+ 15:main.c **** #include <hal.h>
+ 16:main.c **** #include <rt_link.h>
+ 17:main.c **** #include <nrk_error.h>
+ 18:main.c **** #include <nrk_timer.h>
+ 19:main.c **** #include <nrk_ext_int.h>
+ 20:main.c **** #include <nrk_driver_list.h>
+ 21:main.c **** #include <nrk_driver.h>
+ 22:main.c **** #include <ff_basic_sensor.h>
+ 23:main.c ****
+ 24:main.c **** NRK_STK MainStack[NRK_APP_STACKSIZE];
+ 25:main.c **** nrk_task_type MainTask;
+ 26:main.c **** void main_task(void);
+ 27:main.c ****
+ 28:main.c **** //#define IRQ NRK_UART0_TXD
+ 29:main.c ****
+ 30:main.c **** #define UP NRK_UART0_RXD
+ 31:main.c **** #define DOWN NRK_DEBUG_0
+ 32:main.c **** #define LEFT NRK_UART1_TXD
+ 33:main.c **** #define RIGHT NRK_UART1_RXD
+ 34:main.c ****
+ 35:main.c **** #define DRAW NRK_DEBUG_2
+ 36:main.c **** #define ERASE NRK_DEBUG_3
+ 37:main.c ****
+ 38:main.c **** #define DRAW_INT NRK_EXT_INT_0
+ 39:main.c **** #define ERASE_INT NRK_EXT_INT_1
+ 40:main.c ****
+ 41:main.c **** #define DRAW_OUT NRK_UART0_TXD
+ 42:main.c **** #define ERASE_OUT NRK_DEBUG_1
+ 43:main.c ****
+ 44:main.c **** #define DEVIATION 10
+ 45:main.c **** uint16_t z_baseline, x_baseline, y_baseline;
+ 46:main.c ****
+ 47:main.c **** /* controller tx slots --> base station rx slots */
+ 48:main.c **** #define C1
+ 49:main.c ****
+ 50:main.c **** #ifdef C1
+ 51:main.c **** #define MY_TX 2
+ 52:main.c **** #define MY_RX 5
+ 53:main.c **** #endif
+ 54:main.c ****
+ 55:main.c **** #ifdef C2
+ 56:main.c **** #define MY_TX 4
+ 57:main.c **** #define MY_RX 7
+ 58:main.c **** #endif
+ 59:main.c ****
+ 60:main.c **** #ifdef C3
+ 61:main.c **** #define MY_TX 6
+ 62:main.c **** #define MY_RX 9
+ 63:main.c **** #endif
+ 64:main.c ****
+ 65:main.c **** #ifdef C4
+ 66:main.c **** #define MY_TX 8
+ 67:main.c **** #define MY_RX 11
+ 68:main.c **** #endif
+ 69:main.c ****
+ 70:main.c **** #define ALL_RX 3
+ 71:main.c ****
+ 72:main.c **** /* game states and controller tracking */
+ 73:main.c ****
+ 74:main.c **** uint8_t state, player_num;
+ 75:main.c ****
+ 76:main.c **** #define SYNC 1
+ 77:main.c **** #define SELECT (1<<1)
+ 78:main.c **** #define PREGAME (1<<2)
+ 79:main.c ****
+ 80:main.c **** /* monome helper functions */
+ 81:main.c ****
+ 82:main.c **** #define type(x) (sizeof(x) + PKT_DATA_START)
+ 83:main.c ****
+ 84:main.c **** typedef struct{
+ 85:main.c **** uint8_t player;
+ 86:main.c **** } monome_comm_sync_pkt;
+ 87:main.c ****
+ 88:main.c **** monome_comm_sync_pkt sync_pkt_tx, sync_pkt_rx;
+ 89:main.c ****
+ 90:main.c **** inline void monome_set_player_num();
+ 91:main.c **** inline void monome_setup_system();
+ 92:main.c **** inline void monome_comm_init();
+ 93:main.c ****
+ 94:main.c **** uint8_t tx_len;
+ 95:main.c ****
+ 96:main.c **** /* task setup */
+ 97:main.c ****
+ 98:main.c **** NRK_STK CommStack[NRK_APP_STACKSIZE];
+ 99:main.c **** nrk_task_type CommTask;
+ 100:main.c **** void comm_task(void);
+ 101:main.c ****
+ 102:main.c **** inline void monome_comm_init();
+ 103:main.c **** void nrk_create_taskset();
+ 104:main.c ****
+ 105:main.c **** uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+ 106:main.c **** uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+ 107:main.c ****
+ 108:main.c **** /* monome sketch-it functions */
+ 109:main.c **** void monome_move(uint8_t direction);
+ 110:main.c **** void monome_draw();
+ 111:main.c **** void monome_erase();
+ 112:main.c ****
+ 113:main.c **** void nrk_register_drivers();
+ 114:main.c **** uint8_t kill_stack(uint8_t val);
+ 115:main.c ****
+ 116:main.c **** int
+ 117:main.c **** main ()
+ 118:main.c **** {
+ 119:main.c **** uint8_t t;
+ 120:main.c **** nrk_setup_ports();
+ 121:main.c **** //nrk_setup_uart(UART_BAUDRATE_115K2);
+ 122:main.c ****
+ 123:main.c **** /* output pins */
+ 124:main.c **** nrk_gpio_direction(NRK_UART0_RXD, NRK_PIN_OUTPUT);
+ 125:main.c **** nrk_gpio_direction(NRK_UART0_TXD, NRK_PIN_OUTPUT);
+ 126:main.c **** nrk_gpio_direction(NRK_UART1_RXD, NRK_PIN_OUTPUT);
+ 127:main.c **** nrk_gpio_direction(NRK_UART1_TXD, NRK_PIN_OUTPUT);
+ 128:main.c **** nrk_gpio_direction(NRK_DEBUG_0, NRK_PIN_OUTPUT);
+ 129:main.c **** nrk_gpio_direction(NRK_DEBUG_1, NRK_PIN_OUTPUT);
+ 130:main.c ****
+ 131:main.c **** /* button input pins */
+ 132:main.c **** nrk_gpio_direction(NRK_DEBUG_2, NRK_PIN_INPUT);
+ 133:main.c **** nrk_gpio_direction(NRK_DEBUG_3, NRK_PIN_INPUT);
+ 134:main.c ****
+ 135:main.c **** /* configure interrupts */
+ 136:main.c **** nrk_ext_int_configure(DRAW_INT, NRK_RISING_EDGE,
monome_draw);
+ 137:main.c **** nrk_ext_int_configure(ERASE_INT, NRK_RISING_EDGE,
monome_erase);
+ 138:main.c ****
+ 139:main.c **** //nrk_gpio_clr(IRQ);
+ 140:main.c **** nrk_gpio_clr(UP);
+ 141:main.c **** nrk_gpio_clr(DOWN);
+ 142:main.c **** nrk_gpio_clr(LEFT);
+ 143:main.c **** nrk_gpio_clr(RIGHT);
+ 144:main.c **** nrk_gpio_clr(DRAW_OUT);
+ 145:main.c **** nrk_gpio_clr(ERASE_OUT);
+ 146:main.c ****
+ 147:main.c **** //printf( PSTR("starting...\r\n") );
+ 148:main.c ****
+ 149:main.c **** nrk_init();
+ 150:main.c **** nrk_time_set(0,0);
+ 151:main.c ****
+ 152:main.c **** nrk_register_drivers();
+ 153:main.c **** nrk_create_taskset ();
+ 154:main.c **** nrk_start();
+ 155:main.c ****
+ 156:main.c **** return 0;
+ 157:main.c **** }
+ 158:main.c ****
+ 159:main.c **** void main_task()
+ 160:main.c **** {
+ 161:main.c **** uint16_t cnt, calibration;
+ 162:main.c **** int8_t i,fd,val;
+ 163:main.c **** uint16_t x_val, y_val, z_val;
+ 164:main.c ****
+ 165:main.c **** //printf( "My node's address is %d\r\n",NODE_ADDR
);
+ 166:main.c ****
+ 167:main.c **** //printf( "Task1 PID=%d\r\n",nrk_get_pid());
+ 168:main.c ****
+ 169:main.c **** //nrk_gpio_clr(IRQ);
+ 170:main.c **** nrk_gpio_clr(UP);
+ 171:main.c **** nrk_gpio_clr(DOWN);
+ 172:main.c **** nrk_gpio_clr(LEFT);
+ 173:main.c **** nrk_gpio_clr(RIGHT);
+ 174:main.c **** nrk_gpio_clr(DRAW_OUT);
+ 175:main.c **** nrk_gpio_clr(ERASE_OUT);
+ 176:main.c ****
+ 177:main.c **** nrk_ext_int_enable(DRAW_INT);
+ 178:main.c **** nrk_ext_int_enable(ERASE_INT);
+ 179:main.c ****
+ 180:main.c **** x_baseline = 0;
+ 181:main.c **** y_baseline = 0;
+ 182:main.c **** z_baseline = 0;
+ 183:main.c **** cnt=0;
+ 184:main.c **** calibration = 1;
+ 185:main.c **** while(1) {
+ 186:main.c **** // Open ADC device as read
+ 187:main.c **** fd=nrk_open(FIREFLY_SENSOR_BASIC,READ);
+ 188:main.c **** if(fd==NRK_ERROR) nrk_kprintf(PSTR("Failed to
open sensor driver\r\n"));
+ 189:main.c **** nrk_led_toggle(BLUE_LED);
+ 190:main.c **** /* read x value */
+ 191:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_X);
+ 192:main.c **** val=nrk_read(fd,&x_val,2);
+ 193:main.c ****
+ 194:main.c **** /* read y value */
+ 195:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Y);
+ 196:main.c **** val=nrk_read(fd,&y_val,2);
+ 197:main.c ****
+ 198:main.c **** /* read z value */
+ 199:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Z);
+ 200:main.c **** val=nrk_read(fd,&z_val,2);
+ 201:main.c ****
+ 202:main.c **** if(cnt > 10){
+ 203:main.c **** calibration = 0;
+ 204:main.c **** //printf( "z_baseline=%d\r\n",z_baseline);
+ 205:main.c **** //printf( "x_baseline=%d\r\n",x_baseline);
+ 206:main.c **** //printf( "y_baseline=%d\r\n",y_baseline);
+ 207:main.c **** cnt = 0;
+ 208:main.c **** }
+ 209:main.c **** /* calibration */
+ 210:main.c **** if(calibration > 0){
+ 211:main.c **** if(cnt == 0){
+ 212:main.c **** x_baseline = x_val;
+ 213:main.c **** y_baseline = y_val;
+ 214:main.c **** z_baseline = z_val;
+ 215:main.c **** }
+ 216:main.c **** else{
+ 217:main.c **** x_baseline = (x_baseline + x_val)>>1;
+ 218:main.c **** y_baseline = (y_baseline + y_val)>>1;
+ 219:main.c **** z_baseline = (z_baseline + z_val)>>1;
+ 220:main.c **** }
+ 221:main.c ****
+ 222:main.c **** cnt++;
+ 223:main.c **** }
+ 224:main.c ****
+ 225:main.c **** else{
+ 226:main.c ****
+ 227:main.c **** /*
+ 228:main.c **** * change in z value beyond threshold indicates
cursor move
+ 229:main.c **** * determine cursor direction only on this
indicator
+ 230:main.c **** */
+ 231:main.c **** if((z_val > z_baseline + DEVIATION) || z_val <
z_baseline - DEVIATION){
+ 232:main.c ****
+ 233:main.c **** //printf( "acc_z=%d",z_val);
+ 234:main.c **** //printf( " acc_x=%d",x_val);
+ 235:main.c **** //printf( " acc_y=%d\r\n",y_val);
+ 236:main.c **** if((x_val > (x_baseline + DEVIATION)) ||
(x_val < (x_baseline - DEVIATION))){
+ 237:main.c **** if(x_val > x_baseline) //nrk_kprintf(
PSTR("move down\r\n") );
+ 238:main.c **** monome_move(DOWN);
+ 239:main.c **** else //nrk_kprintf( PSTR("move up\r\n") );
+ 240:main.c **** monome_move(UP);
+ 241:main.c **** }
+ 242:main.c **** if((y_val > (y_baseline + DEVIATION)) ||
(y_val < (y_baseline - DEVIATION))){
+ 243:main.c **** if(y_val > y_baseline) //nrk_kprintf(
PSTR("move right\r\n") );
+ 244:main.c **** monome_move(RIGHT);
+ 245:main.c **** else //nrk_kprintf( PSTR("move left\r\n") );
+ 246:main.c **** monome_move(LEFT);
+ 247:main.c **** }
+ 248:main.c **** }
+ 249:main.c **** else {
+ 250:main.c **** //nrk_kprintf( PSTR("no move\r\n") );
+ 251:main.c **** ;
+ 252:main.c **** }
+ 253:main.c **** }
+ 254:main.c ****
+ 255:main.c **** nrk_close(fd);
+ 256:main.c **** nrk_wait_until_next_period();
+ 257:main.c ****
+ 258:main.c **** }
+ 259:main.c **** }
+ 260:main.c ****
+ 261:main.c ****
+ 262:main.c **** void comm_task()
+ 263:main.c **** {
+ 264:main.c **** //uint8_t j, i;
+ 265:main.c **** uint8_t *local_rx_buf;
+ 266:main.c **** uint8_t length,slot;
+ 267:main.c **** int8_t rssi;
+ 268:main.c ****
+ 269:main.c **** monome_comm_init();
+ 270:main.c **** monome_setup_system();
+ 271:main.c ****
+ 272:main.c **** while(!rtl_ready()) nrk_wait_until_next_period();
+ 273:main.c ****
+ 274:main.c **** while(1){
+ 275:main.c **** if( rtl_rx_pkt_check()!=0 )
+ 276:main.c **** {
+ 277:main.c **** //nrk_led_set(BLUE_LED);
+ 278:main.c **** local_rx_buf=rtl_rx_pkt_get(&length, &rssi,
&slot);
+ 279:main.c **** printf( "Got Packet on slot %d %d:
\r\n",slot,length );
+ 280:main.c **** if(length == type(monome_comm_sync_pkt)){
+ 281:main.c **** if(state & SYNC){
+ 282:main.c **** //memcpy(&rx_buf[PKT_DATA_START],
&sync_pkt_rx, sizeof(monome_comm_sync_pkt));
+ 283:main.c **** player_num = local_rx_buf[PKT_DATA_START];
+ 284:main.c **** monome_set_player_num();
+ 285:main.c **** rtl_rx_pkt_release();
+ 286:main.c **** }
+ 287:main.c **** }
+ 288:main.c **** }
+ 289:main.c **** if(state & SYNC){
+ 290:main.c **** printf("waiting to sync\r\n");
+ 291:main.c **** while( rtl_tx_pkt_check(MY_TX)!=0 );
+ 292:main.c **** memcpy(&tx_buf[PKT_DATA_START], &sync_pkt_tx,
sizeof(monome_comm_sync_pkt));
+ 293:main.c **** tx_len = type(monome_comm_sync_pkt);
+ 294:main.c **** rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ 295:main.c **** rtl_wait_until_tx_done(MY_TX);
+ 296:main.c **** }
+ 297:main.c ****
+ 298:main.c **** else{
+ 299:main.c **** printf("synced as player %d\r\n", player_num);
+ 300:main.c **** }
+ 301:main.c **** nrk_wait_until_next_period();
+ 302:main.c **** }
+ 303:main.c **** }
+ 304:main.c ****
+ 305:main.c **** void
+ 306:main.c **** nrk_create_taskset()
+ 307:main.c **** {
+ 308:main.c ****
+ 309:main.c ****
+ 310:main.c **** CommTask.task = comm_task;
+ 311:main.c **** CommTask.Ptos = (void *)
&CommStack[NRK_APP_STACKSIZE-1];
+ 312:main.c **** CommTask.Pbos = (void *) &CommStack[0];
+ 313:main.c **** CommTask.prio = 2;
+ 314:main.c **** CommTask.FirstActivation = TRUE;
+ 315:main.c **** CommTask.Type = BASIC_TASK;
+ 316:main.c **** CommTask.SchType = PREEMPTIVE;
+ 317:main.c **** CommTask.period.secs = 1;
+ 318:main.c **** CommTask.period.nano_secs = 500*NANOS_PER_MS;
+ 319:main.c **** CommTask.cpu_reserve.secs = 0;
+ 320:main.c **** CommTask.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ 321:main.c **** CommTask.offset.secs = 0;
+ 322:main.c **** CommTask.offset.nano_secs= 0;
+ 323:main.c **** nrk_activate_task (&CommTask);
+ 324:main.c ****
+ 325:main.c **** MainTask.task = main_task;
+ 326:main.c **** nrk_task_set_stk( &MainTask, MainStack,
NRK_APP_STACKSIZE);
+ 327:main.c **** MainTask.prio = 1;
+ 328:main.c **** MainTask.FirstActivation = TRUE;
+ 329:main.c **** MainTask.Type = BASIC_TASK;
+ 330:main.c **** MainTask.SchType = PREEMPTIVE;
+ 331:main.c **** MainTask.period.secs = 1;
+ 332:main.c **** MainTask.period.nano_secs = 500*NANOS_PER_MS;
//*NANOS_PER_MS;
+ 333:main.c **** MainTask.cpu_reserve.secs = 1;
+ 334:main.c **** MainTask.cpu_reserve.nano_secs = 0*NANOS_PER_MS;
+ 335:main.c **** MainTask.offset.secs = 0;
+ 336:main.c **** MainTask.offset.nano_secs= 0;
+ 337:main.c **** nrk_activate_task (&MainTask);
+ 338:main.c ****
+ 339:main.c ****
+ 340:main.c **** printf ("Create done\r\n");
+ 341:main.c **** }
+ 342:main.c ****
+ 343:main.c **** inline void monome_comm_init(){
+ 344:main.c **** rtl_init (RTL_MOBILE);
+ 345:main.c ****
+ 346:main.c **** /* rx schedules */
+ 347:main.c **** rtl_set_schedule( RTL_RX, MY_RX, 1 );
+ 348:main.c **** rtl_set_schedule( RTL_RX, ALL_RX, 1 );
+ 349:main.c ****
+ 350:main.c **** /* tx schedules */
+ 351:main.c **** rtl_set_schedule( RTL_TX, MY_TX, 1 );
+ 352:main.c ****
+ 353:main.c **** rtl_start();
+ 354:main.c **** rtl_rx_pkt_set_buffer(rx_buf,
RF_MAX_PAYLOAD_SIZE);
+ 355:main.c **** }
+ 356:main.c ****
+ 357:main.c **** inline void monome_setup_system(){
+ 150 .LM0:
+ 151 .LFBB1:
+ 152 /* prologue: frame size=0 */
+ 153 /* prologue end (size=0) */
+ 358:main.c **** state = 0 | SYNC;
+ 155 .LM1:
+ 156 0000 81E0 ldi r24,lo8(1)
+ 157 0002 8093 0000 sts state,r24
+ 359:main.c **** player_num = -1;
+ 159 .LM2:
+ 160 0006 8FEF ldi r24,lo8(-1)
+ 161 0008 8093 0000 sts player_num,r24
+ 360:main.c **** sync_pkt_tx.player = -1;
+ 163 .LM3:
+ 164 000c 8093 0000 sts sync_pkt_tx,r24
+ 165 /* epilogue: frame size=0 */
+ 166 0010 0895 ret
+ 167 /* epilogue end (size=1) */
+ 168 /* function monome_setup_system size 9 (8) */
+ 170 .Lscope1:
+ 172 .stabd 78,0,0
+ 174 .global monome_erase
+ 176 monome_erase:
+ 177 .stabd 46,0,0
+ 361:main.c ****
+ 362:main.c **** }
+ 363:main.c ****
+ 364:main.c **** inline void monome_set_player_num(){
+ 365:main.c **** printf("setting player\r\n");
+ 366:main.c **** //player_num = sync_pkt_rx.player;
+ 367:main.c **** printf("player number: %d\r\n", player_num);
+ 368:main.c **** switch (player_num) {
+ 369:main.c **** case 0:
+ 370:main.c **** nrk_led_set(RED_LED);
+ 371:main.c **** break;
+ 372:main.c **** case 1:
+ 373:main.c **** nrk_led_set(GREEN_LED);
+ 374:main.c **** break;
+ 375:main.c **** case 2:
+ 376:main.c **** nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);
+ 377:main.c **** break;
+ 378:main.c **** case 3:
+ 379:main.c **** nrk_led_set(BLUE_LED);
+ 380:main.c **** break;
+ 381:main.c **** default:
+ 382:main.c **** break;
+ 383:main.c **** }
+ 384:main.c **** state = 0 | SELECT;
+ 385:main.c **** }
+ 386:main.c ****
+ 387:main.c **** void nrk_register_drivers()
+ 388:main.c **** {
+ 389:main.c **** int8_t val;
+ 390:main.c ****
+ 391:main.c **** // Register the Basic FireFly Sensor device driver
+ 392:main.c **** // Make sure to add:
+ 393:main.c **** // #define NRK_MAX_DRIVER_CNT
+ 394:main.c **** // in nrk_cfg.h
+ 395:main.c **** // Make sure to add:
+ 396:main.c **** // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+ 397:main.c **** // in makefile
+ 398:main.c **** val=nrk_register_driver(
&dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ 399:main.c **** if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to
load my ADC driver\r\n") );
+ 400:main.c ****
+ 401:main.c **** }
+ 402:main.c ****
+ 403:main.c **** void monome_move(uint8_t direction){
+ 404:main.c **** nrk_gpio_set(direction);
+ 405:main.c **** //nrk_gpio_set(IRQ);
+ 406:main.c **** nrk_spin_wait_us(100000);
+ 407:main.c **** //nrk_gpio_clr(IRQ);
+ 408:main.c **** nrk_gpio_clr(direction);
+ 409:main.c **** }
+ 410:main.c ****
+ 411:main.c **** void monome_draw(){
+ 412:main.c **** while(nrk_gpio_get(DRAW)); //debounce
+ 413:main.c **** //nrk_kprintf( PSTR("draw\r\n") );
+ 414:main.c **** nrk_led_toggle(GREEN_LED);
+ 415:main.c **** nrk_gpio_set(DRAW_OUT);
+ 416:main.c **** nrk_spin_wait_us(90000);
+ 417:main.c **** nrk_gpio_clr(DRAW_OUT);
+ 418:main.c **** }
+ 419:main.c ****
+ 420:main.c **** void monome_erase(){
+ 179 .LM4:
+ 180 .LFBB2:
+ 181 /* prologue: frame size=0 */
+ 182 0012 1F93 push r17
+ 183 /* prologue end (size=1) */
+ 421:main.c **** while(nrk_gpio_get(ERASE)); //debounce
+ 185 .LM5:
+ 186 0014 1091 0000 lds r17,NRK_DEBUG_3
+ 187 .L5:
+ 189 .LM6:
+ 190 0018 812F mov r24,r17
+ 191 001a 0E94 0000 call nrk_gpio_get
+ 192 001e 8823 tst r24
+ 193 0020 01F4 brne .L5
+ 422:main.c **** //nrk_kprintf( PSTR("erase\r\n") );
+ 423:main.c **** nrk_led_toggle(RED_LED);
+ 195 .LM7:
+ 196 0022 83E0 ldi r24,lo8(3)
+ 197 0024 90E0 ldi r25,hi8(3)
+ 198 0026 0E94 0000 call nrk_led_toggle
+ 424:main.c **** nrk_gpio_set(ERASE_OUT);
+ 200 .LM8:
+ 201 002a 1091 0000 lds r17,NRK_DEBUG_1
+ 202 002e 812F mov r24,r17
+ 203 0030 0E94 0000 call nrk_gpio_set
+ 425:main.c **** nrk_spin_wait_us(90000);
+ 205 .LM9:
+ 206 0034 80E9 ldi r24,lo8(24464)
+ 207 0036 9FE5 ldi r25,hi8(24464)
+ 208 0038 0E94 0000 call nrk_spin_wait_us
+ 426:main.c **** nrk_gpio_clr(ERASE_OUT);
+ 210 .LM10:
+ 211 003c 812F mov r24,r17
+ 212 003e 0E94 0000 call nrk_gpio_clr
+ 213 /* epilogue: frame size=0 */
+ 214 0042 1F91 pop r17
+ 215 0044 0895 ret
+ 216 /* epilogue end (size=2) */
+ 217 /* function monome_erase size 26 (23) */
+ 219 .Lscope2:
+ 221 .stabd 78,0,0
+ 223 .global monome_draw
+ 225 monome_draw:
+ 226 .stabd 46,0,0
+ 228 .LM11:
+ 229 .LFBB3:
+ 230 /* prologue: frame size=0 */
+ 231 0046 1F93 push r17
+ 232 /* prologue end (size=1) */
+ 234 .LM12:
+ 235 0048 1091 0000 lds r17,NRK_DEBUG_2
+ 236 .L12:
+ 238 .LM13:
+ 239 004c 812F mov r24,r17
+ 240 004e 0E94 0000 call nrk_gpio_get
+ 241 0052 8823 tst r24
+ 242 0054 01F4 brne .L12
+ 244 .LM14:
+ 245 0056 82E0 ldi r24,lo8(2)
+ 246 0058 90E0 ldi r25,hi8(2)
+ 247 005a 0E94 0000 call nrk_led_toggle
+ 249 .LM15:
+ 250 005e 1091 0000 lds r17,NRK_UART0_TXD
+ 251 0062 812F mov r24,r17
+ 252 0064 0E94 0000 call nrk_gpio_set
+ 254 .LM16:
+ 255 0068 80E9 ldi r24,lo8(24464)
+ 256 006a 9FE5 ldi r25,hi8(24464)
+ 257 006c 0E94 0000 call nrk_spin_wait_us
+ 259 .LM17:
+ 260 0070 812F mov r24,r17
+ 261 0072 0E94 0000 call nrk_gpio_clr
+ 262 /* epilogue: frame size=0 */
+ 263 0076 1F91 pop r17
+ 264 0078 0895 ret
+ 265 /* epilogue end (size=2) */
+ 266 /* function monome_draw size 26 (23) */
+ 268 .Lscope3:
+ 270 .stabd 78,0,0
+ 273 .global monome_move
+ 275 monome_move:
+ 276 .stabd 46,0,0
+ 278 .LM18:
+ 279 .LFBB4:
+ 280 /* prologue: frame size=0 */
+ 281 007a 1F93 push r17
+ 282 /* prologue end (size=1) */
+ 283 007c 182F mov r17,r24
+ 285 .LM19:
+ 286 007e 0E94 0000 call nrk_gpio_set
+ 288 .LM20:
+ 289 0082 80EA ldi r24,lo8(-31072)
+ 290 0084 96E8 ldi r25,hi8(-31072)
+ 291 0086 0E94 0000 call nrk_spin_wait_us
+ 293 .LM21:
+ 294 008a 812F mov r24,r17
+ 295 008c 0E94 0000 call nrk_gpio_clr
+ 296 /* epilogue: frame size=0 */
+ 297 0090 1F91 pop r17
+ 298 0092 0895 ret
+ 299 /* epilogue end (size=2) */
+ 300 /* function monome_move size 13 (10) */
+ 302 .Lscope4:
+ 304 .stabd 78,0,0
+ 306 .global nrk_register_drivers
+ 308 nrk_register_drivers:
+ 309 .stabd 46,0,0
+ 311 .LM22:
+ 312 .LFBB5:
+ 313 /* prologue: frame size=0 */
+ 314 /* prologue end (size=0) */
+ 316 .LM23:
+ 317 0094 61E0 ldi r22,lo8(1)
+ 318 0096 80E0 ldi r24,lo8(pm(dev_manager_ff_sensors))
+ 319 0098 90E0 ldi r25,hi8(pm(dev_manager_ff_sensors))
+ 320 009a 0E94 0000 call nrk_register_driver
+ 322 .LM24:
+ 323 009e 8F3F cpi r24,lo8(-1)
+ 324 00a0 01F4 brne .L22
+ 326 .LM25:
+ 327 00a2 80E0 ldi r24,lo8(__c.2625)
+ 328 00a4 90E0 ldi r25,hi8(__c.2625)
+ 329 00a6 0E94 0000 call nrk_kprintf
+ 330 .L22:
+ 331 00aa 0895 ret
+ 332 /* epilogue: frame size=0 */
+ 333 /* epilogue: noreturn */
+ 334 /* epilogue end (size=0) */
+ 335 /* function nrk_register_drivers size 12 (12) */
+ 337 .Lscope5:
+ 339 .stabd 78,0,0
+ 340 .data
+ 341 .LC0:
+ 342 0000 7365 7474 .string "setting player\r"
+ 342 696E 6720
+ 342 706C 6179
+ 342 6572 0D00
+ 343 .LC1:
+ 344 0010 706C 6179 .string "player number: %d\r\n"
+ 344 6572 206E
+ 344 756D 6265
+ 344 723A 2025
+ 344 640D 0A00
+ 345 .text
+ 347 .global monome_set_player_num
+ 349 monome_set_player_num:
+ 350 .stabd 46,0,0
+ 352 .LM26:
+ 353 .LFBB6:
+ 354 /* prologue: frame size=0 */
+ 355 /* prologue end (size=0) */
+ 357 .LM27:
+ 358 00ac 80E0 ldi r24,lo8(.LC0)
+ 359 00ae 90E0 ldi r25,hi8(.LC0)
+ 360 00b0 0E94 0000 call puts
+ 362 .LM28:
+ 363 00b4 8091 0000 lds r24,player_num
+ 364 00b8 9927 clr r25
+ 365 00ba 9F93 push r25
+ 366 00bc 8F93 push r24
+ 367 00be 80E0 ldi r24,lo8(.LC1)
+ 368 00c0 90E0 ldi r25,hi8(.LC1)
+ 369 00c2 9F93 push r25
+ 370 00c4 8F93 push r24
+ 371 00c6 0E94 0000 call printf
+ 373 .LM29:
+ 374 00ca 0F90 pop __tmp_reg__
+ 375 00cc 0F90 pop __tmp_reg__
+ 376 00ce 0F90 pop __tmp_reg__
+ 377 00d0 0F90 pop __tmp_reg__
+ 378 00d2 8091 0000 lds r24,player_num
+ 379 00d6 8130 cpi r24,lo8(1)
+ 380 00d8 01F0 breq .L31
+ 382 .LM30:
+ 383 00da 8130 cpi r24,lo8(1)
+ 384 00dc 00F0 brlo .L25
+ 385 00de 8230 cpi r24,lo8(2)
+ 386 00e0 01F0 breq .L27
+ 387 00e2 8330 cpi r24,lo8(3)
+ 388 00e4 01F4 brne .L24
+ 389 00e6 00C0 rjmp .L28
+ 390 .L25:
+ 392 .LM31:
+ 393 00e8 83E0 ldi r24,lo8(3)
+ 394 00ea 90E0 ldi r25,hi8(3)
+ 395 00ec 00C0 rjmp .L30
+ 396 .L27:
+ 398 .LM32:
+ 399 00ee 83E0 ldi r24,lo8(3)
+ 400 00f0 90E0 ldi r25,hi8(3)
+ 401 00f2 0E94 0000 call nrk_led_set
+ 402 .L31:
+ 403 00f6 82E0 ldi r24,lo8(2)
+ 404 00f8 90E0 ldi r25,hi8(2)
+ 405 00fa 00C0 rjmp .L30
+ 406 .L28:
+ 408 .LM33:
+ 409 00fc 81E0 ldi r24,lo8(1)
+ 410 00fe 90E0 ldi r25,hi8(1)
+ 411 .L30:
+ 412 0100 0E94 0000 call nrk_led_set
+ 413 .L24:
+ 415 .LM34:
+ 416 0104 82E0 ldi r24,lo8(2)
+ 417 0106 8093 0000 sts state,r24
+ 418 /* epilogue: frame size=0 */
+ 419 010a 0895 ret
+ 420 /* epilogue end (size=1) */
+ 421 /* function monome_set_player_num size 48 (47) */
+ 423 .Lscope6:
+ 425 .stabd 78,0,0
+ 427 .global monome_comm_init
+ 429 monome_comm_init:
+ 430 .stabd 46,0,0
+ 432 .LM35:
+ 433 .LFBB7:
+ 434 /* prologue: frame size=0 */
+ 435 /* prologue end (size=0) */
+ 437 .LM36:
+ 438 010c 80E0 ldi r24,lo8(0)
+ 439 010e 0E94 0000 call rtl_init
+ 441 .LM37:
+ 442 0112 41E0 ldi r20,lo8(1)
+ 443 0114 65E0 ldi r22,lo8(5)
+ 444 0116 80E0 ldi r24,lo8(0)
+ 445 0118 0E94 0000 call rtl_set_schedule
+ 447 .LM38:
+ 448 011c 41E0 ldi r20,lo8(1)
+ 449 011e 63E0 ldi r22,lo8(3)
+ 450 0120 80E0 ldi r24,lo8(0)
+ 451 0122 0E94 0000 call rtl_set_schedule
+ 453 .LM39:
+ 454 0126 41E0 ldi r20,lo8(1)
+ 455 0128 62E0 ldi r22,lo8(2)
+ 456 012a 81E0 ldi r24,lo8(1)
+ 457 012c 0E94 0000 call rtl_set_schedule
+ 459 .LM40:
+ 460 0130 0E94 0000 call rtl_start
+ 462 .LM41:
+ 463 0134 64E7 ldi r22,lo8(116)
+ 464 0136 80E0 ldi r24,lo8(rx_buf)
+ 465 0138 90E0 ldi r25,hi8(rx_buf)
+ 466 013a 0E94 0000 call rtl_rx_pkt_set_buffer
+ 467 /* epilogue: frame size=0 */
+ 468 013e 0895 ret
+ 469 /* epilogue end (size=1) */
+ 470 /* function monome_comm_init size 26 (25) */
+ 472 .Lscope7:
+ 474 .stabd 78,0,0
+ 475 .data
+ 476 .LC2:
+ 477 0024 4372 6561 .string "Create done\r"
+ 477 7465 2064
+ 477 6F6E 650D
+ 477 00
+ 478 .text
+ 480 .global nrk_create_taskset
+ 482 nrk_create_taskset:
+ 483 .stabd 46,0,0
+ 485 .LM42:
+ 486 .LFBB8:
+ 487 /* prologue: frame size=0 */
+ 488 0140 6F92 push r6
+ 489 0142 7F92 push r7
+ 490 0144 8F92 push r8
+ 491 0146 9F92 push r9
+ 492 0148 AF92 push r10
+ 493 014a BF92 push r11
+ 494 014c DF92 push r13
+ 495 014e EF92 push r14
+ 496 0150 FF92 push r15
+ 497 0152 0F93 push r16
+ 498 0154 1F93 push r17
+ 499 /* prologue end (size=11) */
+ 501 .LM43:
+ 502 0156 80E0 ldi r24,lo8(pm(comm_task))
+ 503 0158 90E0 ldi r25,hi8(pm(comm_task))
+ 504 015a 9093 0000 sts (CommTask+5)+1,r25
+ 505 015e 8093 0000 sts CommTask+5,r24
+ 507 .LM44:
+ 508 0162 80E0 ldi r24,lo8(CommStack+127)
+ 509 0164 90E0 ldi r25,hi8(CommStack+127)
+ 510 0166 9093 0000 sts (CommTask+1)+1,r25
+ 511 016a 8093 0000 sts CommTask+1,r24
+ 513 .LM45:
+ 514 016e 80E0 ldi r24,lo8(CommStack)
+ 515 0170 90E0 ldi r25,hi8(CommStack)
+ 516 0172 9093 0000 sts (CommTask+3)+1,r25
+ 517 0176 8093 0000 sts CommTask+3,r24
+ 519 .LM46:
+ 520 017a 82E0 ldi r24,lo8(2)
+ 521 017c 8093 0000 sts CommTask+8,r24
+ 523 .LM47:
+ 524 0180 DD24 clr r13
+ 525 0182 D394 inc r13
+ 526 0184 D092 0000 sts CommTask+7,r13
+ 528 .LM48:
+ 529 0188 D092 0000 sts CommTask+9,r13
+ 531 .LM49:
+ 532 018c D092 0000 sts CommTask+10,r13
+ 534 .LM50:
+ 535 0190 21E0 ldi r18,lo8(1)
+ 536 0192 E22E mov r14,r18
+ 537 0194 F12C mov r15,__zero_reg__
+ 538 0196 012D mov r16,__zero_reg__
+ 539 0198 112D mov r17,__zero_reg__
+ 540 019a E092 0000 sts CommTask+11,r14
+ 541 019e F092 0000 sts (CommTask+11)+1,r15
+ 542 01a2 0093 0000 sts (CommTask+11)+2,r16
+ 543 01a6 1093 0000 sts (CommTask+11)+3,r17
+ 545 .LM51:
+ 546 01aa 812C mov r8,__zero_reg__
+ 547 01ac 95E6 ldi r25,hi8(500000000)
+ 548 01ae 992E mov r9,r25
+ 549 01b0 9DEC ldi r25,hlo8(500000000)
+ 550 01b2 A92E mov r10,r25
+ 551 01b4 9DE1 ldi r25,hhi8(500000000)
+ 552 01b6 B92E mov r11,r25
+ 553 01b8 8092 0000 sts CommTask+15,r8
+ 554 01bc 9092 0000 sts (CommTask+15)+1,r9
+ 555 01c0 A092 0000 sts (CommTask+15)+2,r10
+ 556 01c4 B092 0000 sts (CommTask+15)+3,r11
+ 558 .LM52:
+ 559 01c8 1092 0000 sts CommTask+19,__zero_reg__
+ 560 01cc 1092 0000 sts (CommTask+19)+1,__zero_reg__
+ 561 01d0 1092 0000 sts (CommTask+19)+2,__zero_reg__
+ 562 01d4 1092 0000 sts (CommTask+19)+3,__zero_reg__
+ 564 .LM53:
+ 565 01d8 80E0 ldi r24,lo8(200000000)
+ 566 01da 92EC ldi r25,hi8(200000000)
+ 567 01dc ABEE ldi r26,hlo8(200000000)
+ 568 01de BBE0 ldi r27,hhi8(200000000)
+ 569 01e0 8093 0000 sts CommTask+23,r24
+ 570 01e4 9093 0000 sts (CommTask+23)+1,r25
+ 571 01e8 A093 0000 sts (CommTask+23)+2,r26
+ 572 01ec B093 0000 sts (CommTask+23)+3,r27
+ 574 .LM54:
+ 575 01f0 1092 0000 sts CommTask+27,__zero_reg__
+ 576 01f4 1092 0000 sts (CommTask+27)+1,__zero_reg__
+ 577 01f8 1092 0000 sts (CommTask+27)+2,__zero_reg__
+ 578 01fc 1092 0000 sts (CommTask+27)+3,__zero_reg__
+ 580 .LM55:
+ 581 0200 1092 0000 sts CommTask+31,__zero_reg__
+ 582 0204 1092 0000 sts (CommTask+31)+1,__zero_reg__
+ 583 0208 1092 0000 sts (CommTask+31)+2,__zero_reg__
+ 584 020c 1092 0000 sts (CommTask+31)+3,__zero_reg__
+ 586 .LM56:
+ 587 0210 80E0 ldi r24,lo8(CommTask)
+ 588 0212 90E0 ldi r25,hi8(CommTask)
+ 589 0214 0E94 0000 call nrk_activate_task
+ 591 .LM57:
+ 592 0218 80E0 ldi r24,lo8(pm(main_task))
+ 593 021a 90E0 ldi r25,hi8(pm(main_task))
+ 594 021c 9093 0000 sts (MainTask+5)+1,r25
+ 595 0220 8093 0000 sts MainTask+5,r24
+ 597 .LM58:
+ 598 0224 80E0 ldi r24,lo8(MainTask)
+ 599 0226 682E mov r6,r24
+ 600 0228 80E0 ldi r24,hi8(MainTask)
+ 601 022a 782E mov r7,r24
+ 602 022c 40E8 ldi r20,lo8(128)
+ 603 022e 50E0 ldi r21,hi8(128)
+ 604 0230 60E0 ldi r22,lo8(MainStack)
+ 605 0232 70E0 ldi r23,hi8(MainStack)
+ 606 0234 C301 movw r24,r6
+ 607 0236 0E94 0000 call nrk_task_set_stk
+ 609 .LM59:
+ 610 023a D092 0000 sts MainTask+8,r13
+ 612 .LM60:
+ 613 023e D092 0000 sts MainTask+7,r13
+ 615 .LM61:
+ 616 0242 D092 0000 sts MainTask+9,r13
+ 618 .LM62:
+ 619 0246 D092 0000 sts MainTask+10,r13
+ 621 .LM63:
+ 622 024a E092 0000 sts MainTask+11,r14
+ 623 024e F092 0000 sts (MainTask+11)+1,r15
+ 624 0252 0093 0000 sts (MainTask+11)+2,r16
+ 625 0256 1093 0000 sts (MainTask+11)+3,r17
+ 627 .LM64:
+ 628 025a 8092 0000 sts MainTask+15,r8
+ 629 025e 9092 0000 sts (MainTask+15)+1,r9
+ 630 0262 A092 0000 sts (MainTask+15)+2,r10
+ 631 0266 B092 0000 sts (MainTask+15)+3,r11
+ 633 .LM65:
+ 634 026a E092 0000 sts MainTask+19,r14
+ 635 026e F092 0000 sts (MainTask+19)+1,r15
+ 636 0272 0093 0000 sts (MainTask+19)+2,r16
+ 637 0276 1093 0000 sts (MainTask+19)+3,r17
+ 639 .LM66:
+ 640 027a 1092 0000 sts MainTask+23,__zero_reg__
+ 641 027e 1092 0000 sts (MainTask+23)+1,__zero_reg__
+ 642 0282 1092 0000 sts (MainTask+23)+2,__zero_reg__
+ 643 0286 1092 0000 sts (MainTask+23)+3,__zero_reg__
+ 645 .LM67:
+ 646 028a 1092 0000 sts MainTask+27,__zero_reg__
+ 647 028e 1092 0000 sts (MainTask+27)+1,__zero_reg__
+ 648 0292 1092 0000 sts (MainTask+27)+2,__zero_reg__
+ 649 0296 1092 0000 sts (MainTask+27)+3,__zero_reg__
+ 651 .LM68:
+ 652 029a 1092 0000 sts MainTask+31,__zero_reg__
+ 653 029e 1092 0000 sts (MainTask+31)+1,__zero_reg__
+ 654 02a2 1092 0000 sts (MainTask+31)+2,__zero_reg__
+ 655 02a6 1092 0000 sts (MainTask+31)+3,__zero_reg__
+ 657 .LM69:
+ 658 02aa C301 movw r24,r6
+ 659 02ac 0E94 0000 call nrk_activate_task
+ 661 .LM70:
+ 662 02b0 80E0 ldi r24,lo8(.LC2)
+ 663 02b2 90E0 ldi r25,hi8(.LC2)
+ 664 02b4 0E94 0000 call puts
+ 665 /* epilogue: frame size=0 */
+ 666 02b8 1F91 pop r17
+ 667 02ba 0F91 pop r16
+ 668 02bc FF90 pop r15
+ 669 02be EF90 pop r14
+ 670 02c0 DF90 pop r13
+ 671 02c2 BF90 pop r11
+ 672 02c4 AF90 pop r10
+ 673 02c6 9F90 pop r9
+ 674 02c8 8F90 pop r8
+ 675 02ca 7F90 pop r7
+ 676 02cc 6F90 pop r6
+ 677 02ce 0895 ret
+ 678 /* epilogue end (size=12) */
+ 679 /* function nrk_create_taskset size 200 (177) */
+ 681 .Lscope8:
+ 683 .stabd 78,0,0
+ 685 .global main_task
+ 687 main_task:
+ 688 .stabd 46,0,0
+ 690 .LM71:
+ 691 .LFBB9:
+ 692 /* prologue: frame size=6 */
+ 693 02d0 2F92 push r2
+ 694 02d2 3F92 push r3
+ 695 02d4 4F92 push r4
+ 696 02d6 5F92 push r5
+ 697 02d8 6F92 push r6
+ 698 02da 7F92 push r7
+ 699 02dc 9F92 push r9
+ 700 02de AF92 push r10
+ 701 02e0 BF92 push r11
+ 702 02e2 CF92 push r12
+ 703 02e4 DF92 push r13
+ 704 02e6 EF92 push r14
+ 705 02e8 FF92 push r15
+ 706 02ea 0F93 push r16
+ 707 02ec 1F93 push r17
+ 708 02ee CF93 push r28
+ 709 02f0 DF93 push r29
+ 710 02f2 CDB7 in r28,__SP_L__
+ 711 02f4 DEB7 in r29,__SP_H__
+ 712 02f6 2697 sbiw r28,6
+ 713 02f8 0FB6 in __tmp_reg__,__SREG__
+ 714 02fa F894 cli
+ 715 02fc DEBF out __SP_H__,r29
+ 716 02fe 0FBE out __SREG__,__tmp_reg__
+ 717 0300 CDBF out __SP_L__,r28
+ 718 /* prologue end (size=25) */
+ 720 .LM72:
+ 721 0302 9090 0000 lds r9,NRK_UART0_RXD
+ 722 0306 892D mov r24,r9
+ 723 0308 0E94 0000 call nrk_gpio_clr
+ 725 .LM73:
+ 726 030c A090 0000 lds r10,NRK_DEBUG_0
+ 727 0310 8A2D mov r24,r10
+ 728 0312 0E94 0000 call nrk_gpio_clr
+ 730 .LM74:
+ 731 0316 B090 0000 lds r11,NRK_UART1_TXD
+ 732 031a 8B2D mov r24,r11
+ 733 031c 0E94 0000 call nrk_gpio_clr
+ 735 .LM75:
+ 736 0320 0091 0000 lds r16,NRK_UART1_RXD
+ 737 0324 802F mov r24,r16
+ 738 0326 0E94 0000 call nrk_gpio_clr
+ 740 .LM76:
+ 741 032a 8091 0000 lds r24,NRK_UART0_TXD
+ 742 032e 0E94 0000 call nrk_gpio_clr
+ 744 .LM77:
+ 745 0332 8091 0000 lds r24,NRK_DEBUG_1
+ 746 0336 0E94 0000 call nrk_gpio_clr
+ 748 .LM78:
+ 749 033a 80E0 ldi r24,lo8(0)
+ 750 033c 0E94 0000 call nrk_ext_int_enable
+ 752 .LM79:
+ 753 0340 81E0 ldi r24,lo8(1)
+ 754 0342 0E94 0000 call nrk_ext_int_enable
+ 756 .LM80:
+ 757 0346 1092 0000 sts (x_baseline)+1,__zero_reg__
+ 758 034a 1092 0000 sts x_baseline,__zero_reg__
+ 760 .LM81:
+ 761 034e 1092 0000 sts (y_baseline)+1,__zero_reg__
+ 762 0352 1092 0000 sts y_baseline,__zero_reg__
+ 764 .LM82:
+ 765 0356 1092 0000 sts (z_baseline)+1,__zero_reg__
+ 766 035a 1092 0000 sts z_baseline,__zero_reg__
+ 767 035e EE24 clr r14
+ 768 0360 FF24 clr r15
+ 769 0362 11E0 ldi r17,lo8(1)
+ 770 0364 C12E mov r12,r17
+ 771 0366 D12C mov r13,__zero_reg__
+ 773 .LM83:
+ 774 0368 1E01 movw r2,r28
+ 775 036a 0894 sec
+ 776 036c 211C adc r2,__zero_reg__
+ 777 036e 311C adc r3,__zero_reg__
+ 779 .LM84:
+ 780 0370 B3E0 ldi r27,lo8(3)
+ 781 0372 4B2E mov r4,r27
+ 782 0374 512C mov r5,__zero_reg__
+ 783 0376 4C0E add r4,r28
+ 784 0378 5D1E adc r5,r29
+ 786 .LM85:
+ 787 037a A5E0 ldi r26,lo8(5)
+ 788 037c 6A2E mov r6,r26
+ 789 037e 712C mov r7,__zero_reg__
+ 790 0380 6C0E add r6,r28
+ 791 0382 7D1E adc r7,r29
+ 792 .L37:
+ 794 .LM86:
+ 795 0384 65E0 ldi r22,lo8(5)
+ 796 0386 81E0 ldi r24,lo8(1)
+ 797 0388 0E94 0000 call nrk_open
+ 798 038c 182F mov r17,r24
+ 800 .LM87:
+ 801 038e 8F3F cpi r24,lo8(-1)
+ 802 0390 01F4 brne .L38
+ 803 0392 80E0 ldi r24,lo8(__c.2530)
+ 804 0394 90E0 ldi r25,hi8(__c.2530)
+ 805 0396 0E94 0000 call nrk_kprintf
+ 806 .L38:
+ 808 .LM88:
+ 809 039a 81E0 ldi r24,lo8(1)
+ 810 039c 90E0 ldi r25,hi8(1)
+ 811 039e 0E94 0000 call nrk_led_toggle
+ 813 .LM89:
+ 814 03a2 42E0 ldi r20,lo8(2)
+ 815 03a4 61E0 ldi r22,lo8(1)
+ 816 03a6 812F mov r24,r17
+ 817 03a8 0E94 0000 call nrk_set_status
+ 819 .LM90:
+ 820 03ac 42E0 ldi r20,lo8(2)
+ 821 03ae B101 movw r22,r2
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.map
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,2225 @@
+Archive member included because of file (symbol)
+
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ (vfprintf)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__mulsi3)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ ../../../../../src/kernel/source/nrk_scheduler.o
(__udivmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__divmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__udivmodsi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o (exit)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ main.o (__do_clear_bss)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ ../../../../../src/net/rt_link/rt_link.o
(rand)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
(strlen_P)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fdevopen)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fputc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(__iob)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ main.o (printf)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ main.o (puts)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_read_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_write_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
(calloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(malloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(memset)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
(__divmodsi4)
+
+Allocating common symbols
+Common symbol size file
+
+rx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+last_slot_time 0x8 main.o
+rtl_param 0x9 main.o
+_free_node
0x2 ../../../../../src/kernel/source/nrk.o
+app_timer0_callback
+ 0x2 main.o
+nrk_task_TCB
0x63 ../../../../../src/kernel/source/nrk.o
+cycle_callback 0x2 main.o
+next_next_wakeup
0x2 ../../../../../src/kernel/source/nrk.o
+ext_int1_callback 0x2 main.o
+tsync_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+radio_sem
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rx_pkt_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_ready 0x1 main.o
+global_cycle
0x2 ../../../../../src/net/rt_link/rt_link.o
+tsync_delay
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_task_stack 0x80 main.o
+rtl_tx_data_ready 0x4 main.o
+ext_int0_callback 0x2 main.o
+nrk_sem_list
0x3 ../../../../../src/kernel/source/nrk.o
+security_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+nrk_task_init_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+error_task 0x1 main.o
+_rtl_sync_ok 0x1 main.o
+slot_start_time
0x2 ../../../../../src/net/rt_link/rt_link.o
+z_baseline 0x2 main.o
+_rtl_contention_slots
+ 0x1 main.o
+tx_callback 0x2 main.o
+rtl_task 0x23 main.o
+rtl_tdma_tx_mask 0x4 main.o
+mdmctrl0
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rfSettings
0x9 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_abs_wakeup
0x8 ../../../../../src/net/rt_link/rt_link.o
+global_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+_nrk_time_trigger 0x1 main.o
+sync_pkt_tx 0x1 main.o
+ext_int2_callback 0x2 main.o
+_dbg_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+__brkval 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+nrk_wakeup_signal
0x1 ../../../../../src/kernel/source/nrk.o
+state 0x1 main.o
+rtl_tsync_tx 0x7 main.o
+nrk_high_ready_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+last_sync_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+pc_int0_callback 0x2 main.o
+tmp_blah
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rfRxInfo 0x9 main.o
+nrk_cur_task_prio
0x1 ../../../../../src/kernel/source/nrk.o
+_rtl_time_token_status
+ 0x1 main.o
+_nrk_cpu_state
0x1 ../../../../../src/kernel/source/nrk.o
+prev_offset
0x2 ../../../../../src/net/rt_link/rt_link.o
+player_num 0x1 main.o
+is_open
0x1 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+pkt_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_abs_tx_slot 0x2 main.o
+_head_node
0x2 ../../../../../src/kernel/source/nrk.o
+nrk_system_time
0x8 ../../../../../src/kernel/source/nrk.o
+_nrk_signal_list 0x4 main.o
+_nrk_resource_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+sync_pkt_rx 0x1 main.o
+CommStack 0x80 main.o
+channel
0x1 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+auto_ack_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_drift_rate
0x2 ../../../../../src/net/rt_link/rt_link.o
+_rtl_contention_pending
+ 0x1 main.o
+rx_buf 0x74 main.o
+current_global_slot
+
0x2 ../../../../../src/net/rt_link/rt_link.o
+nrk_cur_task_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+rtl_rx_slot 0x1 main.o
+rtl_tdma_rx_mask 0x4 main.o
+_nrk_driver_count
0x1 ../../../../../src/kernel/source/nrk_driver.o
+nrk_kernel_stk_ptr 0x2 main.o
+MainStack 0x80 main.o
+nrk_drivers
0x4 ../../../../../src/kernel/source/nrk_driver.o
+rx_callback 0x2 main.o
+rtl_rx_data_ready 0x1 main.o
+tx_buf 0x74 main.o
+rtl_abs_tx_ready 0x1 main.o
+slot_callback 0x2 main.o
+last_pkt_encrypted
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+y_baseline 0x2 main.o
+x_baseline 0x2 main.o
+nrk_high_ready_prio
+
0x1 ../../../../../src/kernel/source/nrk.o
+app_timer0_prescale
+ 0x1 main.o
+rtl_node_mode 0x1 main.o
+nrk_driver_init
0x1 ../../../../../src/kernel/source/nrk_driver.o
+abs_callback 0x2 main.o
+_tsync_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+tx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+MainTask 0x23 main.o
+_nrk_prev_timer_val
+ 0x1 main.o
+rtl_rfTxInfo 0x7 main.o
+__flp 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+error_num 0x1 main.o
+rtl_sched
0x10 ../../../../../src/net/rt_link/rt_link.o
+tx_len 0x1 main.o
+_nrk_readyQ
0x14 ../../../../../src/kernel/source/nrk.o
+rtl_sched_cache
0x20 ../../../../../src/net/rt_link/rt_link.o
+__iob 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+last_slot 0x2 main.o
+rx_ready
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+CommTask 0x23 main.o
+rtl_rx_buf 0x74 main.o
+nrk_idle_task_stk 0x80 main.o
+rtl_tx_done_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_time_token 0x1 main.o
+rtl_tx_info 0x63 main.o
+rtl_tsync_buf 0x3 main.o
+
+Discarded input sections
+
+ .stabstr 0x00000000 0x0 main.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .stabstr 0x00000000
0x0 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800200
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+LOAD main.o
+LOAD ../../../../../src/net/rt_link/rt_link.o
+LOAD ../../../../../src/net/rt_link/rtl_scheduler.o
+LOAD ../../../../../src/net/rt_link/rtl_debug.o
+LOAD ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+LOAD ../../../../../src/radio/cc2420/source/basic_rf.o
+LOAD ../../../../../src/platform/firefly2_2/source/ulib.o
+LOAD ../../../../../src/platform/firefly2_2/source/hal_wait.o
+LOAD ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+LOAD ../../../../../src/kernel/source/nrk.o
+LOAD ../../../../../src/kernel/source/nrk_stats.o
+LOAD ../../../../../src/kernel/source/nrk_error.o
+LOAD ../../../../../src/kernel/source/nrk_stack_check.o
+LOAD ../../../../../src/kernel/source/nrk_events.o
+LOAD ../../../../../src/kernel/source/nrk_task.o
+LOAD ../../../../../src/kernel/source/nrk_time.o
+LOAD ../../../../../src/kernel/source/nrk_idle_task.o
+LOAD ../../../../../src/kernel/source/nrk_scheduler.o
+LOAD ../../../../../src/kernel/source/nrk_driver.o
+LOAD ../../../../../src/kernel/source/nrk_reserve.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+LOAD ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+LOAD
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libm.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x72fe
+ *(.vectors)
+ .vectors 0x00000000 0xcc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x00000000 __vectors
+ *(.vectors)
+ 0x000000cc __ctors_start = .
+ *(.ctors)
+ 0x000000cc __ctors_end = .
+ 0x000000cc __dtors_start = .
+ *(.dtors)
+ 0x000000cc __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.progmem.gcc*)
+ .progmem.gcc_sw_table
+ 0x000000cc
0x24 ../../../../../src/kernel/source/nrk_error.o
+ *(.progmem*)
+ .progmem.data 0x000000f0 0x3e main.o
+ .progmem.data 0x0000012e
0x56 ../../../../../src/net/rt_link/rt_link.o
+ .progmem.data 0x00000184
0x1c8 ../../../../../src/kernel/source/nrk_error.o
+ .progmem.data 0x0000034c
0xf ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x0000035c . = ALIGN (0x2)
+ *fill* 0x0000035b 0x1 00
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ *(.init0)
+ .init0 0x0000035c 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000035c __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x0000035c 0xc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000368 0x1a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x00000368 __do_copy_data
+ .init4 0x00000382 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x00000382 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000392 0x8
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init9)
+ *(.text)
+ .text 0x0000039a 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000039a __vector_38
+ 0x0000039a __vector_22
+ 0x0000039a __vector_28
+ 0x0000039a __vector_34
+ 0x0000039a __vector_24
+ 0x0000039a __vector_12
+ 0x0000039a __vector_46
+ 0x0000039a __bad_interrupt
+ 0x0000039a __vector_6
+ 0x0000039a __vector_31
+ 0x0000039a __vector_35
+ 0x0000039a __vector_39
+ 0x0000039a __vector_3
+ 0x0000039a __vector_23
+ 0x0000039a __vector_30
+ 0x0000039a __vector_45
+ 0x0000039a __vector_25
+ 0x0000039a __vector_11
+ 0x0000039a __vector_19
+ 0x0000039a __vector_7
+ 0x0000039a __vector_49
+ 0x0000039a __vector_41
+ 0x0000039a __vector_43
+ 0x0000039a __vector_27
+ 0x0000039a __vector_5
+ 0x0000039a __vector_33
+ 0x0000039a __vector_47
+ 0x0000039a __vector_37
+ 0x0000039a __vector_4
+ 0x0000039a __vector_44
+ 0x0000039a __vector_21
+ 0x0000039a __vector_36
+ 0x0000039a __vector_29
+ 0x0000039a __vector_40
+ 0x0000039a __vector_8
+ 0x0000039a __vector_26
+ 0x0000039a __vector_48
+ 0x0000039a __vector_14
+ 0x0000039a __vector_10
+ 0x0000039a __vector_50
+ 0x0000039a __vector_16
+ 0x0000039a __vector_18
+ 0x0000039a __vector_20
+ 0x0000039a __vector_42
+ .text 0x0000039e 0x708 main.o
+ 0x00000432 nrk_register_drivers
+ 0x00000418 monome_move
+ 0x000003e4 monome_draw
+ 0x000003b0 monome_erase
+ 0x000004aa monome_comm_init
+ 0x00000962 comm_task
+ 0x0000044a monome_set_player_num
+ 0x000004de nrk_create_taskset
+ 0x00000892 main
+ 0x0000039e monome_setup_system
+ 0x0000066e main_task
+ .text 0x00000aa6
0xe96 ../../../../../src/net/rt_link/rt_link.o
+ 0x00000b22 rtl_set_cycle_callback
+ 0x00001858 rtl_wait_until_tx_done
+ 0x00000ad2 rtl_check_abs_tx_status
+ 0x00001806 rtl_wait_until_rx_or_tx
+ 0x00001020 rtl_tx_abs_pkt
+ 0x00000ac0 rtl_get_slot
+ 0x00000c1e rtl_start
+ 0x00000b40 rtl_set_tx_callback
+ 0x00000ae0 rtl_tx_pkt_check
+ 0x00000b74 rtl_task_config
+ 0x00000aac rtl_ready
+ 0x00000b4a rtl_set_abs_callback
+ 0x00000aa6 rtl_wait_until_global_slot
+ 0x00001306 rtl_set_channel
+ 0x00001096 _rtl_rx_sync
+ 0x00001922 rtl_get_tx_done_signal
+ 0x00000c5e rtl_set_contention
+ 0x00001896 rtl_wait_until_rx_pkt
+ 0x00000ca6 rtl_init
+ 0x00001908 rtl_get_rx_pkt_signal
+ 0x00000b2c rtl_set_slot_callback
+ 0x00000b36 rtl_set_rx_callback
+ 0x00000aca rtl_sync_status
+ 0x00000de0 rtl_set_tx_power
+ 0x00000de6 _rtl_tx
+ 0x00000f08 _rtl_rx
+ 0x00000b54 rtl_rx_pkt_set_buffer
+ 0x00000ada rtl_rx_pkt_release
+ 0x00000b16 rtl_rx_pkt_check
+ 0x000018ca rtl_rx_pkt_get
+ 0x00001310 rtl_tx_pkt
+ 0x00001398 rtl_nw_task
+ 0x00001728 rtl_get_global_slot
+ .text 0x0000193c
0x442 ../../../../../src/net/rt_link/rtl_scheduler.o
+ 0x00001c94 _rtl_clear_sched_cache
+ 0x00001b80 _rtl_clr_abs_wakeup
+ 0x00001afe rtl_set_abs_wakeup
+ 0x0000193c rtl_set_schedule
+ 0x00001cd8 rtl_get_slots_until_next_wakeup
+ 0x000019f2 rtl_get_schedule
+ 0x00001bea _rtl_match_abs_wakeup
+ 0x00001ca4 _rtl_pow
+ 0x00001a2c rtl_clr_schedule
+ 0x00001c52 _rtl_get_next_abs_wakeup
+ 0x00001ad8 _rtl_clr_abs_all_wakeup
+ .text 0x00001d7e
0x1d8 ../../../../../src/net/rt_link/rtl_debug.o
+ 0x00001ea8 rtl_debug_get_tsync_delay
+ 0x00001dee rtl_debug_get_pkt_loss
+ 0x00001d7e rtl_debug_time_update
+ 0x00001d9e rtl_debug_time_get_drift
+ 0x00001e16 rtl_debug_get_tsync_loss
+ 0x00001ec0 rtl_debug_rx_tsync
+ 0x00001da8 rtl_debug_init
+ 0x00001dca bit_count
+ 0x00001e22 rtl_debug_rx_pkt
+ 0x00001e64 rtl_debug_dropped_pkt
+ 0x00001f0a rtl_debug_dropped_tsync
+ .text 0x00001f56
0x382 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ 0x000020e6 dev_manager_ff_sensors
+ 0x00001fb8 read_voltage_status
+ 0x00001f56 init_adc
+ 0x00001f8c get_adc_val
+ 0x00001f82 delay
+ .text 0x000022d8
0x3e ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ 0x000022d8 halRfSetChannel
+ .text 0x00002316
0x18 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ 0x00002316 halRfWaitForCrystalOscillator
+ .text 0x0000232e
0x12da ../../../../../src/radio/cc2420/source/basic_rf.o
+ 0x0000345c rf_set_channel
+ 0x00002554 rf_rx_on
+ 0x000024de rf_auto_ack_enable
+ 0x00002442 rf_tx_power
+ 0x00003426 rf_set_rx
+ 0x000024a8 rf_addr_decode_disable
+ 0x00002b06 rf_data_mode
+ 0x000025d0 rf_rx_check_fifop
+ 0x00002b78 rf_tx_packet
+ 0x000025e2 rf_rx_check_sfd
+ 0x000023c4 rf_security_enable
+ 0x00002a44 rf_rx_packet
+ 0x00002b68 rf_carrier_off
+ 0x000025bc rf_busy
+ 0x0000257c rf_polling_rx_on
+ 0x000025f6 rf_polling_rx_packet
+ 0x00002b58 rf_carrier_on
+ 0x00002438 rf_get_sem
+ 0x000025a4 rf_rx_off
+ 0x00002a62 rf_flush_rx_fifo
+ 0x00003462 rf_init
+ 0x00002472 rf_addr_decode_enable
+ 0x0000324c rf_security_set_key
+ 0x00002ebe rf_tx_tdma_packet
+ 0x00002336 rf_security_set_ctr_counter
+ 0x00002a80 rf_set_cca_thresh
+ 0x000031d6 rf_addr_decode_set_my_mac
+ 0x00002410 rf_security_disable
+ 0x0000251a rf_auto_ack_disable
+ 0x00002ab0 rf_test_mode
+ 0x0000232e rf_security_last_pkt_status
+ .text 0x00003608
0x952 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00003696 nrk_gpio_set
+ 0x00003d6e nrk_get_button
+ 0x00003f34 nrk_kprintf
+ 0x0000360e nrk_uart_data_ready
+ 0x00003b3e nrk_gpio_direction
+ 0x00003ed8 getc0
+ 0x00003e02 nrk_led_set
+ 0x00003644 getc1
+ 0x0000392c nrk_gpio_toggle
+ 0x000037a0 nrk_gpio_clr
+ 0x00003e52 putc0
+ 0x00003ef2 nrk_setup_uart
+ 0x00003e3c nrk_gpio_pullups
+ 0x00003eaa setup_uart1
+ 0x00003688 nrk_setup_ports
+ 0x00003e6c putc1
+ 0x00003dc8 nrk_led_clr
+ 0x000038b8 nrk_gpio_get
+ 0x0000365e PORT_INIT
+ 0x00003e7c setup_uart0
+ 0x00003d8e nrk_led_toggle
+ 0x00003608 nrk_uart_rx_signal_get
+ .text 0x00003f5a
0xe ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ 0x00003f5a halWait
+ .text 0x00003f68
0x11c ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ 0x00004002 read_eeprom_load_img_pages
+ 0x00003f90 nrk_eeprom_read_byte
+ 0x00003f7c
write_eeprom_current_image_checksum
+ 0x00004048 write_eeprom_load_img_pages
+ 0x00003f9c read_eeprom_mac_address
+ 0x0000403e nrk_eeprom_write_byte
+ 0x0000405c write_eeprom_aes_key
+ 0x00003fee read_eeprom_channel
+ 0x00004016 read_eeprom_aes_key
+ 0x00003f68
read_eeprom_current_image_checksum
+ .text 0x00004084
0x440 ../../../../../src/kernel/source/nrk.o
+ 0x0000408c nrk_version
+ 0x000043a8 nrk_init
+ 0x00004098 nrk_TCB_init
+ 0x000044c0 nrk_halt
+ 0x00004092 _nrk_timer_tick
+ 0x00004088 nrk_int_enable
+ 0x000042e8 nrk_start
+ 0x00004084 nrk_int_disable
+ .text 0x000044c4
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .text 0x000044c4
0x1b0 ../../../../../src/kernel/source/nrk_error.o
+ 0x0000465c nrk_error_add
+ 0x0000464e nrk_kernel_error_add
+ 0x000044de nrk_error_get
+ 0x000044d0 nrk_errno_get
+ 0x000044c4 _nrk_errno_set
+ 0x000044fe nrk_error_print
+ .text 0x00004674
0x1e8 ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x000046be dump_stack_info
+ 0x00004674 nrk_stack_check_pid
+ 0x00004816 nrk_stack_check
+ .text 0x0000485c
0x5e0 ../../../../../src/kernel/source/nrk_events.o
+ 0x00004c02 nrk_signal_delete
+ 0x00004b22 nrk_event_signal
+ 0x00004a7a nrk_sem_post
+ 0x000049e0 nrk_sem_create
+ 0x00004dc6 nrk_event_wait
+ 0x00004a40 nrk_sem_query
+ 0x0000485c nrk_signal_create
+ 0x0000496e nrk_signal_register
+ 0x00004d1e nrk_sem_pend
+ 0x000049f8 nrk_sem_delete
+ 0x000048d6 nrk_signal_get_registered_mask
+ 0x000049e6 nrk_get_resource_index
+ 0x000048e8 nrk_signal_unregister
+ .text 0x00004e3c
0x67e ../../../../../src/kernel/source/nrk_task.o
+ 0x00005020 _nrk_wait_for_scheduler
+ 0x00005012 nrk_get_pid
+ 0x00005392 nrk_wait_until_next_period
+ 0x000052be nrk_wait_ticks
+ 0x000050ee nrk_wait_until
+ 0x000051ec nrk_set_next_wakeup
+ 0x00004e60 nrk_add_to_readyQ
+ 0x0000519e nrk_wait_until_nw
+ 0x00004e4a nrk_print_readyQ
+ 0x0000540e nrk_activate_task
+ 0x00005268 nrk_wait_until_ticks
+ 0x00005034 nrk_wait
+ 0x000053ea nrk_terminate_task
+ 0x00004e3c nrk_get_high_ready_task_ID
+ 0x0000532c nrk_wait_until_next_n_periods
+ 0x00004f6e nrk_rem_from_readyQ
+ .text 0x000054ba
0x5c0 ../../../../../src/kernel/source/nrk_time.o
+ 0x000056d6 nrk_time_set
+ 0x000059c4 nrk_time_get
+ 0x000056f8 _nrk_time_to_ticks
+ 0x000058b4 _nrk_time_to_ticks_long
+ 0x000055d8 nrk_time_compact_nanos
+ 0x0000561c nrk_time_add
+ 0x000054ba nrk_time_sub
+ 0x000057fc _nrk_ticks_to_time
+ .text 0x00005a7a
0x48 ../../../../../src/kernel/source/nrk_idle_task.o
+ 0x00005a7a nrk_idle_task
+ .text 0x00005ac2
0x3f0 ../../../../../src/kernel/source/nrk_scheduler.o
+ 0x00005ac2 _nrk_scheduler
+ .text 0x00005eb2
0x232 ../../../../../src/kernel/source/nrk_driver.o
+ 0x0000605a nrk_write
+ 0x00005eec nrk_open
+ 0x00005f8e nrk_get_status
+ 0x00005fd2 nrk_set_status
+ 0x00005eb2 nrk_register_driver
+ 0x00006016 nrk_read
+ 0x0000609e nrk_close
+ .text 0x000060e4
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .text 0x000060e4
0x398 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ 0x0000637a nrk_high_speed_timer_wait
+ 0x000062f2 __vector_32
+ 0x000061a8 nrk_timer_int_reset
+ 0x00006174 _nrk_os_timer_reset
+ 0x00006270 _nrk_os_timer_get
+ 0x0000619a nrk_timer_int_stop
+ 0x000060e4 nrk_spin_wait_us
+ 0x00006278 __vector_13
+ 0x00006100 _nrk_high_speed_timer_reset
+ 0x000062de __vector_17
+ 0x00006406 _nrk_setup_timer
+ 0x0000634e __vector_default
+ 0x00006192 _nrk_set_next_wakeup
+ 0x000061c0 nrk_timer_int_read
+ 0x000060f2 _nrk_high_speed_timer_stop
+ 0x000060f8 _nrk_high_speed_timer_start
+ 0x000061d4 nrk_timer_int_start
+ 0x00006278 __vector_15
+ 0x000061ea nrk_timer_int_configure
+ 0x0000615c _nrk_os_timer_set
+ 0x00006110 _nrk_high_speed_timer_get
+ 0x00006146 _nrk_os_timer_stop
+ 0x00006162 _nrk_os_timer_start
+ 0x00006188 _nrk_get_next_wakeup
+ .text 0x0000647c
0x34e ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x0000647c nrk_ext_int_enable
+ 0x00006712 __vector_1
+ 0x00006594 nrk_ext_int_configure
+ 0x0000676e __vector_9
+ 0x000066b6 __vector_2
+ 0x0000650a nrk_ext_int_disable
+ .text 0x000067ca
0x16 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ 0x000067de update_watchdog
+ 0x000067ca _nrk_startup_ok
+ .text 0x000067e0
0x54 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ 0x000067f6 nrk_watchdog_disable
+ 0x00006814 nrk_watchdog_enable
+ 0x000067e0 nrk_watchdog_check
+ 0x000067f2 nrk_watchdog_reset
+ .text 0x00006834
0x130 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ 0x000068e8 nrk_stack_pointer_init
+ 0x00006926 nrk_task_set_stk
+ 0x0000684e nrk_idle
+ 0x00006834 nrk_battery_save
+ 0x00006864 nrk_task_set_entry_function
+ 0x0000691c nrk_target_start
+ 0x0000690a nrk_stack_pointer_restore
+ 0x0000686c nrk_task_stk_init
+ 0x00006836 nrk_sleep
+ .text 0x00006964
0x56 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ 0x00006964 nrk_start_high_ready_task
+ .text 0x000069ba 0x34c
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ 0x000069ba vfprintf
+ .text 0x00006d06 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x00006d06 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00006d06 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x00006d06 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00006d06 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text 0x00006d06 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text 0x00006d06 0xde
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ 0x00006dbe rand_r
+ 0x00006dc4 rand
+ 0x00006dce srand
+ .text 0x00006de4 0x12
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ 0x00006de4 strlen_P
+ .text 0x00006df6 0xa0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ 0x00006df6 fdevopen
+ .text 0x00006e96 0x5a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ 0x00006e96 fputc
+ .text 0x00006ef0 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .text 0x00006ef0 0x40
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ 0x00006ef0 printf
+ .text 0x00006f30 0x66
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ 0x00006f30 puts
+ .text 0x00006f96 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .text 0x00006f96 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .text 0x00006f96 0x38
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ 0x00006f96 calloc
+ .text 0x00006fce 0x1f2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x00006fce malloc
+ 0x00007114 free
+ .text 0x000071c0 0xe
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ 0x000071c0 memset
+ .text 0x000071ce 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x000071ce . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x000071ce 0x3e
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ 0x000071ce __mulsi3
+ .text.libgcc 0x0000720c 0x28
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x0000720c __udivmodhi4
+ .text.libgcc 0x00007234 0x26
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x00007234 __divmodhi4
+ 0x00007234 _div
+ .text.libgcc 0x0000725a 0x44
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000725a __udivmodsi4
+ .text.libgcc 0x0000729e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x0000729e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text.eeprom 0x0000729e 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ 0x0000729e __eeprom_read_byte_1F2021
+ .text.eeprom 0x000072ae 0x18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ 0x000072ae __eeprom_write_byte_1F2021
+ .text.libgcc 0x000072c6 0x36
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x000072c6 __divmodsi4
+ 0x000072fc . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x000072fc 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ 0x000072fc exit
+ 0x000072fc _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x000072fc 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x000072fe _etext = .
+
+.data 0x00800200 0xf2 load address 0x000072fe
+ 0x00800200 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800200 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .data 0x00800200 0x75 main.o
+ .data 0x00800275
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .data 0x00800275
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .data 0x00800275
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .data 0x00800275
0x0 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .data 0x00800275
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .data 0x00800275
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .data 0x00800275
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .data 0x00800275
0x21 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00800288 NRK_LED_0
+ 0x0080028d NRK_FIFOP
+ 0x00800285 NRK_SFD
+ 0x00800281 NRK_DEBUG_3
+ 0x00800289 NRK_LED_1
+ 0x00800293 NRK_ADC_INPUT_5
+ 0x0080028f NRK_ADC_INPUT_1
+ 0x00800287 NRK_UART0_TXD
+ 0x0080028a NRK_LED_2
+ 0x00800277 NRK_BUTTON
+ 0x0080028e NRK_ADC_INPUT_0
+ 0x00800276 NRK_DEBUG_1
+ 0x0080028c NRK_GPIO34
+ 0x00800284 NRK_CCA
+ 0x00800294 NRK_ADC_INPUT_6
+ 0x00800275 NRK_DEBUG_0
+ 0x00800291 NRK_ADC_INPUT_3
+ 0x0080027c NRK_GPIO26
+ 0x0080027b NRK_MISO
+ 0x0080027d NRK_MMC_11
+ 0x0080027a NRK_MOSI
+ 0x00800292 NRK_ADC_INPUT_4
+ 0x00800283 NRK_UART1_TXD
+ 0x00800286 NRK_UART0_RXD
+ 0x00800295 NRK_ADC_INPUT_7
+ 0x00800280 NRK_DEBUG_2
+ 0x0080027f NRK_MMC_9
+ 0x0080028b NRK_LED_3
+ 0x00800278 NRK_SPI_SS
+ 0x0080027e NRK_MMC_10
+ 0x00800282 NRK_UART1_RXD
+ 0x00800290 NRK_ADC_INPUT_2
+ 0x00800279 NRK_SCK
+ .data 0x00800296
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .data 0x00800296
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .data 0x00800296
0x0 ../../../../../src/kernel/source/nrk.o
+ .data 0x00800296
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .data 0x00800296
0x3 ../../../../../src/kernel/source/nrk_error.o
+ .data 0x00800299
0x4e ../../../../../src/kernel/source/nrk_stack_check.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .data 0x008002e7
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .data 0x008002e7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .data 0x008002e7 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .data 0x008002eb 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .data 0x008002eb 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008002ed __malloc_heap_start
+ 0x008002ef __malloc_heap_end
+ 0x008002eb __malloc_margin
+ .data 0x008002f1 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .data 0x008002f1 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x008002f2 . = ALIGN (0x2)
+ *fill* 0x008002f1 0x1 00
+ 0x008002f2 _edata = .
+ 0x008002f2 PROVIDE (__data_end, .)
+
+.bss 0x008002f2 0x5b8
+ 0x008002f2 PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .bss 0x008002f2 0x0 main.o
+ .bss 0x008002f2
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .bss 0x008002f2
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .bss 0x008002f2
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .bss 0x008002f2
0x0 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .bss 0x008002f2
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .bss 0x008002f2
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .bss 0x008002f2
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .bss 0x008002f2
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .bss 0x008002f2
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .bss 0x008002f2
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .bss 0x008002f2
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .bss 0x008002f2 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x008002f2 0x497 main.o
+ 0x008002f2 last_slot_time
+ 0x008002fa rtl_param
+ 0x00800303 app_timer0_callback
+ 0x00800305 cycle_callback
+ 0x00800307 ext_int1_callback
+ 0x00800309 _rtl_ready
+ 0x0080030a rtl_task_stack
+ 0x0080038a rtl_tx_data_ready
+ 0x0080038e ext_int0_callback
+ 0x00800390 error_task
+ 0x00800391 _rtl_sync_ok
+ 0x00800392 z_baseline
+ 0x00800394 _rtl_contention_slots
+ 0x00800395 tx_callback
+ 0x00800397 rtl_task
+ 0x008003ba rtl_tdma_tx_mask
+ 0x008003be _nrk_time_trigger
+ 0x008003bf sync_pkt_tx
+ 0x008003c0 ext_int2_callback
+ 0x008003c2 state
+ 0x008003c3 rtl_tsync_tx
+ 0x008003ca pc_int0_callback
+ 0x008003cc rtl_rfRxInfo
+ 0x008003d5 _rtl_time_token_status
+ 0x008003d6 player_num
+ 0x008003d7 rtl_abs_tx_slot
+ 0x008003d9 _nrk_signal_list
+ 0x008003dd sync_pkt_rx
+ 0x008003de CommStack
+ 0x0080045e _rtl_contention_pending
+ 0x0080045f rx_buf
+ 0x008004d3 rtl_rx_slot
+ 0x008004d4 rtl_tdma_rx_mask
+ 0x008004d8 nrk_kernel_stk_ptr
+ 0x008004da MainStack
+ 0x0080055a rx_callback
+ 0x0080055c rtl_rx_data_ready
+ 0x0080055d tx_buf
+ 0x008005d1 rtl_abs_tx_ready
+ 0x008005d2 slot_callback
+ 0x008005d4 y_baseline
+ 0x008005d6 x_baseline
+ 0x008005d8 app_timer0_prescale
+ 0x008005d9 rtl_node_mode
+ 0x008005da abs_callback
+ 0x008005dc MainTask
+ 0x008005ff _nrk_prev_timer_val
+ 0x00800600 rtl_rfTxInfo
+ 0x00800607 error_num
+ 0x00800608 tx_len
+ 0x00800609 last_slot
+ 0x0080060b CommTask
+ 0x0080062e rtl_rx_buf
+ 0x008006a2 nrk_idle_task_stk
+ 0x00800722 _rtl_time_token
+ 0x00800723 rtl_tx_info
+ 0x00800786 rtl_tsync_buf
+ COMMON 0x00800789
0x62 ../../../../../src/net/rt_link/rt_link.o
+ 0x00800789 tsync_log
+ 0x00800791 rtl_rx_pkt_signal
+ 0x00800792 global_cycle
+ 0x00800794 tsync_delay
+ 0x0080079c slot_start_time
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/main.sym
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,698 @@
+00000000 W __heap_end
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 T __vectors
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+000000cc T __ctors_end
+000000cc T __ctors_start
+000000cc T __dtors_end
+000000cc T __dtors_start
+000000f0 t __c.2625
+0000010f t __c.2530
+0000012e t __c.2963
+00000159 t __c.2961
+00000184 t __c.2376
+0000018b t __c.2373
+000001a6 t __c.2370
+000001be t __c.2367
+000001de t __c.2364
+000001f2 t __c.2361
+00000203 t __c.2358
+00000212 t __c.2355
+0000022d t __c.2352
+00000239 t __c.2349
+0000025e t __c.2346
+0000027c t __c.2343
+0000028f t __c.2340
+000002a2 t __c.2337
+000002ba t __c.2334
+000002d0 t __c.2331
+000002eb t __c.2328
+00000301 t __c.2325
+00000315 t __c.2321
+0000033c t __c.2318
+00000340 t __c.2316
+0000034c t __c.2249
+0000035c W __init
+00000368 T __do_copy_data
+00000382 T __do_clear_bss
+0000038a t .do_clear_bss_loop
+0000038c t .do_clear_bss_start
+0000039a T __bad_interrupt
+0000039a W __vector_10
+0000039a W __vector_11
+0000039a W __vector_12
+0000039a W __vector_14
+0000039a W __vector_16
+0000039a W __vector_18
+0000039a W __vector_19
+0000039a W __vector_20
+0000039a W __vector_21
+0000039a W __vector_22
+0000039a W __vector_23
+0000039a W __vector_24
+0000039a W __vector_25
+0000039a W __vector_26
+0000039a W __vector_27
+0000039a W __vector_28
+0000039a W __vector_29
+0000039a W __vector_3
+0000039a W __vector_30
+0000039a W __vector_31
+0000039a W __vector_33
+0000039a W __vector_34
+0000039a W __vector_35
+0000039a W __vector_36
+0000039a W __vector_37
+0000039a W __vector_38
+0000039a W __vector_39
+0000039a W __vector_4
+0000039a W __vector_40
+0000039a W __vector_41
+0000039a W __vector_42
+0000039a W __vector_43
+0000039a W __vector_44
+0000039a W __vector_45
+0000039a W __vector_46
+0000039a W __vector_47
+0000039a W __vector_48
+0000039a W __vector_49
+0000039a W __vector_5
+0000039a W __vector_50
+0000039a W __vector_6
+0000039a W __vector_7
+0000039a W __vector_8
+0000039e T monome_setup_system
+000003b0 T monome_erase
+000003e4 T monome_draw
+00000418 T monome_move
+00000432 T nrk_register_drivers
+0000044a T monome_set_player_num
+000004aa T monome_comm_init
+000004de T nrk_create_taskset
+0000066e T main_task
+00000892 T main
+00000962 T comm_task
+00000aa6 T rtl_wait_until_global_slot
+00000aac T rtl_ready
+00000ac0 T rtl_get_slot
+00000aca T rtl_sync_status
+00000ad2 T rtl_check_abs_tx_status
+00000ada T rtl_rx_pkt_release
+00000ae0 T rtl_tx_pkt_check
+00000b16 T rtl_rx_pkt_check
+00000b22 T rtl_set_cycle_callback
+00000b2c T rtl_set_slot_callback
+00000b36 T rtl_set_rx_callback
+00000b40 T rtl_set_tx_callback
+00000b4a T rtl_set_abs_callback
+00000b54 T rtl_rx_pkt_set_buffer
+00000b74 T rtl_task_config
+00000c1e T rtl_start
+00000c5e T rtl_set_contention
+00000ca6 T rtl_init
+00000de0 T rtl_set_tx_power
+00000de6 T _rtl_tx
+00000f08 T _rtl_rx
+00001020 T rtl_tx_abs_pkt
+00001096 T _rtl_rx_sync
+00001306 T rtl_set_channel
+00001310 T rtl_tx_pkt
+00001398 T rtl_nw_task
+00001728 T rtl_get_global_slot
+00001806 T rtl_wait_until_rx_or_tx
+00001858 T rtl_wait_until_tx_done
+00001896 T rtl_wait_until_rx_pkt
+000018ca T rtl_rx_pkt_get
+00001908 T rtl_get_rx_pkt_signal
+00001922 T rtl_get_tx_done_signal
+0000193c T rtl_set_schedule
+000019f2 T rtl_get_schedule
+00001a2c T rtl_clr_schedule
+00001ad8 T _rtl_clr_abs_all_wakeup
+00001afe T rtl_set_abs_wakeup
+00001b80 T _rtl_clr_abs_wakeup
+00001bea T _rtl_match_abs_wakeup
+00001c52 T _rtl_get_next_abs_wakeup
+00001c94 T _rtl_clear_sched_cache
+00001ca4 T _rtl_pow
+00001cd8 T rtl_get_slots_until_next_wakeup
+00001d7e T rtl_debug_time_update
+00001d9e T rtl_debug_time_get_drift
+00001da8 T rtl_debug_init
+00001dca T bit_count
+00001dee T rtl_debug_get_pkt_loss
+00001e16 T rtl_debug_get_tsync_loss
+00001e22 T rtl_debug_rx_pkt
+00001e64 T rtl_debug_dropped_pkt
+00001ea8 T rtl_debug_get_tsync_delay
+00001ec0 T rtl_debug_rx_tsync
+00001f0a T rtl_debug_dropped_tsync
+00001f56 T init_adc
+00001f82 T delay
+00001f8c T get_adc_val
+00001fb8 T read_voltage_status
+000020e6 T dev_manager_ff_sensors
+000021ff W __stack
+000022d8 T halRfSetChannel
+00002316 T halRfWaitForCrystalOscillator
+0000232e T rf_security_last_pkt_status
+00002336 T rf_security_set_ctr_counter
+000023c4 T rf_security_enable
+00002410 T rf_security_disable
+00002438 T rf_get_sem
+00002442 T rf_tx_power
+00002472 T rf_addr_decode_enable
+000024a8 T rf_addr_decode_disable
+000024de T rf_auto_ack_enable
+0000251a T rf_auto_ack_disable
+00002554 T rf_rx_on
+0000257c T rf_polling_rx_on
+000025a4 T rf_rx_off
+000025bc T rf_busy
+000025d0 T rf_rx_check_fifop
+000025e2 T rf_rx_check_sfd
+000025f6 T rf_polling_rx_packet
+00002a44 T rf_rx_packet
+00002a62 T rf_flush_rx_fifo
+00002a80 T rf_set_cca_thresh
+00002ab0 T rf_test_mode
+00002b06 T rf_data_mode
+00002b58 T rf_carrier_on
+00002b68 T rf_carrier_off
+00002b78 T rf_tx_packet
+00002ebe T rf_tx_tdma_packet
+000031d6 T rf_addr_decode_set_my_mac
+0000324c T rf_security_set_key
+00003426 T rf_set_rx
+0000345c T rf_set_channel
+00003462 T rf_init
+00003608 T nrk_uart_rx_signal_get
+0000360e T nrk_uart_data_ready
+00003644 T getc1
+0000365e T PORT_INIT
+00003688 T nrk_setup_ports
+00003696 T nrk_gpio_set
+000037a0 T nrk_gpio_clr
+000038b8 T nrk_gpio_get
+0000392c T nrk_gpio_toggle
+00003b3e T nrk_gpio_direction
+00003d6e T nrk_get_button
+00003d8e T nrk_led_toggle
+00003dc8 T nrk_led_clr
+00003e02 T nrk_led_set
+00003e3c T nrk_gpio_pullups
+00003e52 T putc0
+00003e6c T putc1
+00003e7c T setup_uart0
+00003eaa T setup_uart1
+00003ed8 T getc0
+00003ef2 T nrk_setup_uart
+00003f34 T nrk_kprintf
+00003f5a T halWait
+00003f68 T read_eeprom_current_image_checksum
+00003f7c T write_eeprom_current_image_checksum
+00003f90 T nrk_eeprom_read_byte
+00003f9c T read_eeprom_mac_address
+00003fee T read_eeprom_channel
+00004002 T read_eeprom_load_img_pages
+00004016 T read_eeprom_aes_key
+0000403e T nrk_eeprom_write_byte
+00004048 T write_eeprom_load_img_pages
+0000405c T write_eeprom_aes_key
+00004084 T nrk_int_disable
+00004088 T nrk_int_enable
+0000408c T nrk_version
+00004092 T _nrk_timer_tick
+00004098 T nrk_TCB_init
+000042e8 T nrk_start
+000043a8 T nrk_init
+000044c0 T nrk_halt
+000044c4 T _nrk_errno_set
+000044d0 T nrk_errno_get
+000044de T nrk_error_get
+000044fe T nrk_error_print
+0000464e T nrk_kernel_error_add
+0000465c T nrk_error_add
+00004674 T nrk_stack_check_pid
+000046be T dump_stack_info
+00004816 T nrk_stack_check
+0000485c T nrk_signal_create
+000048d6 T nrk_signal_get_registered_mask
+000048e8 T nrk_signal_unregister
+0000496e T nrk_signal_register
+000049e0 T nrk_sem_create
+000049e6 T nrk_get_resource_index
+000049f8 T nrk_sem_delete
+00004a40 T nrk_sem_query
+00004a7a T nrk_sem_post
+00004b22 T nrk_event_signal
+00004c02 T nrk_signal_delete
+00004d1e T nrk_sem_pend
+00004dc6 T nrk_event_wait
+00004e3c T nrk_get_high_ready_task_ID
+00004e4a T nrk_print_readyQ
+00004e60 T nrk_add_to_readyQ
+00004f6e T nrk_rem_from_readyQ
+00005012 T nrk_get_pid
+00005020 T _nrk_wait_for_scheduler
+00005034 T nrk_wait
+000050ee T nrk_wait_until
+0000519e T nrk_wait_until_nw
+000051ec T nrk_set_next_wakeup
+00005268 T nrk_wait_until_ticks
+000052be T nrk_wait_ticks
+0000532c T nrk_wait_until_next_n_periods
+00005392 T nrk_wait_until_next_period
+000053ea T nrk_terminate_task
+0000540e T nrk_activate_task
+000054ba T nrk_time_sub
+000055d8 T nrk_time_compact_nanos
+0000561c T nrk_time_add
+000056d6 T nrk_time_set
+000056f8 T _nrk_time_to_ticks
+000057fc T _nrk_ticks_to_time
+000058b4 T _nrk_time_to_ticks_long
+000059c4 T nrk_time_get
+00005a7a T nrk_idle_task
+00005ac2 T _nrk_scheduler
+00005eb2 T nrk_register_driver
+00005eec T nrk_open
+00005f8e T nrk_get_status
+00005fd2 T nrk_set_status
+00006016 T nrk_read
+0000605a T nrk_write
+0000609e T nrk_close
+000060e4 T nrk_spin_wait_us
+000060f2 T _nrk_high_speed_timer_stop
+000060f8 T _nrk_high_speed_timer_start
+00006100 T _nrk_high_speed_timer_reset
+00006110 T _nrk_high_speed_timer_get
+00006146 T _nrk_os_timer_stop
+0000615c T _nrk_os_timer_set
+00006162 T _nrk_os_timer_start
+00006174 T _nrk_os_timer_reset
+00006188 T _nrk_get_next_wakeup
+00006192 T _nrk_set_next_wakeup
+0000619a T nrk_timer_int_stop
+000061a8 T nrk_timer_int_reset
+000061c0 T nrk_timer_int_read
+000061d4 T nrk_timer_int_start
+000061ea T nrk_timer_int_configure
+00006270 T _nrk_os_timer_get
+00006278 T __vector_13
+00006278 T __vector_15
+000062de T __vector_17
+000062f2 T __vector_32
+0000634e T __vector_default
+0000637a T nrk_high_speed_timer_wait
+00006406 T _nrk_setup_timer
+0000647c T nrk_ext_int_enable
+0000650a T nrk_ext_int_disable
+00006594 T nrk_ext_int_configure
+000066b6 T __vector_2
+00006712 T __vector_1
+0000676e T __vector_9
+000067ca T _nrk_startup_ok
+000067de T update_watchdog
+000067e0 T nrk_watchdog_check
+000067f2 T nrk_watchdog_reset
+000067f6 T nrk_watchdog_disable
+00006814 T nrk_watchdog_enable
+00006834 T nrk_battery_save
+00006836 T nrk_sleep
+0000684e T nrk_idle
+00006864 T nrk_task_set_entry_function
+0000686c T nrk_task_stk_init
+000068e8 T nrk_stack_pointer_init
+0000690a T nrk_stack_pointer_restore
+0000691c T nrk_target_start
+00006926 T nrk_task_set_stk
+00006964 T nrk_start_high_ready_task
+000069ba T vfprintf
+00006d06 t do_rand
+00006dbe T rand_r
+00006dc4 T rand
+00006dce T srand
+00006de4 T strlen_P
+00006df6 T fdevopen
+00006e96 T fputc
+00006ef0 T printf
+00006f30 T puts
+00006f96 T calloc
+00006fce T malloc
+00007114 T free
+000071c0 T memset
+000071ce T __mulsi3
+0000720c T __udivmodhi4
+00007214 t __udivmodhi4_loop
+00007222 t __udivmodhi4_ep
+00007234 T __divmodhi4
+00007234 T _div
+00007248 t __divmodhi4_neg2
+0000724e t __divmodhi4_exit
+00007250 t __divmodhi4_neg1
+0000725a T __udivmodsi4
+00007266 t __udivmodsi4_loop
+00007280 t __udivmodsi4_ep
+0000729e T __eeprom_read_byte_1F2021
+000072ae T __eeprom_write_byte_1F2021
+000072c6 T __divmodsi4
+000072da t __divmodsi4_neg2
+000072e8 t __divmodsi4_exit
+000072ea t __divmodsi4_neg1
+000072fc t __stop_program
+000072fc T _exit
+000072fc W exit
+000072fe A __data_load_start
+000072fe T _etext
+000073f0 A __data_load_end
+00800200 D __data_start
+00800275 D NRK_DEBUG_0
+00800276 D NRK_DEBUG_1
+00800277 D NRK_BUTTON
+00800278 D NRK_SPI_SS
+00800279 D NRK_SCK
+0080027a D NRK_MOSI
+0080027b D NRK_MISO
+0080027c D NRK_GPIO26
+0080027d D NRK_MMC_11
+0080027e D NRK_MMC_10
+0080027f D NRK_MMC_9
+00800280 D NRK_DEBUG_2
+00800281 D NRK_DEBUG_3
+00800282 D NRK_UART1_RXD
+00800283 D NRK_UART1_TXD
+00800284 D NRK_CCA
+00800285 D NRK_SFD
+00800286 D NRK_UART0_RXD
+00800287 D NRK_UART0_TXD
+00800288 D NRK_LED_0
+00800289 D NRK_LED_1
+0080028a D NRK_LED_2
+0080028b D NRK_LED_3
+0080028c D NRK_GPIO34
+0080028d D NRK_FIFOP
+0080028e D NRK_ADC_INPUT_0
+0080028f D NRK_ADC_INPUT_1
+00800290 D NRK_ADC_INPUT_2
+00800291 D NRK_ADC_INPUT_3
+00800292 D NRK_ADC_INPUT_4
+00800293 D NRK_ADC_INPUT_5
+00800294 D NRK_ADC_INPUT_6
+00800295 D NRK_ADC_INPUT_7
+008002e7 d next
+008002eb D __malloc_margin
+008002ed D __malloc_heap_start
+008002ef D __malloc_heap_end
+008002f2 B __bss_start
+008002f2 D __data_end
+008002f2 D _edata
+008002f2 B last_slot_time
+008002fa B rtl_param
+00800303 B app_timer0_callback
+00800305 B cycle_callback
+00800307 B ext_int1_callback
+00800309 B _rtl_ready
+0080030a B rtl_task_stack
+0080038a B rtl_tx_data_ready
+0080038e B ext_int0_callback
+00800390 B error_task
+00800391 B _rtl_sync_ok
+00800392 B z_baseline
+00800394 B _rtl_contention_slots
+00800395 B tx_callback
+00800397 B rtl_task
+008003ba B rtl_tdma_tx_mask
+008003be B _nrk_time_trigger
+008003bf B sync_pkt_tx
+008003c0 B ext_int2_callback
+008003c2 B state
+008003c3 B rtl_tsync_tx
+008003ca B pc_int0_callback
+008003cc B rtl_rfRxInfo
+008003d5 B _rtl_time_token_status
+008003d6 B player_num
+008003d7 B rtl_abs_tx_slot
+008003d9 B _nrk_signal_list
+008003dd B sync_pkt_rx
+008003de B CommStack
+0080045e B _rtl_contention_pending
+0080045f B rx_buf
+008004d3 B rtl_rx_slot
+008004d4 B rtl_tdma_rx_mask
+008004d8 B nrk_kernel_stk_ptr
+008004da B MainStack
+0080055a B rx_callback
+0080055c B rtl_rx_data_ready
+0080055d B tx_buf
+008005d1 B rtl_abs_tx_ready
+008005d2 B slot_callback
+008005d4 B y_baseline
+008005d6 B x_baseline
+008005d8 B app_timer0_prescale
+008005d9 B rtl_node_mode
+008005da B abs_callback
+008005dc B MainTask
+008005ff B _nrk_prev_timer_val
+00800600 B rtl_rfTxInfo
+00800607 B error_num
+00800608 B tx_len
+00800609 B last_slot
+0080060b B CommTask
+0080062e B rtl_rx_buf
+008006a2 B nrk_idle_task_stk
+00800722 B _rtl_time_token
+00800723 B rtl_tx_info
+00800786 B rtl_tsync_buf
+00800789 B tsync_log
+00800791 B rtl_rx_pkt_signal
+00800792 B global_cycle
+00800794 B tsync_delay
+0080079c B slot_start_time
+0080079e B rtl_abs_wakeup
+008007a6 B global_slot
+008007a8 B _dbg_index
+008007a9 B last_sync_slot
+008007ab B prev_offset
+008007ad B pkt_log
+008007b5 B rtl_drift_rate
+008007b7 B current_global_slot
+008007b9 B _tsync_index
+008007ba B rtl_sched
+008007ca B rtl_sched_cache
+008007ea B rtl_tx_done_signal
+008007eb B is_open
+008007ec B channel
+008007ed B rx_ctr
+008007f1 B radio_sem
+008007f3 B security_enable
+008007f4 B mdmctrl0
+008007f6 B rfSettings
+008007ff B tmp_blah
+00800801 B auto_ack_enable
+00800802 B last_pkt_encrypted
+00800803 B tx_ctr
+00800807 B rx_ready
+00800808 B _free_node
+0080080a B nrk_task_TCB
+0080086d B next_next_wakeup
+0080086f B nrk_sem_list
+00800872 B nrk_task_init_cnt
+00800873 B nrk_wakeup_signal
+00800874 B nrk_high_ready_TCB
+00800876 B nrk_cur_task_prio
+00800877 B _nrk_cpu_state
+00800878 B _head_node
+0080087a B nrk_system_time
+00800882 B _nrk_resource_cnt
+00800883 B nrk_cur_task_TCB
+00800885 B nrk_high_ready_prio
+00800886 B _nrk_readyQ
+0080089a B _nrk_driver_count
+0080089b B nrk_drivers
+0080089f B nrk_driver_init
+008008a0 B __iob
+008008a6 B __brkval
+008008a8 B __flp
+008008aa B __bss_end
+008008aa A __heap_start
+008008aa A _end
+00810000 A __eeprom_end
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/makefile
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,42 @@
+# Platform name cc2420DK, firefly, micaZ, firefly2, firefly2_2
+PLATFORM = firefly2_2
+
+
+# Target file name (without extension).
+TARGET = main
+
+# Set the Port that you programmer is connected to
+ PROGRAMMING_PORT = /dev/tty.usbserial-0000101DB # Default FireFly
serial port
+# PROGRAMMING_PORT = /dev/ttyUSB0 # Default micaZ serial port
+
+# Set this such that the nano-RK directory is the base path
+ROOT_DIR = ../../../../..
+
+# Set platform specific defines
+# The following will be defined based on the PLATFORM variable:
+# PROG_TYPE (e.g. avrdude, or uisp)
+# MCU (e.g. atmega32, atmega128, atmega1281)
+# RADIO (e.g. cc2420)
+include $(ROOT_DIR)/include/platform.mk
+
+
+SRC = $(TARGET).c
+SRC += $(ROOT_DIR)/src/net/rt_link/rt_link.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_scheduler.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_debug.c
+SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+
+# Add extra source files.
+# For example:
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src1.c
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src2.c
+
+# Add extra includes files.
+# For example:
+# EXTRAINCDIRS += $(ROOT_DIR)/src/platform/include
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/platform/$(PLATFORM_TYPE)/
+
+
+# This is where the final compile and download happens
+include $(ROOT_DIR)/include/platform/$(PLATFORM)/common.mk
=======================================
--- /dev/null
+++ /trunk/monome/controller_base_comm/controllers_semi-complete/nrk_cfg.h
Sat Dec 11 12:36:09 2010
@@ -0,0 +1,36 @@
+/***************************************************************
+* NanoRK CONFIG *
+***************************************************************/
+
+#ifndef __nrk_cfg_h
+#define __nrk_cfg_h
+
+// NRK_REPORT_ERRORS will cause the kernel to print out information about
+// missed deadlines or reserve violations
+#define NRK_REPORT_ERRORS
+// NRK_HALT_ON_ERRORS will cause the kernel to freeze on errors so that
+// it is easier to see debugging messages.
+#define NRK_HALT_ON_ERROR
+
+// NRK_STACK_CHECK adds a little check to see if the bottom of the stack
+// has been over written on all suspend calls
+#define NRK_STACK_CHECK
+
+// Leave NRK_NO_POWER_DOWN define in if the target can not wake up from
sleep
+// because it has no asynchronously clocked
+// #define NRK_NO_POWER_DOWN
+#define NRK_MAX_DRIVER_CNT 1
+
+#define NRK_N_RES 0
+
+#define NRK_MAX_TASKS 3 // Max number of tasks in your
application
+#define NRK_N_SYS_TASKS 1 // you need at least the idle task
+
+
+#define NRK_TASK_IDLE_STK_SIZE 128 // Idle task stack size min=32
+#define NRK_APP_STACKSIZE 128
+#define NRK_KERNEL_STACKSIZE 128
+#define NRK_MAX_RESOURCE_CNT 1
+
+
+#endif
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.c Sat Dec 11
12:36:09 2010
@@ -0,0 +1,506 @@
+/*
+ * main.c
+ *
+ *
+ * Created by Philip Asare on 12/6/10.
+ * Copyright 2010 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+#include <nrk.h>
+#include <include.h>
+#include <ulib.h>
+#include <stdio.h>
+#include <avr/sleep.h>
+#include <hal.h>
+#include <rt_link.h>
+#include <nrk_error.h>
+#include <nrk_timer.h>
+#include <nrk_ext_int.h>
+#include <nrk_driver_list.h>
+#include <nrk_driver.h>
+#include <ff_basic_sensor.h>
+
+NRK_STK MainStack[NRK_APP_STACKSIZE];
+nrk_task_type MainTask;
+void main_task(void);
+
+/* controller actions messages */
+#define UP 1
+#define DOWN 2
+#define LEFT 3
+#define RIGHT 4
+#define DRAW 5
+#define ERASE 6
+
+/* pin functions */
+#define DRAW_BUTTON NRK_DEBUG_2
+#define ERASE_BUTTON NRK_DEBUG_3
+#define ACK NRK_UART1_TXD
+#define IRQ NRK_UART0_TXD
+#define BIT0 NRK_DEBUG_1
+#define BIT1 NRK_UART1_RXD
+#define BIT2 NRK_DEBUG_0
+#define BIT3 NRK_UART0_RXD
+
+/* interrupts */
+#define DRAW_INT NRK_EXT_INT_0
+#define ERASE_INT NRK_EXT_INT_1
+#define ACK_INT EXT_INT_2
+
+
+
+#define DEVIATION 10
+uint16_t z_baseline, x_baseline, y_baseline;
+
+/* controller tx slots --> base station rx slots */
+#define C1
+
+#ifdef C1
+#define MY_TX 2
+#define MY_RX 5
+#endif
+
+#ifdef C2
+#define MY_TX 4
+#define MY_RX 7
+#endif
+
+#ifdef C3
+#define MY_TX 6
+#define MY_RX 9
+#endif
+
+#ifdef C4
+#define MY_TX 8
+#define MY_RX 11
+#endif
+
+#define ALL_RX 3
+
+/* game states and controller tracking */
+
+uint8_t state, player_num, message;
+
+#define SYNC 0
+#define SELECT 1
+#define PREGAME 2
+#define GAMEPLAY 3
+#define PLAYERASSIGN 4
+#define GAMEOVER_CALC 5
+#define GAMEOVER_CHOICE 6
+#define CHANGE_STATE 7
+
+
+/* monome helper functions */
+
+#define type(x) (sizeof(x) + PKT_DATA_START)
+
+typedef struct{
+ uint8_t player;
+} monome_comm_sync_pkt;
+
+monome_comm_sync_pkt sync_pkt_tx, sync_pkt_rx;
+
+/* monome functions */
+uint8_t calibration;
+
+uint8_t monome_set_player_num();
+inline void monome_setup_system();
+inline void monome_comm_init();
+inline void monome_comm_set_msg(uint8_t msg);
+inline void monome_comm_send_msg();
+inline void monome_move(uint8_t direction);
+void monome_comm_rcv_ack();
+void monome_draw();
+void monome_erase();
+
+uint8_t tx_len;
+
+/* task setup */
+
+NRK_STK CommStack[NRK_APP_STACKSIZE];
+nrk_task_type CommTask;
+void comm_task(void);
+
+void nrk_create_taskset();
+
+uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+
+/* monome sketch-it functions */
+
+void nrk_register_drivers();
+uint8_t kill_stack(uint8_t val);
+
+int
+main ()
+{
+ uint8_t t;
+ nrk_setup_ports();
+ //nrk_setup_uart(UART_BAUDRATE_115K2);
+
+ /* output pins */
+ nrk_gpio_direction(BIT0, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(BIT1, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(BIT2, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(BIT3, NRK_PIN_OUTPUT);
+ nrk_gpio_direction(IRQ, NRK_PIN_OUTPUT);
+
+ /* button input pins */
+ nrk_gpio_direction(DRAW_BUTTON, NRK_PIN_INPUT);
+ nrk_gpio_direction(ERASE_BUTTON, NRK_PIN_INPUT);
+ nrk_gpio_direction(ACK, NRK_PIN_INPUT);
+
+ /* configure interrupts */
+ nrk_ext_int_configure(DRAW_INT, NRK_RISING_EDGE, monome_draw);
+ nrk_ext_int_configure(ERASE_INT, NRK_RISING_EDGE, monome_erase);
+
+ nrk_gpio_clr(IRQ);
+
+
+ //printf( PSTR("starting...\r\n") );
+
+ nrk_init();
+ nrk_time_set(0,0);
+
+ nrk_register_drivers();
+ nrk_create_taskset ();
+ nrk_start();
+
+ return 0;
+}
+
+void main_task()
+{
+ uint16_t cnt;
+ int8_t i,fd,val;
+ uint16_t x_val, y_val, z_val;
+
+ //printf( "My node's address is %d\r\n",NODE_ADDR );
+
+ //printf( "Task1 PID=%d\r\n",nrk_get_pid());
+
+ nrk_ext_int_enable(DRAW_INT);
+ nrk_ext_int_enable(ERASE_INT);
+
+ x_baseline = 0;
+ y_baseline = 0;
+ z_baseline = 0;
+ cnt=0;
+ calibration = 1;
+ monome_setup_system();
+ //monome_comm_init();
+
+ /*while(!rtl_ready()) {
+ nrk_led_toggle(RED_LED);
+ nrk_wait_until_next_period();
+ }*/
+ while(1) {
+ // Open ADC device as read
+ fd=nrk_open(FIREFLY_SENSOR_BASIC,READ);
+ if(fd==NRK_ERROR) nrk_kprintf(PSTR("Failed to open sensor driver\r\n"));
+
+ /* read x value */
+ val=nrk_set_status(fd,SENSOR_SELECT,ACC_X);
+ val=nrk_read(fd,&x_val,2);
+
+ /* read y value */
+ val=nrk_set_status(fd,SENSOR_SELECT,ACC_Y);
+ val=nrk_read(fd,&y_val,2);
+
+ /* read z value */
+ val=nrk_set_status(fd,SENSOR_SELECT,ACC_Z);
+ val=nrk_read(fd,&z_val,2);
+
+ if(cnt > 10){
+ calibration = 0;
+ //printf( "z_baseline=%d\r\n",z_baseline);
+ //printf( "x_baseline=%d\r\n",x_baseline);
+ //printf( "y_baseline=%d\r\n",y_baseline);
+ cnt = 0;
+ }
+ nrk_led_toggle(GREEN_LED);
+ /* calibration */
+ if(calibration > 0){
+ nrk_led_toggle(BLUE_LED);
+ if(cnt == 0){
+ x_baseline = x_val;
+ y_baseline = y_val;
+ z_baseline = z_val;
+ }
+ else{
+ x_baseline = (x_baseline + x_val)>>1;
+ y_baseline = (y_baseline + y_val)>>1;
+ z_baseline = (z_baseline + z_val)>>1;
+ }
+
+ cnt++;
+ //nrk_led_clr(BLUE_LED);
+ }
+
+ else{
+ //if(state == SELECT || state == GAMEPLAY || state == PREGAME || state
== GAMEOVER_CHOICE){
+ /*
+ * respond to accelerometer only if you are in the appropriate state
+ * change in z value beyond threshold indicates cursor move
+ * determine cursor direction only on this indicator
+ */
+ if((z_val > z_baseline + DEVIATION) || z_val < z_baseline - DEVIATION){
+
+ //printf( "acc_z=%d",z_val);
+ //printf( " acc_x=%d",x_val);
+ //printf( " acc_y=%d\r\n",y_val);
+ if((x_val > (x_baseline + DEVIATION)) || (x_val < (x_baseline -
DEVIATION))){
+ if(x_val > x_baseline) //nrk_kprintf( PSTR("move down\r\n") );
+ monome_move(DOWN);
+ else //nrk_kprintf( PSTR("move up\r\n") );
+ monome_move(UP);
+ }
+ if((y_val > (y_baseline + DEVIATION)) || (y_val < (y_baseline -
DEVIATION))){
+ if(y_val > y_baseline) //nrk_kprintf( PSTR("move right\r\n") );
+ monome_move(RIGHT);
+ else //nrk_kprintf( PSTR("move left\r\n") );
+ monome_move(LEFT);
+ }
+ }
+ else {
+ //nrk_kprintf( PSTR("no move\r\n") );
+ ;
+ }
+ //}
+
+ }
+
+ nrk_close(fd);
+ nrk_wait_until_next_period();
+
+ }
+}
+
+
+/*void comm_task()
+{
+ //uint8_t j, i;
+ uint8_t *local_rx_buf;
+ uint8_t length,slot;
+ int8_t rssi;
+
+
+ monome_setup_system();
+
+ while(!rtl_ready()) nrk_wait_until_next_period();
+
+ while(1){
+ // start communication after calibration
+ if(calibration == 0){
+ if( rtl_rx_pkt_check()!=0 )
+ {
+ //if packet is received
+ local_rx_buf=rtl_rx_pkt_get(&length, &rssi, &slot);
+ printf( "Got Packet on slot %d %d: \r\n",slot,length );
+ if(length == type(monome_comm_sync_pkt)){
+ // if in sync state, set the player number and switch to select state
+ if(state == SYNC){
+ player_num = local_rx_buf[PKT_DATA_START];
+ rtl_rx_pkt_release();
+ if(monome_set_player_num()){
+ monome_comm_set_msg(CHANGE_STATE);
+ monome_comm_send_msg();
+ monome_comm_set_msg(player_num);
+ monome_comm_send_msg();
+ }
+
+
+ }
+ //if in any other state, then message is state information, change
state and alert HCS12
+ else{
+ state = local_rx_buf[PKT_DATA_START];
+ rtl_rx_pkt_release();
+ monome_comm_set_msg(CHANGE_STATE);
+ monome_comm_send_msg();
+ monome_comm_set_msg(state);
+ monome_comm_send_msg();
+ }
+ }
+ }
+ if(state == SYNC){
+ //if in sync state, send sync packet to base station
+ printf("waiting to sync\r\n");
+ while( rtl_tx_pkt_check(MY_TX)!=0 );
+ memcpy(&tx_buf[PKT_DATA_START], &sync_pkt_tx,
sizeof(monome_comm_sync_pkt));
+ tx_len = type(monome_comm_sync_pkt);
+ rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ rtl_wait_until_tx_done(MY_TX);
+ }
+ }
+
+ nrk_wait_until_next_period();
+ }
+}
+*/
+void
+nrk_create_taskset()
+{
+
+/*
+ CommTask.task = comm_task;
+ CommTask.Ptos = (void *) &CommStack[NRK_APP_STACKSIZE-1];
+ CommTask.Pbos = (void *) &CommStack[0];
+ CommTask.prio = 2;
+ CommTask.FirstActivation = TRUE;
+ CommTask.Type = BASIC_TASK;
+ CommTask.SchType = PREEMPTIVE;
+ CommTask.period.secs = 0;
+ CommTask.period.nano_secs = 500*NANOS_PER_MS;
+ CommTask.cpu_reserve.secs = 0;
+ CommTask.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ CommTask.offset.secs = 0;
+ CommTask.offset.nano_secs= 0;
+ nrk_activate_task (&CommTask);
+*/
+ MainTask.task = main_task;
+ nrk_task_set_stk( &MainTask, MainStack, NRK_APP_STACKSIZE);
+ MainTask.prio = 1;
+ MainTask.FirstActivation = TRUE;
+ MainTask.Type = BASIC_TASK;
+ MainTask.SchType = PREEMPTIVE;
+ MainTask.period.secs = 0;
+ MainTask.period.nano_secs = 500*NANOS_PER_MS; //*NANOS_PER_MS;
+ MainTask.cpu_reserve.secs = 0;
+ MainTask.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ MainTask.offset.secs = 0;
+ MainTask.offset.nano_secs= 0;
+ nrk_activate_task (&MainTask);
+
+
+ printf ("Create done\r\n");
+}
+
+inline void monome_comm_init(){
+ rtl_init (RTL_MOBILE);
+
+ /* rx schedules */
+ rtl_set_schedule( RTL_RX, MY_RX, 1 );
+ rtl_set_schedule( RTL_RX, ALL_RX, 1 );
+
+ /* tx schedules */
+ rtl_set_schedule( RTL_TX, MY_TX, 1 );
+
+ rtl_start();
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+
+ // clear communication port
+ nrk_gpio_clr(BIT0);
+ nrk_gpio_clr(BIT1);
+ nrk_gpio_clr(BIT2);
+ nrk_gpio_clr(BIT3);
+ nrk_gpio_clr(IRQ);
+}
+
+inline void monome_setup_system(){
+ state = SYNC;
+ player_num = -1;
+ //sync_pkt_tx.player = -1;
+ // clear communication port
+ nrk_gpio_clr(BIT0);
+ nrk_gpio_clr(BIT1);
+ nrk_gpio_clr(BIT2);
+ nrk_gpio_clr(BIT3);
+ nrk_gpio_clr(IRQ);
+}
+
+uint8_t monome_set_player_num(){
+ printf("setting player\r\n");
+ //player_num = sync_pkt_rx.player;
+ printf("player number: %d\r\n", player_num);
+ switch (player_num) {
+ case 1:
+ nrk_led_set(RED_LED);state = SELECT; return 1;
+
+ case 2:
+ nrk_led_set(GREEN_LED);state = SELECT; return 1;
+
+ case 3:
+ nrk_led_set(RED_LED); nrk_led_set(GREEN_LED);state = SELECT; return 1;
+
+ case 4:
+ nrk_led_set(BLUE_LED);state = SELECT; return 1;
+
+ default:
+ return 0;
+ }
+
+}
+
+void nrk_register_drivers()
+{
+ int8_t val;
+
+ // Register the Basic FireFly Sensor device driver
+ // Make sure to add:
+ // #define NRK_MAX_DRIVER_CNT
+ // in nrk_cfg.h
+ // Make sure to add:
+ // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+ // in makefile
+ val=nrk_register_driver( &dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to load my ADC driver\r\n")
);
+
+}
+inline void monome_comm_set_msg(uint8_t msg){
+ if(msg & 0x01){
+ nrk_gpio_set(BIT0);
+ }
+ else{
+ nrk_gpio_clr(BIT0);
+ }
+ if(msg & 0x02){
+ nrk_gpio_set(BIT1);
+ }
+ else{
+ nrk_gpio_clr(BIT1);
+ }
+ if(msg & 0x04){
+ nrk_gpio_set(BIT2);
+ }
+ else{
+ nrk_gpio_clr(BIT2);
+ }
+ if(msg & 0x08){
+ nrk_gpio_set(BIT3);
+ }
+ else{
+ nrk_gpio_clr(BIT3);
+ }
+}
+inline void monome_comm_send_msg(){
+ nrk_led_set(RED_LED);
+ nrk_gpio_set(IRQ);
+ nrk_spin_wait_us(1000); /**TO-DO: experiment to see how quick a change
HCS12 can handle */
+ nrk_gpio_clr(IRQ);
+ nrk_led_clr(RED_LED);
+}
+
+void monome_move(uint8_t direction){
+ monome_comm_set_msg(direction);
+ monome_comm_send_msg();
+}
+
+void monome_draw(){
+ while(nrk_gpio_get(DRAW_BUTTON)); //debounce
+ //if(state == SELECT || state == GAMEPLAY || state == PREGAME || state ==
GAMEOVER_CHOICE){
+ // respond to controls only if in appropriate state
+ monome_comm_set_msg(DRAW);
+ monome_comm_send_msg();
+ //}//
+}
+
+void monome_erase(){
+ while(nrk_gpio_get(ERASE_BUTTON)); //debounce
+ //if(state == SELECT || state == GAMEPLAY || state == PREGAME || state ==
GAMEOVER_CHOICE){
+ // respond to controls only if in appropriate state
+ monome_comm_set_msg(ERASE);
+ monome_comm_send_msg();
+ //}
+}
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.d Sat Dec 11
12:36:09 2010
@@ -0,0 +1,22 @@
+main.o main.d : main.c ../../../../../src/kernel/include/nrk.h \
+ ../../../../../src/kernel/hal/include/nrk_cpu.h nrk_cfg.h \
+ ../../../../../src/kernel/include/nrk_time.h \
+ ../../../../../src/platform/firefly2_2/include/include.h \
+ ../../../../../src/platform/firefly2_2/include/hal.h \
+ ../../../../../src/platform/firefly2_2/include/hal_firefly2_2.h \
+ ../../../../../src/radio/cc2420/include/hal_cc2420.h \
+ ../../../../../src/radio/cc2420/hal/atmega1281/cc2420_mcu_hal.h \
+ ../../../../../src/radio/cc2420/platform/firefly2_2/cc2420_platform_hal.h
\
+ ../../../../../src/radio/cc2420/include/basic_rf.h \
+ ../../../../../src/kernel/include/nrk_events.h \
+ ../../../../../src/platform/include/ulib.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_pin_define.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_platform_time.h \
+ ../../../../../src/kernel/include/nrk_task.h \
+ ../../../../../src/net/rt_link/rt_link.h \
+ ../../../../../src/kernel/include/nrk_error.h \
+ ../../../../../src/kernel/hal/include/nrk_timer.h \
+ ../../../../../src/kernel/hal/include/nrk_ext_int.h \
+ ../../../../../src/drivers/include/nrk_driver_list.h \
+ ../../../../../src/kernel/include/nrk_driver.h \
+ ../../../../../src/drivers/platform/firefly2_2/include/ff_basic_sensor.h
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.elf Sat Dec 11
12:36:09 2010
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.hex Sat Dec 11
12:36:09 2010
@@ -0,0 +1,1827 @@
+:100000000C94AE010C94C0320C9492320C94CD013D
+:100010000C94CD010C94CD010C94CD010C94CD0128
+:100020000C94CD010C94EE320C94CD010C94CD01C6
+:100030000C94CD010C9473300C94CD010C9473305E
+:100040000C94CD010C94A6300C94CD010C94CD01F0
+:100050000C94CD010C94CD010C94CD010C94CD01E8
+:100060000C94CD010C94CD010C94CD010C94CD01D8
+:100070000C94CD010C94CD010C94CD010C94CD01C8
+:100080000C94B0300C94CD010C94CD010C94CD01A6
+:100090000C94CD010C94CD010C94CD010C94CD01A8
+:1000A0000C94CD010C94CD010C94CD010C94CD0198
+:1000B0000C94CD010C94CD010C94CD010C94CD0188
+:1000C0000C94CD010C94CD010C94CD01F221F821BA
+:1000D000FB21FE21012204220A2207220D221022E6
+:1000E000132219221C221F2222221622EF21F5217F
+:1000F0004661696C656420746F206C6F6164206D6B
+:100100007920414443206472697665720D0A004685
+:1001100061696C656420746F206F70656E20736513
+:100120006E736F72206472697665720D0A005254A4
+:100130002D4C696E6B204552524F523A20637265C6
+:100140006174696E67207478207369676E616C20D2
+:100150006661696C65640D0A0052542D4C696E6BC2
+:10016000204552524F523A206372656174696E673E
+:10017000207278207369676E616C206661696C65B6
+:10018000640D0A00554E4B4F574E004661696C6531
+:100190006420746F206372656174652053656D61BE
+:1001A00070686F7265004661696C656420746F20C9
+:1001B000637265617465205369676E616C004B659D
+:1001C000726E656C2066756E6374696F6E206E6FFB
+:1001D0007420696D706C656D656E7465640044654E
+:1001E0007669636520447269766572204572726F24
+:1001F00072005761746368646F672052657374613D
+:1002000072740054696D6572204F766572666C6F0A
+:100210007700556E68616E646C656420496E746524
+:10022000727275707420566563746F72004C6F77CC
+:1002300020566F6C74616765004578747261205454
+:1002400061736B20737461727465642C2069732010
+:100250006E726B5F6366672E68206F6B3F00496448
+:100260006C65206F72204B65726E656C20537461F3
+:10027000636B204F766572666C6F7700556E65789C
+:1002800070656374656420526573746172740044B0
+:1002900075706C696361746564205461736B204987
+:1002A00044005363686564756C6572204D697373AF
+:1002B00065642057616B657570005461736B2052E3
+:1002C0006573657276652056696F6C61746564004C
+:1002D00052657365727665204572726F7220696E21
+:1002E000205363686564756C657200496E76616C55
+:1002F000696420537461636B20506F696E7465721A
+:10030000005461736B20537461636B204F76657288
+:10031000666C6F7700537461636B20776173206E36
+:100320006F7420646566696E6564206173206C611A
+:1003300072676520656E6F7567682100293A200035
+:100340002A4E524B204552524F5228000D0A535408
+:1003500041434B2044554D500D0A000011241FBE4F
+:10036000CFEFD1E2DEBFCDBF12E0A0E0B2E0ECE61D
+:10037000F1E700E00BBF02C007900D92AE3AB10763
+:10038000D9F718E0AEEAB2E001C01D92AE38B1076D
+:10039000E1F70E9425040C94B5380C94DE30CF931D
+:1003A000DF93C82FDD27C0FF05C0809132020E9475
+:1003B000711A04C0809132020E94F61AC1FF05C072
+:1003C00080913E020E94711A04C080913E020E94F8
+:1003D000F61AC2FF05C0809131020E94711A04C052
+:1003E000809131020E94F61AC3FF05C0809142023B
+:1003F0000E94711A04C0809142020E94F61ADF9195
+:10040000CF91089510927F038FEF80939303809193
+:1004100032020E94F61A80913E020E94F61A8091E2
+:1004200031020E94F61A809142020E94F61A8091CF
+:1004300043020E94F61A08951F9383E090E00E9401
+:100440003A1E10914302812F0E94711A88EE93E0A8
+:100450000E94A92F812F0E94F61A83E090E00E944B
+:100460001D1E1F9108951F9310913D02812F0E9420
+:10047000821B8823D9F786E00E94CF010E941C02CC
+:100480001F9108951F9310913C02812F0E94821B9F
+:100490008823D9F785E00E94CF010E941C021F919A
+:1004A00008950E94CF010E941C02089561E089E92D
+:1004B0009FE00E94902E8F3F21F480EF90E00E94F9
+:1004C000D31E08951F9380E092E00E94CF36809162
+:1004D000930399279F938F9380E192E09F938F934B
+:1004E0000E94AF360F900F900F900F9010919303D2
+:1004F0001230B9F0133018F4113029F407C013305A
+:1005000061F0143089F080E090E017C083E090E063
+:100510000E943A1E10937F030EC083E090E00E9479
+:100520003A1E82E090E002C081E090E00E943A1E14
+:1005300081E080937F0381E090E01F91089580E047
+:100540000E94790541E065E080E00E94C40B41E033
+:1005500063E080E00E94C40B41E062E081E00E9421
+:10056000C40B0E94350564E78DE194E00E94D0043D
+:10057000809132020E94F61A80913E020E94F61A81
+:10058000809131020E94F61A809142020E94F61A6E
+:10059000809143020E94F61A08950F931F9389E2F7
+:1005A00093E09093A00580939F050AE915E040E849
+:1005B00050E068E974E0C8010E94CA3381E080938A
+:1005C000A2058093A1058093A3058093A4051092B2
+:1005D000A5051092A6051092A7051092A80580E027
+:1005E00095E6ADECBDE18093A9059093AA05A09393
+:1005F000AB05B093AC051092AD051092AE0510920C
+:10060000AF051092B00580E092ECABEEBBE08093BA
+:10061000B1059093B205A093B305B093B4051092C1
+:10062000B5051092B6051092B7051092B805109254
+:10063000B9051092BA051092BB051092BC05C8010D
+:100640000E943E2984E292E00E94CF361F910F91D2
+:1006500008956F927F928F929F92AF92BF92CF92A6
+:10066000DF92EF92FF921F93CF93DF93CDB7DEB768
+:1006700026970FB6F894DEBF0FBECDBF80E00E9474
+:10068000753181E00E9475311092950510929405A4
+:10069000109293051092920510924F0310924E0300
+:1006A00081E080931B040E940202EE24FF24BFE03D
+:1006B0006B2EB1E07B2E4E010894811C911CA3E0AF
+:1006C000AA2EB12CAC0EBD1EF5E0CF2ED12CCC0E37
+:1006D000DD1E65E081E00E94AD2E182F8F3F19F4DA
+:1006E000C3010E94D31E42E061E0812F0E94202FAF
+:1006F00042E0B401812F0E94422F45E061E0812F4A
+:100700000E94202F42E0B501812F0E94422F46E037
+:1007100061E0812F0E94202F42E0B601812F0E94CC
+:10072000422F8BE0E816F10420F010921B04EE2417
+:10073000FF2482E090E00E94001E80911B04882329
+:10074000F1F181E090E00E94001E29813A814B8105
+:100750005C816D817E81E114F10449F4309395054B
+:1007600020939405509393054093920520C0809167
+:10077000940590919505280F391F3695279530934C
+:100780009505209394058091920590919305480FCB
+:10079000591F569547955093930540939205809124
+:1007A0004E0390914F03680F791F7695679570936C
+:1007B0004F0360934E030894E11CF11C40C04D812F
+:1007C0005E8120914E0330914F03C9010A96841730
+:1007D000950728F02A5030404217530780F5498189
+:1007E0005A812091940530919505C9010A96841784
+:1007F000950728F0C9010A974817590740F42417AC
+:10080000350710F482E001C081E00E9451024B8163
+:100810005C812091920530919305C9010A96841755
+:10082000950728F0C9010A974817590740F424177B
+:10083000350710F484E001C083E00E945102812F4B
+:100840000E94862F0E94002944CFCFEFD1E2DEBF65
+:10085000CDBF0E946A1A61E0809132020E94D81CCA
+:1008600061E080913E020E94D81C61E080913102DB
+:100870000E94D81C61E0809142020E94D81C109115
+:10088000430261E0812F0E94D81C60E080913C020D
+:100890000E94D81C60E080913D020E94D81C60E05C
+:1008A00080913F020E94D81C42E452E063E080E065
+:1008B0000E94013243E352E063E081E00E94013292
+:1008C000812F0E94F61A0E940D2120E030E040E0C6
+:1008D00050E060E070E080E090E00E94A22A0E9478
+:1008E00056020E94CD020E94AD2080E090E00C9460
+:1008F000B5388FEF9FEF08958091C502813019F4CC
+:1009000081E090E008958FEF9FEF08958091750743
+:1009100090917607089580914D03992708958091CD
+:100920008F059927089510921A050895282F81326E
+:1009300031F480911C04992787FD9095089580914A
+:10094000460390914703A0914803B091490304C026
+:10095000B695A795979587952A95D2F7817090704F
+:10096000089580911A05992787FD90950895909391
+:10097000C2028093C10208959093910580939005DF
+:100980000895909319058093180508959093520344
+:100990008093510308959093990580939805089545
+:1009A000662359F0009749F090938F0380938E034C
+:1009B00060938D0381E090E008958FEF9FEF08959D
+:1009C0000F931F9382EF98E09093590380935803FD
+:1009D00003E513E040E850E066EC72E0C8010E94D5
+:1009E000CA3384E180935B0381E080935A03809350
+:1009F0005C0380935D0310925E0310925F0310927C
+:100A00006003109261038BE49CE1A6E8B0E0809360
+:100A1000620390936303A0936403B0936503109201
+:100A20006603109267031092680310926903109294
+:100A30006A0310926B0310926C0310926D03109274
+:100A40006E0310926F031092700310927103109254
+:100A50007203109273031092740310927503C8010D
+:100A60000E943E291F910F91089580919705823031
+:100A7000B1F48091760390917703A0917803B091BF
+:100A8000790380FF07C08091780799278F70907055
+:100A900005972CF044E060E081E00E94C40B0E94C6
+:100AA000700D82E08093C50208950F931F93CF933A
+:100AB000DF93062F809350038823B1F01FE1CFE12D
+:100AC000D0E0C81BD1090BC0402F612F80E00E94ED
+:100AD000C40B402F612F81E00E94C40B1150812F65
+:100AE0009927C817D90784F3DF91CF911F910F91F0
+:100AF00008951F93182F0E94652380934F078F3FFF
+:100B000019F489E591E008C00E9465238093A80745
+:100B10008F3F69F48EE291E00E94D31EE09162085B
+:100B2000F091630860858EE00E945E227DC0109285
+:100B30008F0310928E0310928D030E94B32F109298
+:100B400092031092E00610926807109267071092C5
+:100B500051071092500781E094E0909365078093CD
+:100B6000640710924D031093970510925003109252
+:100B70001C0410921905109218051092520310923D
+:100B800051031092990510929805109291051092B8
+:100B900090051092C2021092C10284E68093BE02B8
+:100BA00080E49FE19093BD028093BC0280EA9FE0C5
+:100BB0009093BB028093BA028AE08093B80280E8E7
+:100BC00099E19093B7028093B602E8E7F7E01192BB
+:100BD00087E0E838F807D9F710929204109293044E
+:100BE0001092940410929504109276031092770359
+:100BF000109278031092790310921A05109246030E
+:100C00001092470310924803109249030E94920CDD
+:100C10002091B6023091B7026091B80240E254E2EE
+:100C200089E893E00E9457191F9108950E94471187
+:100C300008951F93CF93DF93182F80914D0388233E
+:100C400009F484C0E0915103F0915203309711F000
+:100C5000812F0995C12FDD27FE01EE0FFF1FEC0F3D
+:100C6000FD1FEF51F94F818192819093C2058093CE
+:100C7000C10580818093C005E091C105F091C20556
+:100C80008091640790916507892F99278083E0916F
+:100C9000C105F091C2058091640790916507818339
+:100CA000E091C105F091C2058091E00682838091B8
+:100CB000C005833011F010E008C0E091C105F0914B
+:100CC000C20582818068828311E04091BA0250910E
+:100CD000BB0260915A0770915B078EEB95E00E9412
+:100CE000851621E030E040E050E00C2E04C0220FD9
+:100CF000331F441F551F0A94D2F720953095409515
+:100D000050958091460390914703A0914803B0917C
+:100D1000490382239323A423B5238093460390930E
+:100D20004703A0934803B09349032091500380E206
+:100D300090E0821B9109C817D90714F010921C0487
+:100D4000112321F48091A8070E94C824DF91CF913C
+:100D50001F9108950F931F93CF93DF93CDB7DEB705
+:100D600022970FB6F894DEBF0FBECDBF082F60915B
+:100D7000B80289E893E00E9439190E94E4110E94A8
+:100D80006F3099279A83898389819A8104969A83FF
+:100D900089830BC00E946F3029813A8199272817D7
+:100DA000390718F40E94F81156C00E9417128823C0
+:100DB00089F30E946F3099279A8389830E946F304C
+:100DC00099279A83898389819A8105969A83898351
+:100DD00008C00E946F3029813A8199272817390766
+:100DE00028F00E942112182F882399F30E94F811ED
+:100DF000113089F510931A0500939104E0918E0348
+:100E0000F0918F0380819927982F8827218133279C
+:100E1000282B392B80916407909165072817390793
+:100E200021F03093650720936407E0911805F09155
+:100E30001905309711F0802F0995E0918E03F091FC
+:100E40008F03828187FD05C080914F070E94C824CF
+:100E500002C010921A0522960FB6F894DEBF0FBE9C
+:100E6000CDBFDF91CF911F910F910895CF93DF9365
+:100E7000EC01FA01842F8F7121E030E040E050E076
+:100E800004C0220F331F441F551F8A95D2F780914B
+:100E9000760390917703A0917803B091790328238A
+:100EA00039234A235B23211531054105510519F0EA
+:100EB00080E090E013C0D0934607C093450760934D
+:100EC0004407F0939503E093940360E0CF010E9400
+:100ED000A50C81E080938F0581E090E0DF91CF91B8
+:100EE0000895AF92BF92CF92DF92EF92FF920F934D
+:100EF0001F93CF93DF93CDB7DEB722970FB6F89449
+:100F0000DEBF0FBECDBFCC24DD24EE2469E8A62EC3
+:100F100063E0B62EE0918E03F0918F038FEF808314
+:100F2000E0918E03F0918F0381836091B802C50137
+:100F30000E9439190E94E41110924D038AEF0E9419
+:100F4000003010E01EC00E946F301817D1F00E94D0
+:100F50006F30182F0894C11CD11C21E1C21627E262
+:100F6000D20678F01092E006E39485E08E1518F032
+:100F7000CC24DD240BC00E945133CC24DD24EE248C
+:100F800005C00E941712F82E8823E9F20E94B72F9D
+:100F90000E94BF2F9A8389830E946F30082F1127E8
+:100FA0000C5F1F4FFF2061F006C00E946F30992731
+:100FB0000817190728F00E942112F82E8823A9F398
+:100FC0000E94F81121E0F21609F0A4CF80918C0361
+:100FD00018160CF09FCFF0921A05E0918E03F09155
+:100FE0008F03808199279093650780936407809190
+:100FF000640790916507982F8827909365078093E1
+:101000006407209164073091650781819927822BBD
+:10101000932B90936507809364072281122F1F778B
+:101020008091E006811730F08F3608F473CF1A30C4
+:1010300008F070CF80916407909165078F7180935D
+:10104000910427FD18C02091910480919204909101
+:101050009304A0919404B091950404C0B695A7950B
+:10106000979587952A95D2F780FF05C080914F0705
+:101070000E94C82402C010921A05809164079091C2
+:1010800065078F7180939104809164079091650743
+:1010900001979093760780937507109292031093AF
+:1010A000E00681E080934D03809167079091680787
+:1010B0000E94E60C809164079091650780509440EF
+:1010C00030F48091640790916507029718F48EEFD1
+:1010D00093E005C080916407909165070297909313
+:1010E00068078093670760E08091670790916807C1
+:1010F0000E94A50C0E94700D0E94DA2F0E94F12F11
+:1011000087E00E94E52F66E67CE680E090E00E94A2
+:10111000F4300E94F12F0E94E82F0E94B72F0E9406
+:10112000BF2F90935B0780935A0780914D039927B7
+:1011300022960FB6F894DEBF0FBECDBFDF91CF91E0
+:101140001F910F91FF90EF90DF90CF90BF90AF90E5
+:1011500008958093B8020E94541908951F93CF9365
+:10116000DF93EC01162F413261F40E941936609131
+:10117000500377270E9451384FE1481B81E080934C
+:101180001C04842F9927FC01EE0FFF1FE80FF91FA5
+:10119000EF51F94FD283C183108321E030E040E06A
+:1011A00050E004C0220F331F441F551F8A95D2F709
+:1011B0008091460390914703A0914803B091490361
+:1011C000822B932BA42BB52B80934603909347033C
+:1011D000A0934803B093490381E090E0DF91CF9161
+:1011E0001F9108956F927F928F929F92AF92BF92BC
+:1011F000DF92EF92FF920F931F93CF93DF931092A2
+:10120000C5020E9400298091C5028823D1F381E0A4
+:101210008093C5021092C8051092C7058EEA92E02D
+:101220000E94192C1EEA612E12E0712EB4E48B2E5E
+:10123000B7E09B2EA0E8AA2EA3E0BA2E0E94BF2FF3
+:1012400090935B0780935A07C3010E94192C8091E9
+:101250006407909165079093C8058093C7058150F6
+:10126000944021F41092C8051092C705809164073C
+:101270009091650790937607809375078091640736
+:10128000909165078050944008F110926507109284
+:1012900064078091500790915107019690935107F0
+:1012A00080935007E091C102F091C202309729F07B
+:1012B000809150079091510709950E94700D80917F
+:1012C0009705823019F481E080934D03E0919005F9
+:1012D000F0919105309729F080916407909165070E
+:1012E000099580919705882381F4209164073091B6
+:1012F000650780916707909168070196281739075D
+:1013000021F40E9471078823E1F380916407909192
+:1013100065070E941B0D813059F4E0919805F0910A
+:101320009905309729F08091640790916507099598
+:1013300080916407909165070E94920DEC01809165
+:101340006407909165070E944F0D009739F0209730
+:1013500009F40AC18C179D0758F406C1209741F47F
+:101360008091640790916507C0E0D4E0C81BD90B59
+:101370008091640790916507FFE1DF2ED82280916C
+:101380009705823099F48091640790916507892BC5
+:1013900009F0ECC08091E0068F5F8093E00687FF44
+:1013A000E5C01092E006E2C0109292034D2D552741
+:1013B000E1E0EE2EF12C012D112D042E04C0EE0CD7
+:1013C000FF1C001F111F0A94D2F7809192038823FB
+:1013D00009F043C08091760390917703A091780340
+:1013E000B09179038E219F21A023B1230097A105FD
+:1013F000B10599F18091460390914703A09148036C
+:10140000B09149038E219F21A023B1230097A1050C
+:10141000B10501F590928403809283038091460781
+:1014200080688093460783E0809382032091500375
+:1014300080E290E0821B91098417950734F4809133
+:101440001C04882339F441E201C04D2D63E0C5013D
+:101450000E94AE0881E0809392032091640730914E
+:10146000650780916707909168072817390709F485
+:1014700048C08091760390917703A0917803B09152
+:1014800079032091460330914703409148035091DE
+:10149000490382239323A423B5238E219F21A023D4
+:1014A000B1230097A105B10521F08D2D0E941906E9
+:1014B00028C08091920490919304A0919404B091DB
+:1014C00095048E219F21A023B1230097A105B1058A
+:1014D00041F080911A05882321F48D2D0E94AA06DF
+:1014E00010C020916407309165078091940390911A
+:1014F00095032817390729F481E20E9419061092F2
+:101500008F0520916407309165078091670790915E
+:1015100068072817390791F480919705823071F098
+:101520008091640790916507019690936507809379
+:10153000640785E090E00E946B2880CE809164076C
+:10154000909165078C0F9D1F9093650780936407AA
+:1015500080E090E00E941D1ECE010E94CD2880E018
+:1015600090E00E943A1E6ACEEC0102CFDD2009F421
+:101570001BCF1CCF6F927F928F929F92AF92BF92A0
+:10158000CF92DF92EF92FF920F931F93CF93DF934F
+:10159000CDB7DEB728970FB6F894DEBF0FBECDBF2C
+:1015A0003E010894611C711CC3010E94192C80909B
+:1015B000AE029090AF02A090B002B090B102C09085
+:1015C000B202D090B302E090B402F090B50209816B
+:1015D0001A812B813C814D815E816F817885C301A9
+:1015E0000E94942969817A818B819C8120E03AEC68
+:1015F0004AE95BE30E941E389B01AC016D817E814C
+:101600008F819885620F731F841F951F28EA3BE224
+:1016100046E850E00E946438DA01C9012091C7050C
+:101620003091C805820F931F28960FB6F894DEBF3D
+:101630000FBECDBFDF91CF911F910F91FF90EF9023
+:10164000DF90CF90BF90AF909F908F907F906F90E2
+:10165000089580914F070E94EE238091A8070E9471
+:10166000EE2321E030E040E050E0CA01B9010090F3
+:10167000A80704C0660F771F881F991F0A94D2F726
+:1016800000904F0704C0220F331F441F551F0A94B8
+:10169000D2F7622B732B842B952B0E941A2681E0A4
+:1016A00090E008951F93182F8091A8070E94EE23C1
+:1016B0000FC061E070E080E090E00090A80704C0F7
+:1016C000660F771F881F991F0A94D2F70E941A2667
+:1016D000812F0E949604882361F781E090E01F919A
+:1016E000089580914F070E94EE2380911A05882368
+:1016F00079F461E070E080E090E000904F0704C072
+:10170000660F771F881F991F0A94D2F70E941A2626
+:1017100081E090E00895CF93DF93FC01DB01EA01C3
+:1017200080911A05882331F410821C92188280E07F
+:1017300090E00DC080918C038083809191038C9305
+:1017400080919104888380918E0390918F03DF9123
+:10175000CF9108958091C502813019F08FEF9FEFEE
+:10176000089580914F07992787FD9095089580915E
+:10177000C502813019F08FEF9FEF08958091A8077F
+:10178000992787FD909508951F93142F403108F0F5
+:1017900052C0603208F04FC0E62FFF2721E030E052
+:1017A00040E050E00E2E04C0220F331F441F551F8F
+:1017B0000A94D2F78823A9F480919204909193041B
+:1017C000A0919404B0919504822B932BA42BB52B5C
+:1017D0008093920490939304A0939404B0939504FF
+:1017E00014C08091760390917703A0917803B09113
+:1017F0007903822B932BA42BB52B809376039093A4
+:101800007703A0937803B093790366957727E0FD7B
+:1018100006C0FB01E858F84F8081807F07C0FB01BC
+:10182000E858F84F80811295107F8F70812B80834C
+:1018300081E090E002C08FEF9FEF1F910895982FF5
+:10184000803218F08FEF9FEF08958695E82FFF27DD
+:1018500090FD09C0E858F84F8081992787FD909541
+:101860008F7090700895E858F84F808182958F703E
+:10187000992787FD90950895782F603208F04FC022
+:10188000E62FFF2781E090E00E2E02C0880F991FFF
+:101890000A94E2F79C01442737FD4095542F209588
+:1018A0003095409550957723A9F4809192049091BA
+:1018B0009304A0919404B091950482239323A423CC
+:1018C000B5238093920490939304A0939404B093CF
+:1018D000950414C08091760390917703A0917803CA
+:1018E000B091790382239323A423B52380937603B5
+:1018F00090937703A0937803B09379036695772745
+:10190000E0FD06C0FB01E858F84F8081807F05C0EC
+:10191000FB01E858F84F80818F70808308958FEF26
+:101920009FEF089581E094E090935D0780935C07BA
+:1019300090935F0780935E079093610780936007A1
+:10194000909363078093620708959C0180915C07E0
+:1019500090915D079F778150944018F080E090E06F
+:1019600023C080915E0790915F079F7781509440DC
+:1019700018F081E090E018C08091600790916107B5
+:101980009F778150944018F082E090E00DC08091E4
+:101990006207909163079F778150944018F48FEF0E
+:1019A0009FEF089583E090E0FC01EE0FFF1FE45AE3
+:1019B000F84F31832083662319F481E090E0089585
+:1019C00030683183208381E090E008959C0180910C
+:1019D0005C0790915D079F778217930719F4E0E009
+:1019E000F0E020C080915E0790915F079F7782179B
+:1019F000930719F4E1E0F0E015C080916007909141
+:101A000061079F778217930719F4E2E0F0E00AC0BC
+:101A100080916207909163079F778217930751F433
+:101A2000E3E0F0E0EE0FFF1FE45AF84F81E094E0AE
+:101A3000918380830895AC0120915C0730915D070C
+:101A4000C9019F7784179507F1F020915E073091C7
+:101A50005F07C9019F7784179507A9F02091600758
+:101A600030916107C9019F778417950761F0209134
+:101A7000620730916307C9019F778417950719F0B2
+:101A800080E090E008952150304818F081E090E027
+:101A90000895CA010E94E60C81E090E00895AC012F
+:101AA000ECE5F7E081E094E0208131813F7764E06C
+:101AB0002030360748F4241B350B1216130624F485
+:101AC000281739070CF4C901329627E0E436F207EB
+:101AD00059F764E08130960711F480E090E00895B2
+:101AE000E8E8F7E0119287E0E83AF807D9F70895B7
+:101AF000582F662319F481E090E00895482F20E0E4
+:101B000030E077276150704003C0459F402D11247D
+:101B1000822F99272F5F3F4F86179707B4F3842FA3
+:101B200099270895AF92BF92CF92DF92EF92FF92E2
+:101B30001F93CF93DF935C0168E8C62E67E0D62E33
+:101B400051E0E52E54E0F52EC0E0D0E08C2F0E944D
+:101B50001F0C682F882301F1F6011081615082E08B
+:101B60000E94780D212F332745E0220F331F4A951D
+:101B7000E1F72C0F3D1FA216B30610F0180FF2CF9D
+:101B8000F6011083C9018A199B098E159F0520F45F
+:101B90002150344008F47C0121960894C11CD11CCA
+:101BA000C032D10599F641E0E41644E0F40610F0A5
+:101BB000EE24FF24C701DF91CF911F91FF90EF909A
+:101BC000DF90CF90BF90AF9008952091690730913A
+:101BD0006A07AC01421B530B509374074093730781
+:101BE00090936A0780936907089580917307909195
+:101BF00074070895EBE6F7E08FEF819397E0E33702
+:101C0000F907D1F7809347071092660710926A0789
+:101C1000109269070895982F969595758575980F78
+:101C2000892F8695869583739373890F982F9F705C
+:101C300082958F70890F992708951F93CF93DF9313
+:101C4000CBE6D7E010E089910E940B0E180F87E0D9
+:101C5000C337D807C1F7812F9927DF91CF911F9103
+:101C60000895809147070E940B0E9927089540918F
+:101C70006607E42FE695E695E695FF27E559F84FC8
+:101C8000842F9927809590958770907021E030E09F
+:101C900002C0220F331F8A95E2F78081822B808356
+:101CA0004F5F40936607413410F010926607089525
+:101CB00040916607E42FE695E695E695FF27E559FE
+:101CC000F84F242F3327209530952770307081E00E
+:101CD00090E002C0880F991F2A95E2F78095208135
+:101CE000822380834F5F40936607413410F0109247
+:101CF00066070895883018F080E090E00895E82F96
+:101D0000FF27EE5AF84F8081992708954091770771
+:101D1000E42FE695E695E695FF27A42FBB27E95B20
+:101D2000F84FCD01809590958770907021E030E05C
+:101D300002C0220F331F8A95E2F78081822B8083B5
+:101D4000AE5AB84F1C924F5F40937707493010F05E
+:101D500010927707089560917707E62FE695E6954C
+:101D6000E695FF27A62FBB27E95BF84FAD0140950D
+:101D700050954770507021E030E002C0220F331FB1
+:101D80004A95E2F72095908129232083AE5AB84FD7
+:101D90008C936F5F60937707693010F0109277072C
+:101DA0000895EAE7F0E083E08083ACE7B0E080E408
+:101DB0008C938081806880831092AA078C91807EAA
+:101DC0008C939C918C91807E892B8C93089588ECC8
+:101DD00090E00E94A92F089580917A0080648093FA
+:101DE0007A0080917A0084FFFCCF0E94E70E209158
+:101DF00078003327809179009927982F8827822BA4
+:101E0000932B0895FF920F931F93CF93DF93CDB73A
+:101E1000DEB722970FB6F894DEBF0FBECDBF0E948B
+:101E200042118C01009711F00E94C625159AFF24DB
+:101E30008F2D806299279A83898340988BE18EBD8C
+:101E40000DB407FEFDCF89819A81892F99278EBD18
+:101E50000DB407FEFDCF89819A818EBD0DB407FEBA
+:101E6000FDCF409A82E090E00E94A92F40988BE538
+:101E70008EBD0DB407FEFDCF1EBC0DB407FEFDCF19
+:101E80008EB59927982F88279A8389831EBC0DB415
+:101E900007FEFDCF89819A812EB53327282B392B58
+:101EA0003A832983409A89819A8186FD05C0F394FB
+:101EB0002FE1F21609F0BCCF0115110519F0C80188
+:101EC0000E947424FF20C9F40E94EC0E9A83898337
+:101ED00089819A818F3A910530F089819A818E5A51
+:101EE00090409A83898389819A818A54914098F499
+:101EF0008AE491E09A8389830EC02DE7F29E9001D7
+:101F0000112488E293E2821B930B6BE170E00E9444
+:101F100051387A83698389819A8122960FB6F89421
+:101F2000DEBF0FBECDBFDF91CF911F910F91FF900C
+:101F30000895CF92DF92EF92FF920F931F93CF936A
+:101F4000DF93982FEA01122F823009F481C0833089
+:101F500030F4882371F0813009F0D2C010C0843091
+:101F600009F481C0843008F477C0853009F0C8C016
+:101F70002DC080E880BB8F9A0E94D10E6AC08091EC
+:101F8000A907813009F4C3C09093A907772760FFA0
+:101F900013C08F981092AA0780917C00807E809356
+:101FA0007C0090917C0080917C00807E892B8093C6
+:101FB0007C0088EE93E09FC061FDA9C062FDA7C0D0
+:101FC00067707070672B09F4A2C097C0822F815090
+:101FD000823008F099C09091AA07892F81508630ED
+:101FE00018F40E94EC0E22C0992319F40E94020FEB
+:101FF0001DC0973051F5F1E0CF2EF4E0DF2EEE2436
+:10200000FF2400E00E94EC0E8C159D0508F46C0185
+:10201000E816F90608F47C018DE790E00E94A92FEC
+:102020000F5F003479F7C7018C199D09123031F424
+:102030008883892F9927898381E008C0113029F48A
+:102040009695879596958795888380E08F5F09C0E0
+:102050008F9A1092A90751C0613009F058C0809141
+:10206000AA07992756C0613009F051C02730D9F42A
+:102070002093AA0780917C008F7780937C008091C9
+:102080007C00806480937C0080917C00807E8093C3
+:102090007C0090917C0080917C009360807E982BE6
+:1020A00090937C0026C0283020F081E00E94992186
+:1020B0002EC02093AA07213049F480917C008F77AD
+:1020C00080937C0080917C00806403C080917C00C0
+:1020D000806C80937C0080917C00807E80937C006B
+:1020E00090917C0080917C00807E892B812B809355
+:1020F0007C0088EC90E00E94A92F81E090E009C06C
+:1021000060E08CE00E945E2280E090E002C08FEFF1
+:1021100090E0DF91CF911F910F91FF90EF90DF90B2
+:10212000CF90089599279C01265A3E4B0B97880F14
+:10213000991F880F991F280F391FF894409888E13C
+:102140008EBD0DB407FEFDCF832F99278EBD0DB434
+:1021500007FEFDCF2EBD0DB407FEFDCF409A78944B
+:102160000895F89440981EBC0DB407FEFDCF8EB5BF
+:10217000409A789486FFF5CF08958091C0079927FB
+:102180000895CF93DF93DC01409889EC8EBD0DB4A8
+:1021900007FEFDCF80E88EBD0DB407FEFDCF92E0B7
+:1021A0009150FD01E90FF11D80818EBD0DB407FE38
+:1021B000FDCF9923A9F7409A40988BEC8EBD0DB4C2
+:1021C00007FEFDCF80E88EBD0DB407FEFDCF92E087
+:1021D0009D012E5F3F4FE9019150F901E90FF11D7B
+:1021E00080818EBD0DB407FEFDCF9923A1F7409AE3
+:1021F0008C918093C107FD0181818093C207888102
+:102200008093C30783818093C407DF91CF910895A2
+:10221000409889E18EBD0DB407FEFDCF83E08EBDF1
+:102220000DB407FEFDCF86E08EBD0DB407FEFDCFD9
+:10223000409A40988AE18EBD0DB407FEFDCF8EE036
+:102240008EBD0DB407FEFDCF8EE08EBD0DB407FE32
+:10225000FDCF409A81E08093B1070895409889E1CD
+:102260008EBD0DB407FEFDCF81E08EBD0DB407FE1F
+:10227000FDCF84EC8EBD0DB407FEFDCF409A1092C9
+:10228000B10708958091AF079091B0070895282F66
+:1022900033272F713070206E306A409885E18EBDF3
+:1022A0000DB407FEFDCF832F99278EBD0DB407FE19
+:1022B000FDCF2EBD0DB407FEFDCF409A08952091AD
+:1022C000B2073091B30738603093B3072093B20759
+:1022D000409881E18EBD0DB407FEFDCF832F992775
+:1022E0008EBD0DB407FEFDCF2EBD0DB407FEFDCF94
+:1022F000409A08952091B2073091B307377F309309
+:10230000B3072093B207409881E18EBD0DB407FE5C
+:10231000FDCF832F99278EBD0DB407FEFDCF2EBDB7
+:102320000DB407FEFDCF409A089581E08093BF076A
+:102330002091B2073091B30720613093B307209307
+:10234000B207409881E18EBD0DB407FEFDCF832F0B
+:1023500099278EBD0DB407FEFDCF2EBD0DB407FE2F
+:10236000FDCF409A08951092BF072091B207309197
+:10237000B3072F7E3093B3072093B207409881E1D3
+:102380008EBD0DB407FEFDCF832F99278EBD0DB4F2
+:1023900007FEFDCF2EBD0DB407FEFDCF409A089578
+:1023A00081E08093BC07409883E08EBD0DB407FEAA
+:1023B000FDCF409A409888E08EBD0DB407FEFDCF5A
+:1023C000409A1092C507089581E08093BC07409819
+:1023D00083E08EBD0DB407FEFDCF409A409888E0A3
+:1023E0008EBD0DB407FEFDCF409A1092C50708952B
+:1023F0001092BC07409886E08EBD0DB407FEFDCF5D
+:10240000409A1092C507089589B1992776E096956C
+:1024100087957A95E1F78170907008958CB199272E
+:1024200087FD90958827990F881F9927089589B16E
+:102430009927F6E096958795FA95E1F78170907067
+:102440000895CF93DF93CDB7DEB724970FB6F894F6
+:10245000DEBF0FBECDBF679903C080E090E00FC222
+:102460001092C007679B1FC031991DC040988FE72D
+:102470008EBD0DB407FEFDCF1EBC0DB407FEFDCF13
+:102480008EB5409A409888E08EBD0DB407FEFDCF12
+:10249000409A409888E08EBD0DB407FEFDCF409A6B
+:1024A0008FEF9FEFECC140988FE78EBD0DB407FE14
+:1024B000FDCF1EBC0DB407FEFDCF4EB5409A4F7741
+:1024C000E9F440988FE78EBD0DB407FEFDCF1EBC2A
+:1024D0000DB407FEFDCF8EB5409A409888E08EBDC2
+:1024E0000DB407FEFDCF409A409888E08EBD0DB434
+:1024F00007FEFDCF409A8EEF9FEFC1C145308CF0B3
+:10250000E091B407F091B507242F332727FD3095CC
+:102510002B5030408481992787FD9095821793072F
+:10252000C4F540988FE78EBD0DB407FEFDCF60E087
+:1025300070E0242F332727FD309506C01EBC0DB454
+:1025400007FEFDCF6F5F7F4F862F99278217930776
+:1025500014F43199F3CF409A40988FE78EBD0DB4B3
+:1025600007FEFDCF1EBC0DB407FEFDCF8EB5409A11
+:10257000409888E08EBD0DB407FEFDCF409A40988C
+:1025800088E08EBD0DB407FEFDCF409A8DEF9FEF22
+:1025900076C1E091B407F091B5074C504383409861
+:1025A0008FE78EBD0DB407FEFDCFFE0131969E0173
+:1025B0002D5F3F4F1EBC0DB407FEFDCF8EB581933E
+:1025C000E217F307B9F7409AE091B407F091B50725
+:1025D00089819A81A5E096958795AA95E1F7817002
+:1025E000878340988FE78EBD0DB407FEFDCF1EBCDC
+:1025F0000DB407FEFDCFE091B407F091B5078EB59D
+:102600008083409A40988FE78EBD0DB407FEFDCFC2
+:1026100080E007C01EBC0DB407FEFDCF8F5F843085
+:1026200011F03199F7CF409A40988FE78EBD0DB4E5
+:1026300007FEFDCF20E030E01EBC0DB407FEFDCF4D
+:10264000E091B407F091B507E20FF31F8EB58183D7
+:102650002F5F3F4F2230310579F7409A89819A8167
+:1026600083FF56C040988FE78EBD0DB407FEFDCFA7
+:10267000EBEAF7E01EBC0DB407FEFDCF8EB58193EB
+:1026800087E0EF3AF807B1F7409A409889E98EBDA4
+:102690000DB407FEFDCF80E88EBD0DB407FEFDCF63
+:1026A00092E09150E92FFF27E555F84F80818EBDCC
+:1026B0000DB407FEFDCF9923A1F7409A40988BE90E
+:1026C0008EBD0DB407FEFDCF80E88EBD0DB407FEB4
+:1026D000FDCF92E09150E92FFF27E355F84F80811D
+:1026E0008EBD0DB407FEFDCF9923A1F7409A409807
+:1026F0008CE08EBD0DB407FEFDCF409A81E0809343
+:10270000C007E091B407F091B507838184508383BB
+:1027100040988FE78EBD0DB407FEFDCF40E050E03E
+:1027200011C01EBC0DB407FEFDCFE091B407F091BF
+:10273000B5070580F681E02DE60FF11D8EB580838B
+:102740004F5F5F4F642FE091B407F091B507242FDE
+:1027500033278381992787FD9095281739070CF334
+:10276000409A40988FE78EBD0DB407FC0AC0FCCF9D
+:102770000DB407FEFDCF5EB5409A40988FE78EBD41
+:1027800002C01EBCF5CF0DB407FEFDCFFE0133968F
+:102790009E012B5F3F4F1EBC0DB407FEFDCF8EB5D3
+:1027A0008193E217F307B9F7409AE091B407F091EB
+:1027B000B5078B81808740E020E030E00AC0E091DF
+:1027C000B407F091B50785819681A80FB91F8C9148
+:1027D000480F822FE091B407F091B5072F5F3F4F6C
+:1027E000A82FBB278381992787FD9095A817B90744
+:1027F00034F34517E9F040988FE78EBD0DB407FE1E
+:10280000FDCF1EBC0DB407FEFDCF8EB5409A40989B
+:1028100088E08EBD0DB407FEFDCF409A409888E059
+:102820008EBD0DB407FEFDCF409A8CEF9FEF27C001
+:102830008C8187FF08C08091C5078F5F8093C50793
+:1028400081E090E01CC040988FE78EBD0DB407FE7C
+:10285000FDCF1EBC0DB407FEFDCF8EB5409A40984B
+:1028600088E08EBD0DB407FEFDCF409A409888E009
+:102870008EBD0DB407FEFDCF409A8BEF9FEF2496DF
+:102880000FB6F894DEBF0FBECDBFDF91CF91089594
+:102890008091C507882319F480E090E00895809125
+:1028A000C5071092C507992787FD90950895409810
+:1028B00088E08EBD0DB407FEFDCF409A409888E0B9
+:1028C0008EBD0DB407FEFDCF409A0895992787FD70
+:1028D0009095382F22272068409883E18EBD0DB453
+:1028E00007FEFDCF832F99278EBD0DB407FEFDCFC8
+:1028F0002EBD0DB407FEFDCF409A0895409886E0A6
+:102900008EBD0DB407FEFDCF409A409882E18EBD8A
+:102910000DB407FEFDCF85E08EBD0DB407FEFDCFE3
+:1029200088E08EBD0DB407FEFDCF409A40988EE240
+:102930008EBD0DB407FEFDCF88E18EBD0DB407FE40
+:10294000FDCF1EBC0DB407FEFDCF409A0E94571468
+:102950000895409886E08EBD0DB407FEFDCF409AE5
+:10296000409882E18EBD0DB407FEFDCF85E08EBD9F
+:102970000DB407FEFDCF1EBC0DB407FEFDCF409A7F
+:1029800040988EE28EBD0DB407FEFDCF1EBC0DB487
+:1029900007FEFDCF1EBC0DB407FEFDCF409A0E947E
+:1029A00057140895409884E08EBD0DB407FEFDCF06
+:1029B000409A0895409886E08EBD0DB407FEFDCF85
+:1029C000409A0895EF92FF920F931F93CF93DF9356
+:1029D000CDB7DEB722970FB6F894DEBF0FBECDBFDE
+:1029E000DC015091B107552339F040988DE08EBD40
+:1029F0000DB407FEFDCF409AFD014281642F772779
+:102A000067FD709510E020E030E008C0FD01838193
+:102A10009481E80EF91EF7018081180F822F2F5F35
+:102A20003F4FE82EFF24E616F70684F3942F945FB9
+:102A300051119C5F6799FECF4E99FCCFF894409856
+:102A400089E08EBD0DB407FEFDCF409A409889E025
+:102A50008EBD0DB407FEFDCF409A40988EE38EBD2B
+:102A60000DB407FC05C0FCCF0DB407FC2AC1FCCF98
+:102A70009EBDFACF81E698E89A838983552329F091
+:102A800089819A8188609A83898340988EE38EBD7C
+:102A90000DB407FEFDCFFE0131969E012D5F3F4F25
+:102AA00080818EBD0DB407FEFDCF3196E217F3078E
+:102AB000B9F7409A40988EE38EBD0DB407FC05C06F
+:102AC000FCCF0DB407FC08C1FCCF8091B6078EBDCA
+:102AD000F8CF0DB407FEFDCF20E030E0F901E85457
+:102AE000F84F80818EBD0DB407FEFDCF2F5F3F4FA5
+:102AF0002230310599F7409A40988EE38EBD0DB48F
+:102B000007FEFDCF20E030E0FD01E20FF31F8081E2
+:102B10008EBD0DB407FEFDCF2F5F3F4F2230310534
+:102B200099F7409A40988EE38EBD0DB407FEFDCF15
+:102B300020E030E0F901E654F84F80818EBD0DB4FD
+:102B400007FEFDCF2F5F3F4F2230310599F7409AA6
+:102B5000552399F040988EE38EBD0DB407FEFDCF4E
+:102B6000E1ECF7E080818EBD0DB407FEFDCF31961C
+:102B700087E0E53CF807B1F7409A40988EE38EBDB8
+:102B80000DB407FEFDCF20E030E00DC0FD018381D4
+:102B90009481480F591FFA0180818EBD0DB407FE44
+:102BA000FDCF2F5F3F4F422F55274617570774F32E
+:102BB000409A40988EE38EBD0DB407FC05C0FCCF53
+:102BC0000DB407FC8EC0FCCF1EBDFACF8091BC07B0
+:102BD000882339F4409883E08EBD0DB407FEFDCF05
+:102BE000409A40981EBC0DB407FEFDCF8EB5409AAA
+:102BF00081FFF7CF00E0409885E08EBD0DB407FE61
+:102C0000FDCF409A40981EBC0DB407FEFDCF1EB507
+:102C1000409A0F5F053651F478948091AF079091F8
+:102C2000B0070E94742480E090E062C084E690E0E7
+:102C30000E94E61E13FD08C0DECF409884E08EBDE2
+:102C40000DB407FEFDCF409A78944E9BFECF4E996F
+:102C5000FECF8091BF07882391F084EA92E00E9422
+:102C6000E61E319B0EC040988FE78EBD0DB407FE67
+:102C7000FDCF1EBC0DB407FEFDCF8EB5409A91E08E
+:102C80000FC0409888E08EBD0DB407FEFDCF409A7E
+:102C9000409888E08EBD0DB407FEFDCF409A90E0CD
+:102CA000F894409886E08EBD0DB407FEFDCF409AA3
+:102CB00078948091B6078F5F8093B607892F992704
+:102CC00017C0409A81E498E89A8389838091BF076E
+:102CD000882309F0CFCED2CE409A40988EE38EBDA5
+:102CE000F8CE409AFD018581882309F06FCFA5CFEA
+:102CF00022960FB6F894DEBF0FBECDBFDF91CF9105
+:102D00001F910F91FF90EF900895BF92CF92DF92A5
+:102D1000EF92FF920F931F93CF93DF93CDB7DEB760
+:102D200022970FB6F894DEBF0FBECDBF8C016B01AA
+:102D30007A010E946F30409888E08EBD0DB407FE86
+:102D4000FDCF409A409888E08EBD0DB407FEFDCFC0
+:102D5000409A6799FECF4E99FCCFF894409889E04D
+:102D60008EBD0DB407FEFDCF409A409889E08EBD20
+:102D70000DB407FEFDCF409AF8016281462F55271A
+:102D800047FD5095BB2420E030E007C0F801838167
+:102D90009481A80FB91F8C91B80E822F2F5F3F4FDF
+:102DA000A82FBB27A417B5078CF3962F945F4098E4
+:102DB0008EE38EBD0DB407FC05C0FCCF0DB407FC3F
+:102DC00010C1FCCF9EBDFACF81E698E89A83898333
+:102DD00040988EE38EBD0DB407FEFDCFFE01319607
+:102DE0009E012D5F3F4F80818EBD0DB407FEFDCF4C
+:102DF0003196E217F307B9F7409A40988EE38EBDFB
+:102E00000DB407FC05C0FCCF0DB407FCF3C0FCCF2C
+:102E10008091B6078EBDF8CF0DB407FEFDCF20E040
+:102E200030E0F901E854F84F80818EBD0DB407FE03
+:102E3000FDCF2F5F3F4F2230310599F7409A4098E0
+:102E40008EE38EBD0DB407FEFDCF20E030E0F8012B
+:102E5000E20FF31F80818EBD0DB407FEFDCF2F5F03
+:102E60003F4F2230310599F7409A40988EE38EBD4E
+:102E70000DB407FEFDCF20E030E0F901E654F84F35
+:102E800080818EBD0DB407FEFDCF2F5F3F4F2230F6
+:102E9000310599F7409AB701C6010E94F430F80154
+:102EA00085818823C1F18091BC07882339F440983B
+:102EB00083E08EBD0DB407FEFDCF409A40981EBC46
+:102EC0000DB407FEFDCF8EB5409A81FFF7CFEE24FB
+:102ED000409885E08EBD0DB407FEFDCF409A409826
+:102EE0001EBC0DB407FEFDCFFEB4409AE394F5E698
+:102EF000EF1651F478948091AF079091B0070E943B
+:102F0000742480E090E07DC084E690E00E94E61E9C
+:102F1000F3FC08C0DDCF409884E08EBD0DB407FE01
+:102F2000FDCF409A40988EE38EBD0DB407FEFDCFD5
+:102F3000F8018281482F552747FD509520E030E069
+:102F40000CC0F80183819481A80FB91F8C918EBDAC
+:102F50000DB407FEFDCF2F5F3F4FA22FBB27A41755
+:102F6000B5077CF3409A40988EE38EBD0DB407FC04
+:102F700005C0FCCF0DB407FC42C0FCCFBEBCFACFED
+:102F80004E9BFECFF8944E99FECF409888E08EBDC0
+:102F90000DB407FEFDCF409A409888E08EBD0DB479
+:102FA00007FEFDCF409A409889E08EBD0DB407FE24
+:102FB000FDCF409A409889E08EBD0DB407FEFDCF4D
+:102FC000409A409886E08EBD0DB407FEFDCF409A32
+:102FD00078948091B6078F5F8093B60781E090E088
+:102FE00010C0409AF8018681882309F0EDCE81E473
+:102FF00098E8ECCE409A40988EE38EBD0DCF409A73
+:10300000BFCF22960FB6F894DEBF0FBECDBFDF91C3
+:10301000CF911F910F91FF90EF90DF90CF90BF90D5
+:103020000895CF93DF93CDB7DEB722970FB6F8940C
+:10303000DEBF0FBECDBF9A8389839093BB07809379
+:10304000BA0784EF91E00E94A92F40988AEE8EBDC6
+:103050000DB407FEFDCF80E88EBD0DB407FEFDCF99
+:10306000FE0131969E012D5F3F4F80818EBD0DB4D4
+:1030700007FEFDCF3196E217F307B9F7409A84EFC8
+:1030800091E00E94A92F22960FB6F894DEBF0FBEE2
+:10309000CDBFDF91CF9108956F927F928F929F92D3
+:1030A000AF92BF92CF92DF92EF92FF920F931F9356
+:1030B000CF93DF93CDB7DEB722970FB6F894DEBF7C
+:1030C0000FBECDBF8C0184E690E00E94A92F78014D
+:1030D000C12CB1E0DB2E3E010894611C711CA3E001
+:1030E0008A2E912C8C0E9D1EF70180812181332721
+:1030F0009927982F8827282B392B3A83298384E610
+:1031000090E00E94A92F40988C2D80688EBD0DB450
+:1031100007FEFDCFC60195958795807C8EBD0DB4C9
+:1031200007FEFDCF83015301F50180818EBD0DB4F3
+:1031300007FEFDCF0894A11CB11CA814B904A1F787
+:10314000409A0894E11CF11C82E090E0C80ED91E60
+:1031500090E1C91691E0D90639F684E690E00E9424
+:10316000A92F20E131E040E451E01A821982409811
+:10317000842F80688EBD0DB407FEFDCFCA019595E2
+:103180008795807C8EBD0DB407FEFDCFF801808150
+:103190008EBD0DB407FEFDCF3196EA15FB05B9F7DC
+:1031A000409A4098822F80688EBD0DB407FEFDCFF7
+:1031B000C90195958795807C8EBD0DB407FEFDCF26
+:1031C000F80180818EBD0DB407FEFDCF3196EA1562
+:1031D000FB05B9F7409A2E5F3F4F4E5F5F4FE1E02E
+:1031E0002E313E0711F681E090E09A838983409862
+:1031F0008EEC8EBD0DB407FEFDCF80E88EBD0DB404
+:1032000007FEFDCFF80180818EBD0DB407FEFDCF16
+:103210003196EA15FB05B9F7409A40988EE98EBDC4
+:103220000DB407FEFDCF80E88EBD0DB407FEFDCFC7
+:10323000F80180818EBD0DB407FEFDCF0F5F1F4FDB
+:103240000A151B05A9F7409A22960FB6F894DEBF1F
+:103250000FBECDBFDF91CF911F910F91FF90EF90E7
+:10326000DF90CF90BF90AF909F908F907F906F90A6
+:103270000895CF93DF93EC01409888E08EBD0DB4A4
+:1032800007FEFDCF409A409888E08EBD0DB407FE42
+:10329000FDCF409A862F0E949210D093B507C0931D
+:1032A000B407DF91CF9108950E9492100895DF92A4
+:1032B000EF92FF920F931F93CF93DF93CDB7DEB7BB
+:1032C00022970FB6F894DEBF0FBECDBF8C01D62E6D
+:1032D0005A8349837901159A88EE93E00E94E61E8D
+:1032E000169881E090E00E94E61E169A84E690E02F
+:1032F0000E94E61EF894409881E08EBD0DB407FE52
+:10330000FDCF409A82EE92E09093B3078093B2078C
+:10331000409881E18EBD0DB407FEFDCF82E08EBDE9
+:103320000DB407FEFDCF82EE8EBD0DB407FEFDCFBE
+:10333000409A409882E18EBD0DB407FEFDCF85E036
+:103340008EBD0DB407FEFDCF1EBC0DB407FEFDCF34
+:10335000409A40988CE18EBD0DB407FEFDCF1EBC97
+:103360000DB407FEFDCF8FE78EBD0DB407FEFDCF78
+:10337000409A409889E18EBD0DB407FEFDCF81E0F3
+:103380008EBD0DB407FEFDCF84EC8EBD0DB407FEDF
+:10339000FDCF409A409887E18EBD0DB407FEFDCF6A
+:1033A0008AE18EBD0DB407FEFDCF86E58EBD0DB45E
+:1033B00007FEFDCF409A84EF91E00E94A92F40982C
+:1033C00088EE8EBD0DB407FEFDCF80E88EBD0DB436
+:1033D00007FEFDCFFE0131969E012D5F3F4F80819C
+:1033E0008EBD0DB407FEFDCF3196E217F307B9F796
+:1033F000409A84EF91E00E94A92F78948D2D0E942D
+:10340000921078941093B5070093B40789819A813C
+:103410009093B9078093B807F092BB07E092BA0780
+:103420001092B6071092BC070E94B1101092BF070D
+:103430001092B1071092C00722960FB6F894DEBF23
+:103440000FBECDBFDF91CF911F910F91FF90EF90F5
+:10345000DF9008958FEF9FEF0895813051F48091B0
+:10346000C800992787FD90958827990F881F99276D
+:103470000895882319F080E090E008958091C000BD
+:10348000992787FD90958827990F881F9927089578
+:103490008091C80087FFFCCF8091C8008F77809310
+:1034A000C8008091CE009927089585B7806185BFB7
+:1034B00086E084B987E085B981E087B988B98CE373
+:1034C0008DB98BE08AB98EE38EB988E781B980E443
+:1034D00082B908950E94551A80E58CBD81E08DBDAA
+:1034E00008958F3F09F47FC0482F55279A01277010
+:1034F000307022303105A9F12330310544F4211513
+:10350000310589F02130310509F06DC01CC024302F
+:10351000310509F446C0243031059CF125303105D0
+:1035200009F061C04EC022B1B3E056954795BA95F7
+:10353000E1F781E090E002C0880F991F4A95E2F719
+:10354000282B22B94DC085B1A3E056954795AA9581
+:10355000E1F702C0220F331F4A95E2F7822B85B9AB
+:103560003FC028B1F3E056954795FA95E1F781E021
+:1035700090E002C0880F991F4A95E2F7282B28B9DE
+:103580002FC02BB1E3E056954795EA95E1F781E02E
+:1035900090E002C0880F991F4A95E2F7282B2BB9BB
+:1035A0001FC02EB173E0569547957A95E1F781E0FB
+:1035B00090E002C0880F991F4A95E2F7282B2EB998
+:1035C0000FC021B363E0569547956A95E1F781E016
+:1035D00090E002C0880F991F4A95E2F7282B21BB83
+:1035E00081E090E008958FEF9FEF08958F3F09F4F9
+:1035F00086C0482F55279A01277030702230310538
+:10360000C1F12330310544F42115310589F0213011
+:10361000310509F074C01DC02430310509F44BC0D8
+:1036200024303105BCF12530310509F068C054C0A3
+:1036300022B1E3E056954795EA95E1F781E090E005
+:1036400002C0880F991F4A95E2F78095822382B9BC
+:1036500053C095B173E0569547957A95E1F702C04E
+:10366000220F331F4A95E2F7822F8095892385B96F
+:1036700043C028B163E0569547956A95E1F781E02C
+:1036800090E002C0880F991F4A95E2F78095822347
+:1036900088B932C02BB133E0569547953A95E1F79A
+:1036A00081E090E002C0880F991F4A95E2F780956B
+:1036B00082238BB921C02EB193E0569547959A95F8
+:1036C000E1F781E090E002C0880F991F4A95E2F788
+:1036D000809582238EB910C021B383E0569547951B
+:1036E0008A95E1F781E090E002C0880F991F4A9522
+:1036F000E2F78095822381BB81E090E008958FEF0F
+:103700009FEF08958F3F09F447C0482F5527BA010E
+:10371000677070706230710531F1633071053CF48F
+:103720006115710571F061307105B1F50CC064303F
+:103730007105E9F064307105C4F06530710561F51B
+:1037400018C020B117C083B1A3E056954795AA953C
+:10375000E1F702C0660F771F4A95E2F786239927A3
+:1037600087FD9095089526B105C029B103C02CB1FD
+:1037700001C02FB1F3E056954795FA95E1F781E046
+:1037800090E002C0880F991F4A95E2F72823822F04
+:10379000992787FD909508958FEF9FEF08958F3FAC
+:1037A00009F403C1282F3327A90147705070423014
+:1037B000510509F45CC04330510544F441155105ED
+:1037C00091F04130510509F0F0C034C0443051054A
+:1037D00009F49BC0443051050CF470C045305105CC
+:1037E00009F0E3C0B9C080B1A90173E056954795CF
+:1037F0007A95E1F79927042E02C0959587950A944A
+:10380000E2F780FD0BC022B181E090E002C0880F9A
+:10381000991F4A95E2F7282B22B9C4C022B181E052
+:1038200090E002C0880F991F4A95E2F780958223A5
+:1038300082B9B8C083B163E0369527956A95E1F700
+:103840009927022E02C0959587950A94E2F702C047
+:10385000440F551F2A95E2F780FD03C085B1842BE4
+:1038600004C095B1842F8095892385B99BC086B10A
+:10387000A90133E0569547953A95E1F79927042E2B
+:1038800002C0959587950A94E2F780FD0BC028B198
+:1038900081E090E002C0880F991F4A95E2F7282B3B
+:1038A00028B980C028B181E090E002C0880F991F3C
+:1038B0004A95E2F78095822388B974C089B1A9013D
+:1038C00023E0569547952A95E1F79927042E02C0E3
+:1038D000959587950A94E2F780FD0BC02BB181E0A6
+:1038E00090E002C0880F991F4A95E2F7282B2BB968
+:1038F00059C02BB181E090E002C0880F991F4A9512
+:10390000E2F7809582238BB94DC08CB1A90193E079
+:10391000569547959A95E1F79927042E02C09595FB
+:1039200087950A94E2F780FD0BC02EB181E090E00C
+:1039300002C0880F991F4A95E2F7282B2EB932C092
+:103940002EB181E090E002C0880F991F4A95E2F7FE
+:10395000809582238EB926C08FB1A901B3E0569518
+:103960004795BA95E1F79927042E02C0959587955A
+:103970000A94E2F780FD0BC021B381E090E002C021
+:10398000880F991F4A95E2F7282B21BB0BC021B362
+:1039900081E090E002C0880F991F4A95E2F7809578
+:1039A000822381BB81E090E008958FEF9FEF08951F
+:1039B0008F3F09F412C1482F5527662309F090C0A4
+:1039C000CA01877090708230910509F43EC083303F
+:1039D00091053CF4009789F08130910509F0FDC014
+:1039E00021C08430910509F454C0843091050CF451
+:1039F0003EC0059709F0F1C05EC031B1B3E0569505
+:103A00004795BA95E1F781E090E002C0880F991FD1
+:103A10004A95E2F7282F2095232321B922B1822B42
+:103A200082B9D8C024B1A3E056954795AA95E1F78D
+:103A300002C0880F991F4A95E2F7982F809582233C
+:103A400084B985B1982B95B9C5C037B1F3E05695C7
+:103A50004795FA95E1F781E090E002C0880F991F41
+:103A60004A95E2F7282F2095232327B935C03AB18C
+:103A7000E3E056954795EA95E1F781E090E002C0D2
+:103A8000880F991F4A95E2F7282F209523232AB9FA
+:103A900023C03DB173E0569547957A95E1F781E0F3
+:103AA00090E002C0880F991F4A95E2F7282F2095D1
+:103AB00023232DB911C030B363E0569547956A951D
+:103AC000E1F781E090E002C0880F991F4A95E2F784
+:103AD000282F2095232320BB25B1822B85B97AC0BE
+:103AE0009A012770307022303105A9F12330310559
+:103AF00044F42115310589F02130310509F06DC0FC
+:103B00001CC02430310509F446C0243031059CF135
+:103B10002530310509F061C04EC021B133E0569522
+:103B200047953A95E1F781E090E002C0880F991F30
+:103B30004A95E2F7282B21B94DC084B193E0569500
+:103B400047959A95E1F702C0220F331F4A95E2F795
+:103B5000822B84B93FC027B1B3E056954795BA95FB
+:103B6000E1F781E090E002C0880F991F4A95E2F7E3
+:103B7000282B27B92FC02AB1A3E056954795AA95BF
+:103B8000E1F781E090E002C0880F991F4A95E2F7C3
+:103B9000282B2AB91FC02DB1F3E056954795FA9509
+:103BA000E1F781E090E002C0880F991F4A95E2F7A3
+:103BB000282B2DB90FC020B3E3E056954795EA9521
+:103BC000E1F781E090E002C0880F991F4A95E2F783
+:103BD000282B20BB81E090E008958FEF9FEF0895A0
+:103BE000882319F08FEF9FEF089580B1992787FD03
+:103BF0009095809590958827990F881F992708950B
+:103C0000009711F484E109C08130910511F48CE131
+:103C100004C08230910531F484E20E94CF1B81E020
+:103C200090E00895039719F08FEF9FEF08958CE2CD
+:103C30000E94CF1B81E090E00895009711F484E189
+:103C400009C08130910511F48CE104C082309105E6
+:103C500031F484E20E94711A81E090E008950397A4
+:103C600019F08FEF9FEF08958CE20E94711A81E0A6
+:103C700090E00895009711F484E109C08130910526
+:103C800011F48CE104C08230910531F484E20E9489
+:103C9000F61A81E090E00895039719F08FEF9FEFF7
+:103CA00008958CE20E94F61A81E090E0089588233E
+:103CB00019F085B78F7E02C085B7806185BF81E02E
+:103CC00090E00895982F8091C00085FFFCCF8091EF
+:103CD000C0008F7D8093C0009093C6000895982FF8
+:103CE0008091C80085FFFCCF9093CE000895292FC6
+:103CF00033272093C5008093C40086E08093C200E0
+:103D0000E1ECF0E080818B7F8083A0ECB0E08C91CF
+:103D100082608C938081886180830895292F332766
+:103D20002093CD008093CC0086E08093CA00E9EC1C
+:103D3000F0E080818B7F8083A8ECB0E08C91826082
+:103D40008C9380818861808308958091C00087FF73
+:103D5000FCCF8091C0008F778093C0008091C60017
+:103D600099270895EF92FF920F931F930E948E1E42
+:103D700008E41AE15FE6E52E5EE1F52EB801C70121
+:103D80000E9432369093870880938608B801C70155
+:103D90000E94323690938508809384081F910F917A
+:103DA000FF90EF900895CF93DF93EC0107C06091EF
+:103DB00086087091870899270E948236FE01219615
+:103DC00084918823A1F7DF91CF910895000000002E
+:103DD000000000000197D1F70895FC01A7E0B0E0D2
+:103DE0000E948638802D808381E090E00895FC0158
+:103DF0008081A7E0B0E0082E0E948E3881E090E03C
+:103E00000895DC010E948638802D99270895FC01D1
+:103E1000A0E0B0E00E948638402D4383A1E0B0E0EE
+:103E20000E948638802D8283A2E0B0E00E9486380E
+:103E3000302D3183A3E0B0E00E948638902D90832E
+:103E4000A4E0B0E00E948638202D830F840F890FF4
+:103E5000281719F481E090E008958FEF9FEF0895FF
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.lss Sat Dec 11
12:36:09 2010
@@ -0,0 +1,16002 @@
+
+main.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 000000ae 00800200 0000716c 00007200 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 0000716c 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 000005e0 008002ae 008002ae 000072ae 2**0
+ ALLOC
+ 3 .stab 0000f120 00000000 00000000 000072b0 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 000064e8 00000000 00000000 000163d0 2**0
+ CONTENTS, READONLY, DEBUGGING
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 ae 01 jmp 0x35c ; 0x35c <__init>
+ 4: 0c 94 c0 32 jmp 0x6580 ; 0x6580 <__vector_1>
+ 8: 0c 94 92 32 jmp 0x6524 ; 0x6524 <__vector_2>
+ c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 10: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 14: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 18: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 1c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 20: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 24: 0c 94 ee 32 jmp 0x65dc ; 0x65dc <__vector_9>
+ 28: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 2c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 30: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 34: 0c 94 73 30 jmp 0x60e6 ; 0x60e6 <__vector_13>
+ 38: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 3c: 0c 94 73 30 jmp 0x60e6 ; 0x60e6 <__vector_13>
+ 40: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 44: 0c 94 a6 30 jmp 0x614c ; 0x614c <__vector_17>
+ 48: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 4c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 50: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 54: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 58: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 5c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 60: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 64: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 68: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 6c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 70: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 74: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 78: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 7c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 80: 0c 94 b0 30 jmp 0x6160 ; 0x6160 <__vector_32>
+ 84: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 88: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 8c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 90: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 94: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 98: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ 9c: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ a0: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ a4: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ a8: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ ac: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ b0: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ b4: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ b8: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ bc: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ c0: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ c4: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+ c8: 0c 94 cd 01 jmp 0x39a ; 0x39a <__bad_interrupt>
+
+000000cc <__ctors_end>:
+ cc: f2 21 and r31, r2
+ ce: f8 21 and r31, r8
+ d0: fb 21 and r31, r11
+ d2: fe 21 and r31, r14
+ d4: 01 22 and r0, r17
+ d6: 04 22 and r0, r20
+ d8: 0a 22 and r0, r26
+ da: 07 22 and r0, r23
+ dc: 0d 22 and r0, r29
+ de: 10 22 and r1, r16
+ e0: 13 22 and r1, r19
+ e2: 19 22 and r1, r25
+ e4: 1c 22 and r1, r28
+ e6: 1f 22 and r1, r31
+ e8: 22 22 and r2, r18
+ ea: 16 22 and r1, r22
+ ec: ef 21 and r30, r15
+ ee: f5 21 and r31, r5
+
+000000f0 <__c.2602>:
+ f0: 46 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 6d Failed to
load m
+ 100: 79 20 41 44 43 20 64 72 69 76 65 72 0d 0a 00 y ADC
driver...
+
+0000010f <__c.2534>:
+ 10f: 46 61 69 6c 65 64 20 74 6f 20 6f 70 65 6e 20 73 Failed to
open s
+ 11f: 65 6e 73 6f 72 20 64 72 69 76 65 72 0d 0a 00 ensor
driver...
+
+0000012e <__c.2963>:
+ 12e: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 13e: 72 65 61 74 69 6e 67 20 74 78 20 73 69 67 6e 61 reating tx
signa
+ 14e: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+00000159 <__c.2961>:
+ 159: 52 54 2d 4c 69 6e 6b 20 45 52 52 4f 52 3a 20 63 RT-Link
ERROR: c
+ 169: 72 65 61 74 69 6e 67 20 72 78 20 73 69 67 6e 61 reating rx
signa
+ 179: 6c 20 66 61 69 6c 65 64 0d 0a 00 l failed...
+
+00000184 <__c.2376>:
+ 184: 55 4e 4b 4f 57 4e 00 UNKOWN.
+
+0000018b <__c.2373>:
+ 18b: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 19b: 20 53 65 6d 61 70 68 6f 72 65 00 Semaphore.
+
+000001a6 <__c.2370>:
+ 1a6: 46 61 69 6c 65 64 20 74 6f 20 63 72 65 61 74 65 Failed to
create
+ 1b6: 20 53 69 67 6e 61 6c 00 Signal.
+
+000001be <__c.2367>:
+ 1be: 4b 65 72 6e 65 6c 20 66 75 6e 63 74 69 6f 6e 20 Kernel
function
+ 1ce: 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 00 not
implemented.
+
+000001de <__c.2364>:
+ 1de: 44 65 76 69 63 65 20 44 72 69 76 65 72 20 45 72 Device
Driver Er
+ 1ee: 72 6f 72 00 ror.
+
+000001f2 <__c.2361>:
+ 1f2: 57 61 74 63 68 64 6f 67 20 52 65 73 74 61 72 74 Watchdog
Restart
+ ...
+
+00000203 <__c.2358>:
+ 203: 54 69 6d 65 72 20 4f 76 65 72 66 6c 6f 77 00 Timer
Overflow.
+
+00000212 <__c.2355>:
+ 212: 55 6e 68 61 6e 64 6c 65 64 20 49 6e 74 65 72 72 Unhandled
Interr
+ 222: 75 70 74 20 56 65 63 74 6f 72 00 upt Vector.
+
+0000022d <__c.2352>:
+ 22d: 4c 6f 77 20 56 6f 6c 74 61 67 65 00 Low Voltage.
+
+00000239 <__c.2349>:
+ 239: 45 78 74 72 61 20 54 61 73 6b 20 73 74 61 72 74 Extra Task
start
+ 249: 65 64 2c 20 69 73 20 6e 72 6b 5f 63 66 67 2e 68 ed, is
nrk_cfg.h
+ 259: 20 6f 6b 3f 00 ok?.
+
+0000025e <__c.2346>:
+ 25e: 49 64 6c 65 20 6f 72 20 4b 65 72 6e 65 6c 20 53 Idle or
Kernel S
+ 26e: 74 61 63 6b 20 4f 76 65 72 66 6c 6f 77 00 tack
Overflow.
+
+0000027c <__c.2343>:
+ 27c: 55 6e 65 78 70 65 63 74 65 64 20 52 65 73 74 61 Unexpected
Resta
+ 28c: 72 74 00 rt.
+
+0000028f <__c.2340>:
+ 28f: 44 75 70 6c 69 63 61 74 65 64 20 54 61 73 6b 20 Duplicated
Task
+ 29f: 49 44 00 ID.
+
+000002a2 <__c.2337>:
+ 2a2: 53 63 68 65 64 75 6c 65 72 20 4d 69 73 73 65 64 Scheduler
Missed
+ 2b2: 20 57 61 6b 65 75 70 00 Wakeup.
+
+000002ba <__c.2334>:
+ 2ba: 54 61 73 6b 20 52 65 73 65 72 76 65 20 56 69 6f Task Reserve
Vio
+ 2ca: 6c 61 74 65 64 00 lated.
+
+000002d0 <__c.2331>:
+ 2d0: 52 65 73 65 72 76 65 20 45 72 72 6f 72 20 69 6e Reserve
Error in
+ 2e0: 20 53 63 68 65 64 75 6c 65 72 00 Scheduler.
+
+000002eb <__c.2328>:
+ 2eb: 49 6e 76 61 6c 69 64 20 53 74 61 63 6b 20 50 6f Invalid
Stack Po
+ 2fb: 69 6e 74 65 72 00 inter.
+
+00000301 <__c.2325>:
+ 301: 54 61 73 6b 20 53 74 61 63 6b 20 4f 76 65 72 66 Task Stack
Overf
+ 311: 6c 6f 77 00 low.
+
+00000315 <__c.2321>:
+ 315: 53 74 61 63 6b 20 77 61 73 20 6e 6f 74 20 64 65 Stack was
not de
+ 325: 66 69 6e 65 64 20 61 73 20 6c 61 72 67 65 20 65 fined as
large e
+ 335: 6e 6f 75 67 68 21 00 nough!.
+
+0000033c <__c.2318>:
+ 33c: 29 3a 20 00 ): .
+
+00000340 <__c.2316>:
+ 340: 2a 4e 52 4b 20 45 52 52 4f 52 28 00 *NRK ERROR(.
+
+0000034c <__c.2249>:
+ 34c: 0d 0a 53 54 41 43 4b 20 44 55 4d 50 0d 0a 00 00 ..STACK
DUMP....
+
+0000035c <__init>:
+ 35c: 11 24 eor r1, r1
+ 35e: 1f be out 0x3f, r1 ; 63
+ 360: cf ef ldi r28, 0xFF ; 255
+ 362: d1 e2 ldi r29, 0x21 ; 33
+ 364: de bf out 0x3e, r29 ; 62
+ 366: cd bf out 0x3d, r28 ; 61
+
+00000368 <__do_copy_data>:
+ 368: 12 e0 ldi r17, 0x02 ; 2
+ 36a: a0 e0 ldi r26, 0x00 ; 0
+ 36c: b2 e0 ldi r27, 0x02 ; 2
+ 36e: ec e6 ldi r30, 0x6C ; 108
+ 370: f1 e7 ldi r31, 0x71 ; 113
+ 372: 00 e0 ldi r16, 0x00 ; 0
+ 374: 0b bf out 0x3b, r16 ; 59
+ 376: 02 c0 rjmp .+4 ; 0x37c <__do_copy_data+0x14>
+ 378: 07 90 elpm r0, Z+
+ 37a: 0d 92 st X+, r0
+ 37c: ae 3a cpi r26, 0xAE ; 174
+ 37e: b1 07 cpc r27, r17
+ 380: d9 f7 brne .-10 ; 0x378 <__do_copy_data+0x10>
+
+00000382 <__do_clear_bss>:
+ 382: 18 e0 ldi r17, 0x08 ; 8
+ 384: ae ea ldi r26, 0xAE ; 174
+ 386: b2 e0 ldi r27, 0x02 ; 2
+ 388: 01 c0 rjmp .+2 ; 0x38c <.do_clear_bss_start>
+
+0000038a <.do_clear_bss_loop>:
+ 38a: 1d 92 st X+, r1
+
+0000038c <.do_clear_bss_start>:
+ 38c: ae 38 cpi r26, 0x8E ; 142
+ 38e: b1 07 cpc r27, r17
+ 390: e1 f7 brne .-8 ; 0x38a <.do_clear_bss_loop>
+ 392: 0e 94 25 04 call 0x84a ; 0x84a <main>
+ 396: 0c 94 b5 38 jmp 0x716a ; 0x716a <_exit>
+
+0000039a <__bad_interrupt>:
+ 39a: 0c 94 de 30 jmp 0x61bc ; 0x61bc <__vector_default>
+
+0000039e <monome_comm_set_msg>:
+ val=nrk_register_driver( &dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to load my ADC driver\r\n")
);
+
+}
+inline void monome_comm_set_msg(uint8_t msg){
+ 39e: cf 93 push r28
+ 3a0: df 93 push r29
+ if(msg & 0x01){
+ 3a2: c8 2f mov r28, r24
+ 3a4: dd 27 eor r29, r29
+ 3a6: c0 ff sbrs r28, 0
+ 3a8: 05 c0 rjmp .+10 ; 0x3b4 <monome_comm_set_msg+0x16>
+ nrk_gpio_set(BIT0);
+ 3aa: 80 91 32 02 lds r24, 0x0232
+ 3ae: 0e 94 71 1a call 0x34e2 ; 0x34e2 <nrk_gpio_set>
+ 3b2: 04 c0 rjmp .+8 ; 0x3bc <monome_comm_set_msg+0x1e>
+ }
+ else{
+ nrk_gpio_clr(BIT0);
+ 3b4: 80 91 32 02 lds r24, 0x0232
+ 3b8: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ }
+ if(msg & 0x02){
+ 3bc: c1 ff sbrs r28, 1
+ 3be: 05 c0 rjmp .+10 ; 0x3ca <monome_comm_set_msg+0x2c>
+ nrk_gpio_set(BIT1);
+ 3c0: 80 91 3e 02 lds r24, 0x023E
+ 3c4: 0e 94 71 1a call 0x34e2 ; 0x34e2 <nrk_gpio_set>
+ 3c8: 04 c0 rjmp .+8 ; 0x3d2 <monome_comm_set_msg+0x34>
+ }
+ else{
+ nrk_gpio_clr(BIT1);
+ 3ca: 80 91 3e 02 lds r24, 0x023E
+ 3ce: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ }
+ if(msg & 0x04){
+ 3d2: c2 ff sbrs r28, 2
+ 3d4: 05 c0 rjmp .+10 ; 0x3e0 <monome_comm_set_msg+0x42>
+ nrk_gpio_set(BIT2);
+ 3d6: 80 91 31 02 lds r24, 0x0231
+ 3da: 0e 94 71 1a call 0x34e2 ; 0x34e2 <nrk_gpio_set>
+ 3de: 04 c0 rjmp .+8 ; 0x3e8 <monome_comm_set_msg+0x4a>
+ }
+ else{
+ nrk_gpio_clr(BIT2);
+ 3e0: 80 91 31 02 lds r24, 0x0231
+ 3e4: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ }
+ if(msg & 0x08){
+ 3e8: c3 ff sbrs r28, 3
+ 3ea: 05 c0 rjmp .+10 ; 0x3f6 <monome_comm_set_msg+0x58>
+ nrk_gpio_set(BIT3);
+ 3ec: 80 91 42 02 lds r24, 0x0242
+ 3f0: 0e 94 71 1a call 0x34e2 ; 0x34e2 <nrk_gpio_set>
+ 3f4: 04 c0 rjmp .+8 ; 0x3fe <monome_comm_set_msg+0x60>
+ }
+ else{
+ nrk_gpio_clr(BIT3);
+ 3f6: 80 91 42 02 lds r24, 0x0242
+ 3fa: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 3fe: df 91 pop r29
+ 400: cf 91 pop r28
+ 402: 08 95 ret
+
+00000404 <monome_setup_system>:
+ 404: 10 92 7f 03 sts 0x037F, r1
+ 408: 8f ef ldi r24, 0xFF ; 255
+ 40a: 80 93 93 03 sts 0x0393, r24
+ 40e: 80 91 32 02 lds r24, 0x0232
+ 412: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 416: 80 91 3e 02 lds r24, 0x023E
+ 41a: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 41e: 80 91 31 02 lds r24, 0x0231
+ 422: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 426: 80 91 42 02 lds r24, 0x0242
+ 42a: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 42e: 80 91 43 02 lds r24, 0x0243
+ 432: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 436: 08 95 ret
+
+00000438 <monome_comm_send_msg>:
+ }
+}
+inline void monome_comm_send_msg(){
+ 438: 1f 93 push r17
+ nrk_led_set(RED_LED);
+ 43a: 83 e0 ldi r24, 0x03 ; 3
+ 43c: 90 e0 ldi r25, 0x00 ; 0
+ 43e: 0e 94 3a 1e call 0x3c74 ; 0x3c74 <nrk_led_set>
+ nrk_gpio_set(IRQ);
+ 442: 10 91 43 02 lds r17, 0x0243
+ 446: 81 2f mov r24, r17
+ 448: 0e 94 71 1a call 0x34e2 ; 0x34e2 <nrk_gpio_set>
+ nrk_spin_wait_us(1000); /**TO-DO: experiment to see how quick a change
HCS12 can handle */
+ 44c: 88 ee ldi r24, 0xE8 ; 232
+ 44e: 93 e0 ldi r25, 0x03 ; 3
+ 450: 0e 94 a9 2f call 0x5f52 ; 0x5f52 <nrk_spin_wait_us>
+ nrk_gpio_clr(IRQ);
+ 454: 81 2f mov r24, r17
+ 456: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ nrk_led_clr(RED_LED);
+ 45a: 83 e0 ldi r24, 0x03 ; 3
+ 45c: 90 e0 ldi r25, 0x00 ; 0
+ 45e: 0e 94 1d 1e call 0x3c3a ; 0x3c3a <nrk_led_clr>
+ 462: 1f 91 pop r17
+ 464: 08 95 ret
+
+00000466 <monome_erase>:
+}
+
+void monome_move(uint8_t direction){
+ monome_comm_set_msg(direction);
+ monome_comm_send_msg();
+}
+
+void monome_draw(){
+ while(nrk_gpio_get(DRAW_BUTTON)); //debounce
+ //if(state == SELECT || state == GAMEPLAY || state == PREGAME || state ==
GAMEOVER_CHOICE){
+ // respond to controls only if in appropriate state
+ monome_comm_set_msg(DRAW);
+ monome_comm_send_msg();
+ //}//
+}
+
+void monome_erase(){
+ 466: 1f 93 push r17
+ while(nrk_gpio_get(ERASE_BUTTON)); //debounce
+ 468: 10 91 3d 02 lds r17, 0x023D
+ 46c: 81 2f mov r24, r17
+ 46e: 0e 94 82 1b call 0x3704 ; 0x3704 <nrk_gpio_get>
+ 472: 88 23 and r24, r24
+ 474: d9 f7 brne .-10 ; 0x46c <monome_erase+0x6>
+ //if(state == SELECT || state == GAMEPLAY || state == PREGAME || state ==
GAMEOVER_CHOICE){
+ // respond to controls only if in appropriate state
+ monome_comm_set_msg(ERASE);
+ 476: 86 e0 ldi r24, 0x06 ; 6
+ 478: 0e 94 cf 01 call 0x39e ; 0x39e <monome_comm_set_msg>
+ monome_comm_send_msg();
+ 47c: 0e 94 1c 02 call 0x438 ; 0x438 <monome_comm_send_msg>
+ 480: 1f 91 pop r17
+ 482: 08 95 ret
+
+00000484 <monome_draw>:
+ 484: 1f 93 push r17
+ 486: 10 91 3c 02 lds r17, 0x023C
+ 48a: 81 2f mov r24, r17
+ 48c: 0e 94 82 1b call 0x3704 ; 0x3704 <nrk_gpio_get>
+ 490: 88 23 and r24, r24
+ 492: d9 f7 brne .-10 ; 0x48a <monome_draw+0x6>
+ 494: 85 e0 ldi r24, 0x05 ; 5
+ 496: 0e 94 cf 01 call 0x39e ; 0x39e <monome_comm_set_msg>
+ 49a: 0e 94 1c 02 call 0x438 ; 0x438 <monome_comm_send_msg>
+ 49e: 1f 91 pop r17
+ 4a0: 08 95 ret
+
+000004a2 <monome_move>:
+ 4a2: 0e 94 cf 01 call 0x39e ; 0x39e <monome_comm_set_msg>
+ 4a6: 0e 94 1c 02 call 0x438 ; 0x438 <monome_comm_send_msg>
+ 4aa: 08 95 ret
+
+000004ac <nrk_register_drivers>:
+ 4ac: 61 e0 ldi r22, 0x01 ; 1
+ 4ae: 89 e9 ldi r24, 0x99 ; 153
+ 4b0: 9f e0 ldi r25, 0x0F ; 15
+ 4b2: 0e 94 90 2e call 0x5d20 ; 0x5d20 <nrk_register_driver>
+ 4b6: 8f 3f cpi r24, 0xFF ; 255
+ 4b8: 21 f4 brne .+8 ; 0x4c2 <nrk_register_drivers+0x16>
+ 4ba: 80 ef ldi r24, 0xF0 ; 240
+ 4bc: 90 e0 ldi r25, 0x00 ; 0
+ 4be: 0e 94 d3 1e call 0x3da6 ; 0x3da6 <nrk_kprintf>
+ 4c2: 08 95 ret
+
+000004c4 <monome_set_player_num>:
+ 4c4: 1f 93 push r17
+ 4c6: 80 e0 ldi r24, 0x00 ; 0
+ 4c8: 92 e0 ldi r25, 0x02 ; 2
+ 4ca: 0e 94 cf 36 call 0x6d9e ; 0x6d9e <puts>
+ 4ce: 80 91 93 03 lds r24, 0x0393
+ 4d2: 99 27 eor r25, r25
+ 4d4: 9f 93 push r25
+ 4d6: 8f 93 push r24
+ 4d8: 80 e1 ldi r24, 0x10 ; 16
+ 4da: 92 e0 ldi r25, 0x02 ; 2
+ 4dc: 9f 93 push r25
+ 4de: 8f 93 push r24
+ 4e0: 0e 94 af 36 call 0x6d5e ; 0x6d5e <printf>
+ 4e4: 0f 90 pop r0
+ 4e6: 0f 90 pop r0
+ 4e8: 0f 90 pop r0
+ 4ea: 0f 90 pop r0
+ 4ec: 10 91 93 03 lds r17, 0x0393
+ 4f0: 12 30 cpi r17, 0x02 ; 2
+ 4f2: b9 f0 breq .+46 ; 0x522 <monome_set_player_num+0x5e>
+ 4f4: 13 30 cpi r17, 0x03 ; 3
+ 4f6: 18 f4 brcc .+6 ; 0x4fe <monome_set_player_num+0x3a>
+ 4f8: 11 30 cpi r17, 0x01 ; 1
+ 4fa: 29 f4 brne .+10 ; 0x506 <monome_set_player_num+0x42>
+ 4fc: 07 c0 rjmp .+14 ; 0x50c <monome_set_player_num+0x48>
+ 4fe: 13 30 cpi r17, 0x03 ; 3
+ 500: 61 f0 breq .+24 ; 0x51a <monome_set_player_num+0x56>
+ 502: 14 30 cpi r17, 0x04 ; 4
+ 504: 89 f0 breq .+34 ; 0x528 <monome_set_player_num+0x64>
+ 506: 80 e0 ldi r24, 0x00 ; 0
+ 508: 90 e0 ldi r25, 0x00 ; 0
+ 50a: 17 c0 rjmp .+46 ; 0x53a <monome_set_player_num+0x76>
+ 50c: 83 e0 ldi r24, 0x03 ; 3
+ 50e: 90 e0 ldi r25, 0x00 ; 0
+ 510: 0e 94 3a 1e call 0x3c74 ; 0x3c74 <nrk_led_set>
+ 514: 10 93 7f 03 sts 0x037F, r17
+ 518: 0e c0 rjmp .+28 ; 0x536 <monome_set_player_num+0x72>
+ 51a: 83 e0 ldi r24, 0x03 ; 3
+ 51c: 90 e0 ldi r25, 0x00 ; 0
+ 51e: 0e 94 3a 1e call 0x3c74 ; 0x3c74 <nrk_led_set>
+ 522: 82 e0 ldi r24, 0x02 ; 2
+ 524: 90 e0 ldi r25, 0x00 ; 0
+ 526: 02 c0 rjmp .+4 ; 0x52c <monome_set_player_num+0x68>
+ 528: 81 e0 ldi r24, 0x01 ; 1
+ 52a: 90 e0 ldi r25, 0x00 ; 0
+ 52c: 0e 94 3a 1e call 0x3c74 ; 0x3c74 <nrk_led_set>
+ 530: 81 e0 ldi r24, 0x01 ; 1
+ 532: 80 93 7f 03 sts 0x037F, r24
+ 536: 81 e0 ldi r24, 0x01 ; 1
+ 538: 90 e0 ldi r25, 0x00 ; 0
+ 53a: 1f 91 pop r17
+ 53c: 08 95 ret
+
+0000053e <monome_comm_init>:
+ 53e: 80 e0 ldi r24, 0x00 ; 0
+ 540: 0e 94 79 05 call 0xaf2 ; 0xaf2 <rtl_init>
+ 544: 41 e0 ldi r20, 0x01 ; 1
+ 546: 65 e0 ldi r22, 0x05 ; 5
+ 548: 80 e0 ldi r24, 0x00 ; 0
+ 54a: 0e 94 c4 0b call 0x1788 ; 0x1788 <rtl_set_schedule>
+ 54e: 41 e0 ldi r20, 0x01 ; 1
+ 550: 63 e0 ldi r22, 0x03 ; 3
+ 552: 80 e0 ldi r24, 0x00 ; 0
+ 554: 0e 94 c4 0b call 0x1788 ; 0x1788 <rtl_set_schedule>
+ 558: 41 e0 ldi r20, 0x01 ; 1
+ 55a: 62 e0 ldi r22, 0x02 ; 2
+ 55c: 81 e0 ldi r24, 0x01 ; 1
+ 55e: 0e 94 c4 0b call 0x1788 ; 0x1788 <rtl_set_schedule>
+ 562: 0e 94 35 05 call 0xa6a ; 0xa6a <rtl_start>
+ 566: 64 e7 ldi r22, 0x74 ; 116
+ 568: 8d e1 ldi r24, 0x1D ; 29
+ 56a: 94 e0 ldi r25, 0x04 ; 4
+ 56c: 0e 94 d0 04 call 0x9a0 ; 0x9a0 <rtl_rx_pkt_set_buffer>
+ 570: 80 91 32 02 lds r24, 0x0232
+ 574: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 578: 80 91 3e 02 lds r24, 0x023E
+ 57c: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 580: 80 91 31 02 lds r24, 0x0231
+ 584: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 588: 80 91 42 02 lds r24, 0x0242
+ 58c: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 590: 80 91 43 02 lds r24, 0x0243
+ 594: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 598: 08 95 ret
+
+0000059a <nrk_create_taskset>:
+ 59a: 0f 93 push r16
+ 59c: 1f 93 push r17
+ 59e: 89 e2 ldi r24, 0x29 ; 41
+ 5a0: 93 e0 ldi r25, 0x03 ; 3
+ 5a2: 90 93 a0 05 sts 0x05A0, r25
+ 5a6: 80 93 9f 05 sts 0x059F, r24
+ 5aa: 0a e9 ldi r16, 0x9A ; 154
+ 5ac: 15 e0 ldi r17, 0x05 ; 5
+ 5ae: 40 e8 ldi r20, 0x80 ; 128
+ 5b0: 50 e0 ldi r21, 0x00 ; 0
+ 5b2: 68 e9 ldi r22, 0x98 ; 152
+ 5b4: 74 e0 ldi r23, 0x04 ; 4
+ 5b6: c8 01 movw r24, r16
+ 5b8: 0e 94 ca 33 call 0x6794 ; 0x6794 <nrk_task_set_stk>
+ 5bc: 81 e0 ldi r24, 0x01 ; 1
+ 5be: 80 93 a2 05 sts 0x05A2, r24
+ 5c2: 80 93 a1 05 sts 0x05A1, r24
+ 5c6: 80 93 a3 05 sts 0x05A3, r24
+ 5ca: 80 93 a4 05 sts 0x05A4, r24
+ 5ce: 10 92 a5 05 sts 0x05A5, r1
+ 5d2: 10 92 a6 05 sts 0x05A6, r1
+ 5d6: 10 92 a7 05 sts 0x05A7, r1
+ 5da: 10 92 a8 05 sts 0x05A8, r1
+ 5de: 80 e0 ldi r24, 0x00 ; 0
+ 5e0: 95 e6 ldi r25, 0x65 ; 101
+ 5e2: ad ec ldi r26, 0xCD ; 205
+ 5e4: bd e1 ldi r27, 0x1D ; 29
+ 5e6: 80 93 a9 05 sts 0x05A9, r24
+ 5ea: 90 93 aa 05 sts 0x05AA, r25
+ 5ee: a0 93 ab 05 sts 0x05AB, r26
+ 5f2: b0 93 ac 05 sts 0x05AC, r27
+ 5f6: 10 92 ad 05 sts 0x05AD, r1
+ 5fa: 10 92 ae 05 sts 0x05AE, r1
+ 5fe: 10 92 af 05 sts 0x05AF, r1
+ 602: 10 92 b0 05 sts 0x05B0, r1
+ 606: 80 e0 ldi r24, 0x00 ; 0
+ 608: 92 ec ldi r25, 0xC2 ; 194
+ 60a: ab ee ldi r26, 0xEB ; 235
+ 60c: bb e0 ldi r27, 0x0B ; 11
+ 60e: 80 93 b1 05 sts 0x05B1, r24
+ 612: 90 93 b2 05 sts 0x05B2, r25
+ 616: a0 93 b3 05 sts 0x05B3, r26
+ 61a: b0 93 b4 05 sts 0x05B4, r27
+ 61e: 10 92 b5 05 sts 0x05B5, r1
+ 622: 10 92 b6 05 sts 0x05B6, r1
+ 626: 10 92 b7 05 sts 0x05B7, r1
+ 62a: 10 92 b8 05 sts 0x05B8, r1
+ 62e: 10 92 b9 05 sts 0x05B9, r1
+ 632: 10 92 ba 05 sts 0x05BA, r1
+ 636: 10 92 bb 05 sts 0x05BB, r1
+ 63a: 10 92 bc 05 sts 0x05BC, r1
+ 63e: c8 01 movw r24, r16
+ 640: 0e 94 3e 29 call 0x527c ; 0x527c <nrk_activate_task>
+ 644: 84 e2 ldi r24, 0x24 ; 36
+ 646: 92 e0 ldi r25, 0x02 ; 2
+ 648: 0e 94 cf 36 call 0x6d9e ; 0x6d9e <puts>
+ 64c: 1f 91 pop r17
+ 64e: 0f 91 pop r16
+ 650: 08 95 ret
+
+00000652 <main_task>:
+ 652: 6f 92 push r6
+ 654: 7f 92 push r7
+ 656: 8f 92 push r8
+ 658: 9f 92 push r9
+ 65a: af 92 push r10
+ 65c: bf 92 push r11
+ 65e: cf 92 push r12
+ 660: df 92 push r13
+ 662: ef 92 push r14
+ 664: ff 92 push r15
+ 666: 1f 93 push r17
+ 668: cf 93 push r28
+ 66a: df 93 push r29
+ 66c: cd b7 in r28, 0x3d ; 61
+ 66e: de b7 in r29, 0x3e ; 62
+ 670: 26 97 sbiw r28, 0x06 ; 6
+ 672: 0f b6 in r0, 0x3f ; 63
+ 674: f8 94 cli
+ 676: de bf out 0x3e, r29 ; 62
+ 678: 0f be out 0x3f, r0 ; 63
+ 67a: cd bf out 0x3d, r28 ; 61
+ 67c: 80 e0 ldi r24, 0x00 ; 0
+ 67e: 0e 94 75 31 call 0x62ea ; 0x62ea <nrk_ext_int_enable>
+ 682: 81 e0 ldi r24, 0x01 ; 1
+ 684: 0e 94 75 31 call 0x62ea ; 0x62ea <nrk_ext_int_enable>
+ 688: 10 92 95 05 sts 0x0595, r1
+ 68c: 10 92 94 05 sts 0x0594, r1
+ 690: 10 92 93 05 sts 0x0593, r1
+ 694: 10 92 92 05 sts 0x0592, r1
+ 698: 10 92 4f 03 sts 0x034F, r1
+ 69c: 10 92 4e 03 sts 0x034E, r1
+ 6a0: 81 e0 ldi r24, 0x01 ; 1
+ 6a2: 80 93 1b 04 sts 0x041B, r24
+ 6a6: 0e 94 02 02 call 0x404 ; 0x404 <monome_setup_system>
+ 6aa: ee 24 eor r14, r14
+ 6ac: ff 24 eor r15, r15
+ 6ae: bf e0 ldi r27, 0x0F ; 15
+ 6b0: 6b 2e mov r6, r27
+ 6b2: b1 e0 ldi r27, 0x01 ; 1
+ 6b4: 7b 2e mov r7, r27
+ 6b6: 4e 01 movw r8, r28
+ 6b8: 08 94 sec
+ 6ba: 81 1c adc r8, r1
+ 6bc: 91 1c adc r9, r1
+ 6be: a3 e0 ldi r26, 0x03 ; 3
+ 6c0: aa 2e mov r10, r26
+ 6c2: b1 2c mov r11, r1
+ 6c4: ac 0e add r10, r28
+ 6c6: bd 1e adc r11, r29
+ 6c8: f5 e0 ldi r31, 0x05 ; 5
+ 6ca: cf 2e mov r12, r31
+ 6cc: d1 2c mov r13, r1
+ 6ce: cc 0e add r12, r28
+ 6d0: dd 1e adc r13, r29
+ 6d2: 65 e0 ldi r22, 0x05 ; 5
+ 6d4: 81 e0 ldi r24, 0x01 ; 1
+ 6d6: 0e 94 ad 2e call 0x5d5a ; 0x5d5a <nrk_open>
+ 6da: 18 2f mov r17, r24
+ 6dc: 8f 3f cpi r24, 0xFF ; 255
+ 6de: 19 f4 brne .+6 ; 0x6e6 <main_task+0x94>
+ 6e0: c3 01 movw r24, r6
+ 6e2: 0e 94 d3 1e call 0x3da6 ; 0x3da6 <nrk_kprintf>
+ 6e6: 42 e0 ldi r20, 0x02 ; 2
+ 6e8: 61 e0 ldi r22, 0x01 ; 1
+ 6ea: 81 2f mov r24, r17
+ 6ec: 0e 94 20 2f call 0x5e40 ; 0x5e40 <nrk_set_status>
+ 6f0: 42 e0 ldi r20, 0x02 ; 2
+ 6f2: b4 01 movw r22, r8
+ 6f4: 81 2f mov r24, r17
+ 6f6: 0e 94 42 2f call 0x5e84 ; 0x5e84 <nrk_read>
+ 6fa: 45 e0 ldi r20, 0x05 ; 5
+ 6fc: 61 e0 ldi r22, 0x01 ; 1
+ 6fe: 81 2f mov r24, r17
+ 700: 0e 94 20 2f call 0x5e40 ; 0x5e40 <nrk_set_status>
+ 704: 42 e0 ldi r20, 0x02 ; 2
+ 706: b5 01 movw r22, r10
+ 708: 81 2f mov r24, r17
+ 70a: 0e 94 42 2f call 0x5e84 ; 0x5e84 <nrk_read>
+ 70e: 46 e0 ldi r20, 0x06 ; 6
+ 710: 61 e0 ldi r22, 0x01 ; 1
+ 712: 81 2f mov r24, r17
+ 714: 0e 94 20 2f call 0x5e40 ; 0x5e40 <nrk_set_status>
+ 718: 42 e0 ldi r20, 0x02 ; 2
+ 71a: b6 01 movw r22, r12
+ 71c: 81 2f mov r24, r17
+ 71e: 0e 94 42 2f call 0x5e84 ; 0x5e84 <nrk_read>
+ 722: 8b e0 ldi r24, 0x0B ; 11
+ 724: e8 16 cp r14, r24
+ 726: f1 04 cpc r15, r1
+ 728: 20 f0 brcs .+8 ; 0x732 <main_task+0xe0>
+ 72a: 10 92 1b 04 sts 0x041B, r1
+ 72e: ee 24 eor r14, r14
+ 730: ff 24 eor r15, r15
+ 732: 82 e0 ldi r24, 0x02 ; 2
+ 734: 90 e0 ldi r25, 0x00 ; 0
+ 736: 0e 94 00 1e call 0x3c00 ; 0x3c00 <nrk_led_toggle>
+ 73a: 80 91 1b 04 lds r24, 0x041B
+ 73e: 88 23 and r24, r24
+ 740: f1 f1 breq .+124 ; 0x7be <main_task+0x16c>
+ 742: 81 e0 ldi r24, 0x01 ; 1
+ 744: 90 e0 ldi r25, 0x00 ; 0
+ 746: 0e 94 00 1e call 0x3c00 ; 0x3c00 <nrk_led_toggle>
+ 74a: 29 81 ldd r18, Y+1 ; 0x01
+ 74c: 3a 81 ldd r19, Y+2 ; 0x02
+ 74e: 4b 81 ldd r20, Y+3 ; 0x03
+ 750: 5c 81 ldd r21, Y+4 ; 0x04
+ 752: 6d 81 ldd r22, Y+5 ; 0x05
+ 754: 7e 81 ldd r23, Y+6 ; 0x06
+ 756: e1 14 cp r14, r1
+ 758: f1 04 cpc r15, r1
+ 75a: 49 f4 brne .+18 ; 0x76e <main_task+0x11c>
+ 75c: 30 93 95 05 sts 0x0595, r19
+ 760: 20 93 94 05 sts 0x0594, r18
+ 764: 50 93 93 05 sts 0x0593, r21
+ 768: 40 93 92 05 sts 0x0592, r20
+ 76c: 20 c0 rjmp .+64 ; 0x7ae <main_task+0x15c>
+ 76e: 80 91 94 05 lds r24, 0x0594
+ 772: 90 91 95 05 lds r25, 0x0595
+ 776: 28 0f add r18, r24
+ 778: 39 1f adc r19, r25
+ 77a: 36 95 lsr r19
+ 77c: 27 95 ror r18
+ 77e: 30 93 95 05 sts 0x0595, r19
+ 782: 20 93 94 05 sts 0x0594, r18
+ 786: 80 91 92 05 lds r24, 0x0592
+ 78a: 90 91 93 05 lds r25, 0x0593
+ 78e: 48 0f add r20, r24
+ 790: 59 1f adc r21, r25
+ 792: 56 95 lsr r21
+ 794: 47 95 ror r20
+ 796: 50 93 93 05 sts 0x0593, r21
+ 79a: 40 93 92 05 sts 0x0592, r20
+ 79e: 80 91 4e 03 lds r24, 0x034E
+ 7a2: 90 91 4f 03 lds r25, 0x034F
+ 7a6: 68 0f add r22, r24
+ 7a8: 79 1f adc r23, r25
+ 7aa: 76 95 lsr r23
+ 7ac: 67 95 ror r22
+ 7ae: 70 93 4f 03 sts 0x034F, r23
+ 7b2: 60 93 4e 03 sts 0x034E, r22
+ 7b6: 08 94 sec
+ 7b8: e1 1c adc r14, r1
+ 7ba: f1 1c adc r15, r1
+ 7bc: 40 c0 rjmp .+128 ; 0x83e <main_task+0x1ec>
+ 7be: 4d 81 ldd r20, Y+5 ; 0x05
+ 7c0: 5e 81 ldd r21, Y+6 ; 0x06
+ 7c2: 20 91 4e 03 lds r18, 0x034E
+ 7c6: 30 91 4f 03 lds r19, 0x034F
+ 7ca: c9 01 movw r24, r18
+ 7cc: 0a 96 adiw r24, 0x0a ; 10
+ 7ce: 84 17 cp r24, r20
+ 7d0: 95 07 cpc r25, r21
+ 7d2: 28 f0 brcs .+10 ; 0x7de <main_task+0x18c>
+ 7d4: 2a 50 subi r18, 0x0A ; 10
+ 7d6: 30 40 sbci r19, 0x00 ; 0
+ 7d8: 42 17 cp r20, r18
+ 7da: 53 07 cpc r21, r19
+ 7dc: 80 f5 brcc .+96 ; 0x83e <main_task+0x1ec>
+ 7de: 49 81 ldd r20, Y+1 ; 0x01
+ 7e0: 5a 81 ldd r21, Y+2 ; 0x02
+ 7e2: 20 91 94 05 lds r18, 0x0594
+ 7e6: 30 91 95 05 lds r19, 0x0595
+ 7ea: c9 01 movw r24, r18
+ 7ec: 0a 96 adiw r24, 0x0a ; 10
+ 7ee: 84 17 cp r24, r20
+ 7f0: 95 07 cpc r25, r21
+ 7f2: 28 f0 brcs .+10 ; 0x7fe <main_task+0x1ac>
+ 7f4: c9 01 movw r24, r18
+ 7f6: 0a 97 sbiw r24, 0x0a ; 10
+ 7f8: 48 17 cp r20, r24
+ 7fa: 59 07 cpc r21, r25
+ 7fc: 40 f4 brcc .+16 ; 0x80e <main_task+0x1bc>
+ 7fe: 24 17 cp r18, r20
+ 800: 35 07 cpc r19, r21
+ 802: 10 f4 brcc .+4 ; 0x808 <main_task+0x1b6>
+ 804: 82 e0 ldi r24, 0x02 ; 2
+ 806: 01 c0 rjmp .+2 ; 0x80a <main_task+0x1b8>
+ 808: 81 e0 ldi r24, 0x01 ; 1
+ 80a: 0e 94 51 02 call 0x4a2 ; 0x4a2 <monome_move>
+ 80e: 4b 81 ldd r20, Y+3 ; 0x03
+ 810: 5c 81 ldd r21, Y+4 ; 0x04
+ 812: 20 91 92 05 lds r18, 0x0592
+ 816: 30 91 93 05 lds r19, 0x0593
+ 81a: c9 01 movw r24, r18
+ 81c: 0a 96 adiw r24, 0x0a ; 10
+ 81e: 84 17 cp r24, r20
+ 820: 95 07 cpc r25, r21
+ 822: 28 f0 brcs .+10 ; 0x82e <main_task+0x1dc>
+ 824: c9 01 movw r24, r18
+ 826: 0a 97 sbiw r24, 0x0a ; 10
+ 828: 48 17 cp r20, r24
+ 82a: 59 07 cpc r21, r25
+ 82c: 40 f4 brcc .+16 ; 0x83e <main_task+0x1ec>
+ 82e: 24 17 cp r18, r20
+ 830: 35 07 cpc r19, r21
+ 832: 10 f4 brcc .+4 ; 0x838 <main_task+0x1e6>
+ 834: 84 e0 ldi r24, 0x04 ; 4
+ 836: 01 c0 rjmp .+2 ; 0x83a <main_task+0x1e8>
+ 838: 83 e0 ldi r24, 0x03 ; 3
+ 83a: 0e 94 51 02 call 0x4a2 ; 0x4a2 <monome_move>
+ 83e: 81 2f mov r24, r17
+ 840: 0e 94 86 2f call 0x5f0c ; 0x5f0c <nrk_close>
+ 844: 0e 94 00 29 call 0x5200 ; 0x5200 <nrk_wait_until_next_period>
+ 848: 44 cf rjmp .-376 ; 0x6d2 <main_task+0x80>
+
+0000084a <main>:
+ 84a: cf ef ldi r28, 0xFF ; 255
+ 84c: d1 e2 ldi r29, 0x21 ; 33
+ 84e: de bf out 0x3e, r29 ; 62
+ 850: cd bf out 0x3d, r28 ; 61
+ 852: 0e 94 6a 1a call 0x34d4 ; 0x34d4 <nrk_setup_ports>
+ 856: 61 e0 ldi r22, 0x01 ; 1
+ 858: 80 91 32 02 lds r24, 0x0232
+ 85c: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 860: 61 e0 ldi r22, 0x01 ; 1
+ 862: 80 91 3e 02 lds r24, 0x023E
+ 866: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 86a: 61 e0 ldi r22, 0x01 ; 1
+ 86c: 80 91 31 02 lds r24, 0x0231
+ 870: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 874: 61 e0 ldi r22, 0x01 ; 1
+ 876: 80 91 42 02 lds r24, 0x0242
+ 87a: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 87e: 10 91 43 02 lds r17, 0x0243
+ 882: 61 e0 ldi r22, 0x01 ; 1
+ 884: 81 2f mov r24, r17
+ 886: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 88a: 60 e0 ldi r22, 0x00 ; 0
+ 88c: 80 91 3c 02 lds r24, 0x023C
+ 890: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 894: 60 e0 ldi r22, 0x00 ; 0
+ 896: 80 91 3d 02 lds r24, 0x023D
+ 89a: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 89e: 60 e0 ldi r22, 0x00 ; 0
+ 8a0: 80 91 3f 02 lds r24, 0x023F
+ 8a4: 0e 94 d8 1c call 0x39b0 ; 0x39b0 <nrk_gpio_direction>
+ 8a8: 42 e4 ldi r20, 0x42 ; 66
+ 8aa: 52 e0 ldi r21, 0x02 ; 2
+ 8ac: 63 e0 ldi r22, 0x03 ; 3
+ 8ae: 80 e0 ldi r24, 0x00 ; 0
+ 8b0: 0e 94 01 32 call 0x6402 ; 0x6402 <nrk_ext_int_configure>
+ 8b4: 43 e3 ldi r20, 0x33 ; 51
+ 8b6: 52 e0 ldi r21, 0x02 ; 2
+ 8b8: 63 e0 ldi r22, 0x03 ; 3
+ 8ba: 81 e0 ldi r24, 0x01 ; 1
+ 8bc: 0e 94 01 32 call 0x6402 ; 0x6402 <nrk_ext_int_configure>
+ 8c0: 81 2f mov r24, r17
+ 8c2: 0e 94 f6 1a call 0x35ec ; 0x35ec <nrk_gpio_clr>
+ 8c6: 0e 94 0d 21 call 0x421a ; 0x421a <nrk_init>
+ 8ca: 20 e0 ldi r18, 0x00 ; 0
+ 8cc: 30 e0 ldi r19, 0x00 ; 0
+ 8ce: 40 e0 ldi r20, 0x00 ; 0
+ 8d0: 50 e0 ldi r21, 0x00 ; 0
+ 8d2: 60 e0 ldi r22, 0x00 ; 0
+ 8d4: 70 e0 ldi r23, 0x00 ; 0
+ 8d6: 80 e0 ldi r24, 0x00 ; 0
+ 8d8: 90 e0 ldi r25, 0x00 ; 0
+ 8da: 0e 94 a2 2a call 0x5544 ; 0x5544 <nrk_time_set>
+ 8de: 0e 94 56 02 call 0x4ac ; 0x4ac <nrk_register_drivers>
+ 8e2: 0e 94 cd 02 call 0x59a ; 0x59a <nrk_create_taskset>
+ 8e6: 0e 94 ad 20 call 0x415a ; 0x415a <nrk_start>
+ 8ea: 80 e0 ldi r24, 0x00 ; 0
+ 8ec: 90 e0 ldi r25, 0x00 ; 0
+ 8ee: 0c 94 b5 38 jmp 0x716a ; 0x716a <_exit>
+
+000008f2 <rtl_wait_until_global_slot>:
+
+int8_t rtl_wait_until_global_slot (uint16_t slot)
+{
+ return NRK_ERROR;
+}
+ 8f2: 8f ef ldi r24, 0xFF ; 255
+ 8f4: 9f ef ldi r25, 0xFF ; 255
+ 8f6: 08 95 ret
+
+000008f8 <rtl_ready>:
+
+int8_t rtl_ready ()
+{
+ if (_rtl_ready == 1)
+ 8f8: 80 91 c5 02 lds r24, 0x02C5
+ 8fc: 81 30 cpi r24, 0x01 ; 1
+ 8fe: 19 f4 brne .+6 ; 0x906 <rtl_ready+0xe>
+ 900: 81 e0 ldi r24, 0x01 ; 1
+ 902: 90 e0 ldi r25, 0x00 ; 0
+ 904: 08 95 ret
+ 906: 8f ef ldi r24, 0xFF ; 255
+ 908: 9f ef ldi r25, 0xFF ; 255
+ return NRK_OK;
+ else
+ return NRK_ERROR;
+}
+ 90a: 08 95 ret
+
+0000090c <rtl_get_slot>:
+
+uint8_t* rtl_rx_pkt_get (uint8_t *len, int8_t *rssi,uint8_t *slot)
+{
+if(rtl_rx_pkt_check()==0)
+ {
+ *len=0;
+ *rssi=0;
+ *slot=0;
+ return NULL;
+ }
+ *len=rtl_rfRxInfo.length;
+ *rssi=rtl_rfRxInfo.rssi;
+ *slot=rtl_rx_slot;
+
+return rtl_rfRxInfo.pPayload;
+}
+
+uint16_t rtl_get_slot ()
+{
+ return current_global_slot;
+ 90c: 80 91 75 07 lds r24, 0x0775
+ 910: 90 91 76 07 lds r25, 0x0776
+ 914: 08 95 ret
+
+00000916 <rtl_sync_status>:
+}
+
+/**
+ * rtl_sync_status()
+ *
+ * Return: 1 if sync is good, 0 if sync has failed
+ *
+ * This function returns if the synchronization is good. _rtl_sync_ok
+ * is set inside the interrupt based upon the time between the last cycle
+ * and the sync pulse.
+ */
+uint8_t rtl_sync_status ()
+{
+ 916: 80 91 4d 03 lds r24, 0x034D
+ return _rtl_sync_ok;
+}
+ 91a: 99 27 eor r25, r25
+ 91c: 08 95 ret
+
+0000091e <rtl_check_abs_tx_status>:
+
+/**
+ * rtl_check_abs_tx_status()
+ *
+ * This function allows an upper layer to check if the abs TX packet
+ * has been sent. This is only for the single absolute packet.
+ *
+ * Returns: 1 if the packet was sent, 0 otherwise
+ */
+uint8_t rtl_check_abs_tx_status ()
+{
+ 91e: 80 91 8f 05 lds r24, 0x058F
+ return rtl_abs_tx_ready;
+}
+ 922: 99 27 eor r25, r25
+ 924: 08 95 ret
+
+00000926 <rtl_rx_pkt_release>:
+
+/**
+ * rtl_tx_abs_packet()
+ *
+ * This function sends a single packet at an arbitrary slot
+ * over the entire TDMA frame.
+ *
+ * Arguments: RF_TX_INFO *tx is a pointer to a transmit structure, this
structure
+ * must have a valid pPayload pointer to the real packet.
+ * uint16_t abs_slot is the number of the absolute slot that
will tx.
+ *
+ * Return: returns 1 upon success, and 0 on failure due to overlaping TX
slot
+ *
+ */
+int8_t rtl_tx_abs_pkt (uint8_t *buf, uint8_t len, uint16_t abs_slot)
+{
+ uint8_t slot;
+ uint32_t slot_mask;
+
+ // Make sure this isn't already a TX slot
+ slot = abs_slot % 32;
+ slot_mask = ((uint32_t) 1) << slot;
+ if (slot_mask & rtl_tdma_tx_mask)
+ return 0;
+
+ rtl_tx_info[TDMA_FRAME_SLOTS+1].pPayload= buf;
+ rtl_tx_info[TDMA_FRAME_SLOTS+1].length= len;
+ //rtl_rfTxInfo[TDMA_FRAME_SLOTS + 1] = tx; // last element for abs
slot
+ rtl_abs_tx_slot = abs_slot;
+ rtl_set_abs_wakeup (abs_slot, 0); // schedule once, but don't repeat
+ rtl_abs_tx_ready = 1;
+ return 1;
+
+}
+
+/**
+ * rtl_tx_packet()
+ *
+ * This function associates a slot with a particular packet that needs
+ * to be sent.
+ *
+ * Arguments: RF_TX_INFO *tx is a pointer to a transmit structure, this
structure
+ * must have a valid pPayload pointer to the real packet.
+ * uint8_t slot is the value of the tx slot (starting from 0)
+ *
+ * Return: currently always returns 1
+ */
+int8_t rtl_tx_pkt (uint8_t *tx_buf, uint8_t len, uint8_t slot)
+{
+
+ if (slot == RTL_CONTENTION) {
+ slot = rand () % _rtl_contention_slots;
+ slot = (TDMA_FRAME_SLOTS - slot - 1);
+ _rtl_contention_pending = 1;
+ }
+ rtl_tx_info[slot].pPayload = tx_buf; // pass le pointer
+ rtl_tx_info[slot].length = len; // pass le pointer
+ rtl_tx_data_ready |= ((uint32_t) 1 << slot); // set the flag
+ return 1;
+}
+
+/**
+ * rtl_release_rx_packet()
+ *
+ * This function releases the link layer's hold on the rx buffer.
+ * This must be called after a packet is received before a new
+ * packet can be buffered! This should ideally be done by the
+ * network layer.
+ */
+void rtl_rx_pkt_release()
+{
+ rtl_rx_data_ready = 0;
+ 926: 10 92 1a 05 sts 0x051A, r1
+ 92a: 08 95 ret
+
+0000092c <rtl_tx_pkt_check>:
+}
+
+/**
+ * rtl_check_tx_status()
+ *
+ * This function allows an upper layer to check if a TX packet
+ * has been sent. For instance, you would first send a packet with
+ * rtl_tx_packet(&myTX, 8 );
+ * and then you could sleep or do more work, and eventually check
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.lst Sat Dec 11
12:36:09 2010
@@ -0,0 +1,1546 @@
+ 1 .file "main.c"
+ 2 __SREG__ = 0x3f
+ 3 __SP_H__ = 0x3e
+ 4 __SP_L__ = 0x3d
+ 5 __tmp_reg__ = 0
+ 6 __zero_reg__ = 1
+ 7 .global __do_copy_data
+ 8 .global __do_clear_bss
+ 11 .text
+ 12 .Ltext0:
+ 146 .global monome_comm_set_msg
+ 148 monome_comm_set_msg:
+ 149 .stabd 46,0,0
+ 1:main.c **** /*
+ 2:main.c **** * main.c
+ 3:main.c **** *
+ 4:main.c **** *
+ 5:main.c **** * Created by Philip Asare on 12/6/10.
+ 6:main.c **** * Copyright 2010 __MyCompanyName__. All rights
reserved.
+ 7:main.c **** *
+ 8:main.c **** */
+ 9:main.c ****
+ 10:main.c **** #include <nrk.h>
+ 11:main.c **** #include <include.h>
+ 12:main.c **** #include <ulib.h>
+ 13:main.c **** #include <stdio.h>
+ 14:main.c **** #include <avr/sleep.h>
+ 15:main.c **** #include <hal.h>
+ 16:main.c **** #include <rt_link.h>
+ 17:main.c **** #include <nrk_error.h>
+ 18:main.c **** #include <nrk_timer.h>
+ 19:main.c **** #include <nrk_ext_int.h>
+ 20:main.c **** #include <nrk_driver_list.h>
+ 21:main.c **** #include <nrk_driver.h>
+ 22:main.c **** #include <ff_basic_sensor.h>
+ 23:main.c ****
+ 24:main.c **** NRK_STK MainStack[NRK_APP_STACKSIZE];
+ 25:main.c **** nrk_task_type MainTask;
+ 26:main.c **** void main_task(void);
+ 27:main.c ****
+ 28:main.c **** /* controller actions messages */
+ 29:main.c **** #define UP 1
+ 30:main.c **** #define DOWN 2
+ 31:main.c **** #define LEFT 3
+ 32:main.c **** #define RIGHT 4
+ 33:main.c **** #define DRAW 5
+ 34:main.c **** #define ERASE 6
+ 35:main.c ****
+ 36:main.c **** /* pin functions */
+ 37:main.c **** #define DRAW_BUTTON NRK_DEBUG_2
+ 38:main.c **** #define ERASE_BUTTON NRK_DEBUG_3
+ 39:main.c **** #define ACK NRK_UART1_TXD
+ 40:main.c **** #define IRQ NRK_UART0_TXD
+ 41:main.c **** #define BIT0 NRK_DEBUG_1
+ 42:main.c **** #define BIT1 NRK_UART1_RXD
+ 43:main.c **** #define BIT2 NRK_DEBUG_0
+ 44:main.c **** #define BIT3 NRK_UART0_RXD
+ 45:main.c ****
+ 46:main.c **** /* interrupts */
+ 47:main.c **** #define DRAW_INT NRK_EXT_INT_0
+ 48:main.c **** #define ERASE_INT NRK_EXT_INT_1
+ 49:main.c **** #define ACK_INT EXT_INT_2
+ 50:main.c ****
+ 51:main.c ****
+ 52:main.c ****
+ 53:main.c **** #define DEVIATION 10
+ 54:main.c **** uint16_t z_baseline, x_baseline, y_baseline;
+ 55:main.c ****
+ 56:main.c **** /* controller tx slots --> base station rx slots */
+ 57:main.c **** #define C1
+ 58:main.c ****
+ 59:main.c **** #ifdef C1
+ 60:main.c **** #define MY_TX 2
+ 61:main.c **** #define MY_RX 5
+ 62:main.c **** #endif
+ 63:main.c ****
+ 64:main.c **** #ifdef C2
+ 65:main.c **** #define MY_TX 4
+ 66:main.c **** #define MY_RX 7
+ 67:main.c **** #endif
+ 68:main.c ****
+ 69:main.c **** #ifdef C3
+ 70:main.c **** #define MY_TX 6
+ 71:main.c **** #define MY_RX 9
+ 72:main.c **** #endif
+ 73:main.c ****
+ 74:main.c **** #ifdef C4
+ 75:main.c **** #define MY_TX 8
+ 76:main.c **** #define MY_RX 11
+ 77:main.c **** #endif
+ 78:main.c ****
+ 79:main.c **** #define ALL_RX 3
+ 80:main.c ****
+ 81:main.c **** /* game states and controller tracking */
+ 82:main.c ****
+ 83:main.c **** uint8_t state, player_num, message;
+ 84:main.c ****
+ 85:main.c **** #define SYNC 0
+ 86:main.c **** #define SELECT 1
+ 87:main.c **** #define PREGAME 2
+ 88:main.c **** #define GAMEPLAY 3
+ 89:main.c **** #define PLAYERASSIGN 4
+ 90:main.c **** #define GAMEOVER_CALC 5
+ 91:main.c **** #define GAMEOVER_CHOICE 6
+ 92:main.c **** #define CHANGE_STATE 7
+ 93:main.c ****
+ 94:main.c ****
+ 95:main.c **** /* monome helper functions */
+ 96:main.c ****
+ 97:main.c **** #define type(x) (sizeof(x) + PKT_DATA_START)
+ 98:main.c ****
+ 99:main.c **** typedef struct{
+ 100:main.c **** uint8_t player;
+ 101:main.c **** } monome_comm_sync_pkt;
+ 102:main.c ****
+ 103:main.c **** monome_comm_sync_pkt sync_pkt_tx, sync_pkt_rx;
+ 104:main.c ****
+ 105:main.c **** /* monome functions */
+ 106:main.c **** uint8_t calibration;
+ 107:main.c ****
+ 108:main.c **** uint8_t monome_set_player_num();
+ 109:main.c **** inline void monome_setup_system();
+ 110:main.c **** inline void monome_comm_init();
+ 111:main.c **** inline void monome_comm_set_msg(uint8_t msg);
+ 112:main.c **** inline void monome_comm_send_msg();
+ 113:main.c **** inline void monome_move(uint8_t direction);
+ 114:main.c **** void monome_comm_rcv_ack();
+ 115:main.c **** void monome_draw();
+ 116:main.c **** void monome_erase();
+ 117:main.c ****
+ 118:main.c **** uint8_t tx_len;
+ 119:main.c ****
+ 120:main.c **** /* task setup */
+ 121:main.c ****
+ 122:main.c **** NRK_STK CommStack[NRK_APP_STACKSIZE];
+ 123:main.c **** nrk_task_type CommTask;
+ 124:main.c **** void comm_task(void);
+ 125:main.c ****
+ 126:main.c **** void nrk_create_taskset();
+ 127:main.c ****
+ 128:main.c **** uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+ 129:main.c **** uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+ 130:main.c ****
+ 131:main.c **** /* monome sketch-it functions */
+ 132:main.c ****
+ 133:main.c **** void nrk_register_drivers();
+ 134:main.c **** uint8_t kill_stack(uint8_t val);
+ 135:main.c ****
+ 136:main.c **** int
+ 137:main.c **** main ()
+ 138:main.c **** {
+ 139:main.c **** uint8_t t;
+ 140:main.c **** nrk_setup_ports();
+ 141:main.c **** //nrk_setup_uart(UART_BAUDRATE_115K2);
+ 142:main.c ****
+ 143:main.c **** /* output pins */
+ 144:main.c **** nrk_gpio_direction(BIT0, NRK_PIN_OUTPUT);
+ 145:main.c **** nrk_gpio_direction(BIT1, NRK_PIN_OUTPUT);
+ 146:main.c **** nrk_gpio_direction(BIT2, NRK_PIN_OUTPUT);
+ 147:main.c **** nrk_gpio_direction(BIT3, NRK_PIN_OUTPUT);
+ 148:main.c **** nrk_gpio_direction(IRQ, NRK_PIN_OUTPUT);
+ 149:main.c ****
+ 150:main.c **** /* button input pins */
+ 151:main.c **** nrk_gpio_direction(DRAW_BUTTON, NRK_PIN_INPUT);
+ 152:main.c **** nrk_gpio_direction(ERASE_BUTTON, NRK_PIN_INPUT);
+ 153:main.c **** nrk_gpio_direction(ACK, NRK_PIN_INPUT);
+ 154:main.c ****
+ 155:main.c **** /* configure interrupts */
+ 156:main.c **** nrk_ext_int_configure(DRAW_INT, NRK_RISING_EDGE,
monome_draw);
+ 157:main.c **** nrk_ext_int_configure(ERASE_INT, NRK_RISING_EDGE,
monome_erase);
+ 158:main.c ****
+ 159:main.c **** nrk_gpio_clr(IRQ);
+ 160:main.c ****
+ 161:main.c ****
+ 162:main.c **** //printf( PSTR("starting...\r\n") );
+ 163:main.c ****
+ 164:main.c **** nrk_init();
+ 165:main.c **** nrk_time_set(0,0);
+ 166:main.c ****
+ 167:main.c **** nrk_register_drivers();
+ 168:main.c **** nrk_create_taskset ();
+ 169:main.c **** nrk_start();
+ 170:main.c ****
+ 171:main.c **** return 0;
+ 172:main.c **** }
+ 173:main.c ****
+ 174:main.c **** void main_task()
+ 175:main.c **** {
+ 176:main.c **** uint16_t cnt;
+ 177:main.c **** int8_t i,fd,val;
+ 178:main.c **** uint16_t x_val, y_val, z_val;
+ 179:main.c ****
+ 180:main.c **** //printf( "My node's address is %d\r\n",NODE_ADDR
);
+ 181:main.c ****
+ 182:main.c **** //printf( "Task1 PID=%d\r\n",nrk_get_pid());
+ 183:main.c ****
+ 184:main.c **** nrk_ext_int_enable(DRAW_INT);
+ 185:main.c **** nrk_ext_int_enable(ERASE_INT);
+ 186:main.c ****
+ 187:main.c **** x_baseline = 0;
+ 188:main.c **** y_baseline = 0;
+ 189:main.c **** z_baseline = 0;
+ 190:main.c **** cnt=0;
+ 191:main.c **** calibration = 1;
+ 192:main.c **** monome_setup_system();
+ 193:main.c **** //monome_comm_init();
+ 194:main.c ****
+ 195:main.c **** /*while(!rtl_ready()) {
+ 196:main.c **** nrk_led_toggle(RED_LED);
+ 197:main.c **** nrk_wait_until_next_period();
+ 198:main.c **** }*/
+ 199:main.c **** while(1) {
+ 200:main.c **** // Open ADC device as read
+ 201:main.c **** fd=nrk_open(FIREFLY_SENSOR_BASIC,READ);
+ 202:main.c **** if(fd==NRK_ERROR) nrk_kprintf(PSTR("Failed to
open sensor driver\r\n"));
+ 203:main.c ****
+ 204:main.c **** /* read x value */
+ 205:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_X);
+ 206:main.c **** val=nrk_read(fd,&x_val,2);
+ 207:main.c ****
+ 208:main.c **** /* read y value */
+ 209:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Y);
+ 210:main.c **** val=nrk_read(fd,&y_val,2);
+ 211:main.c ****
+ 212:main.c **** /* read z value */
+ 213:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Z);
+ 214:main.c **** val=nrk_read(fd,&z_val,2);
+ 215:main.c ****
+ 216:main.c **** if(cnt > 10){
+ 217:main.c **** calibration = 0;
+ 218:main.c **** //printf( "z_baseline=%d\r\n",z_baseline);
+ 219:main.c **** //printf( "x_baseline=%d\r\n",x_baseline);
+ 220:main.c **** //printf( "y_baseline=%d\r\n",y_baseline);
+ 221:main.c **** cnt = 0;
+ 222:main.c **** }
+ 223:main.c **** nrk_led_toggle(GREEN_LED);
+ 224:main.c **** /* calibration */
+ 225:main.c **** if(calibration > 0){
+ 226:main.c **** nrk_led_toggle(BLUE_LED);
+ 227:main.c **** if(cnt == 0){
+ 228:main.c **** x_baseline = x_val;
+ 229:main.c **** y_baseline = y_val;
+ 230:main.c **** z_baseline = z_val;
+ 231:main.c **** }
+ 232:main.c **** else{
+ 233:main.c **** x_baseline = (x_baseline + x_val)>>1;
+ 234:main.c **** y_baseline = (y_baseline + y_val)>>1;
+ 235:main.c **** z_baseline = (z_baseline + z_val)>>1;
+ 236:main.c **** }
+ 237:main.c ****
+ 238:main.c **** cnt++;
+ 239:main.c **** //nrk_led_clr(BLUE_LED);
+ 240:main.c **** }
+ 241:main.c ****
+ 242:main.c **** else{
+ 243:main.c **** //if(state == SELECT || state == GAMEPLAY ||
state == PREGAME || state == GAMEOVER_CHOICE){
+ 244:main.c **** /*
+ 245:main.c **** * respond to accelerometer only if you are in
the appropriate state
+ 246:main.c **** * change in z value beyond threshold
indicates cursor move
+ 247:main.c **** * determine cursor direction only on this
indicator
+ 248:main.c **** */
+ 249:main.c **** if((z_val > z_baseline + DEVIATION) || z_val <
z_baseline - DEVIATION){
+ 250:main.c ****
+ 251:main.c **** //printf( "acc_z=%d",z_val);
+ 252:main.c **** //printf( " acc_x=%d",x_val);
+ 253:main.c **** //printf( " acc_y=%d\r\n",y_val);
+ 254:main.c **** if((x_val > (x_baseline + DEVIATION)) ||
(x_val < (x_baseline - DEVIATION))){
+ 255:main.c **** if(x_val > x_baseline) //nrk_kprintf(
PSTR("move down\r\n") );
+ 256:main.c **** monome_move(DOWN);
+ 257:main.c **** else //nrk_kprintf( PSTR("move up\r\n") );
+ 258:main.c **** monome_move(UP);
+ 259:main.c **** }
+ 260:main.c **** if((y_val > (y_baseline + DEVIATION)) ||
(y_val < (y_baseline - DEVIATION))){
+ 261:main.c **** if(y_val > y_baseline) //nrk_kprintf(
PSTR("move right\r\n") );
+ 262:main.c **** monome_move(RIGHT);
+ 263:main.c **** else //nrk_kprintf( PSTR("move left\r\n") );
+ 264:main.c **** monome_move(LEFT);
+ 265:main.c **** }
+ 266:main.c **** }
+ 267:main.c **** else {
+ 268:main.c **** //nrk_kprintf( PSTR("no move\r\n") );
+ 269:main.c **** ;
+ 270:main.c **** }
+ 271:main.c **** //}
+ 272:main.c ****
+ 273:main.c **** }
+ 274:main.c ****
+ 275:main.c **** nrk_close(fd);
+ 276:main.c **** nrk_wait_until_next_period();
+ 277:main.c ****
+ 278:main.c **** }
+ 279:main.c **** }
+ 280:main.c ****
+ 281:main.c ****
+ 282:main.c **** /*void comm_task()
+ 283:main.c **** {
+ 284:main.c **** //uint8_t j, i;
+ 285:main.c **** uint8_t *local_rx_buf;
+ 286:main.c **** uint8_t length,slot;
+ 287:main.c **** int8_t rssi;
+ 288:main.c ****
+ 289:main.c ****
+ 290:main.c **** monome_setup_system();
+ 291:main.c ****
+ 292:main.c **** while(!rtl_ready()) nrk_wait_until_next_period();
+ 293:main.c ****
+ 294:main.c **** while(1){
+ 295:main.c **** // start communication after calibration
+ 296:main.c **** if(calibration == 0){
+ 297:main.c **** if( rtl_rx_pkt_check()!=0 )
+ 298:main.c **** {
+ 299:main.c **** //if packet is received
+ 300:main.c **** local_rx_buf=rtl_rx_pkt_get(&length, &rssi,
&slot);
+ 301:main.c **** printf( "Got Packet on slot %d %d:
\r\n",slot,length );
+ 302:main.c **** if(length == type(monome_comm_sync_pkt)){
+ 303:main.c **** // if in sync state, set the player number
and switch to select state
+ 304:main.c **** if(state == SYNC){
+ 305:main.c **** player_num = local_rx_buf[PKT_DATA_START];
+ 306:main.c **** rtl_rx_pkt_release();
+ 307:main.c **** if(monome_set_player_num()){
+ 308:main.c **** monome_comm_set_msg(CHANGE_STATE);
+ 309:main.c **** monome_comm_send_msg();
+ 310:main.c **** monome_comm_set_msg(player_num);
+ 311:main.c **** monome_comm_send_msg();
+ 312:main.c **** }
+ 313:main.c ****
+ 314:main.c ****
+ 315:main.c **** }
+ 316:main.c **** //if in any other state, then message is
state information, change state and alert HCS12
+ 317:main.c **** else{
+ 318:main.c **** state = local_rx_buf[PKT_DATA_START];
+ 319:main.c **** rtl_rx_pkt_release();
+ 320:main.c **** monome_comm_set_msg(CHANGE_STATE);
+ 321:main.c **** monome_comm_send_msg();
+ 322:main.c **** monome_comm_set_msg(state);
+ 323:main.c **** monome_comm_send_msg();
+ 324:main.c **** }
+ 325:main.c **** }
+ 326:main.c **** }
+ 327:main.c **** if(state == SYNC){
+ 328:main.c **** //if in sync state, send sync packet to base
station
+ 329:main.c **** printf("waiting to sync\r\n");
+ 330:main.c **** while( rtl_tx_pkt_check(MY_TX)!=0 );
+ 331:main.c **** memcpy(&tx_buf[PKT_DATA_START], &sync_pkt_tx,
sizeof(monome_comm_sync_pkt));
+ 332:main.c **** tx_len = type(monome_comm_sync_pkt);
+ 333:main.c **** rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ 334:main.c **** rtl_wait_until_tx_done(MY_TX);
+ 335:main.c **** }
+ 336:main.c **** }
+ 337:main.c ****
+ 338:main.c **** nrk_wait_until_next_period();
+ 339:main.c **** }
+ 340:main.c **** }
+ 341:main.c **** */
+ 342:main.c **** void
+ 343:main.c **** nrk_create_taskset()
+ 344:main.c **** {
+ 345:main.c ****
+ 346:main.c **** /*
+ 347:main.c **** CommTask.task = comm_task;
+ 348:main.c **** CommTask.Ptos = (void *)
&CommStack[NRK_APP_STACKSIZE-1];
+ 349:main.c **** CommTask.Pbos = (void *) &CommStack[0];
+ 350:main.c **** CommTask.prio = 2;
+ 351:main.c **** CommTask.FirstActivation = TRUE;
+ 352:main.c **** CommTask.Type = BASIC_TASK;
+ 353:main.c **** CommTask.SchType = PREEMPTIVE;
+ 354:main.c **** CommTask.period.secs = 0;
+ 355:main.c **** CommTask.period.nano_secs = 500*NANOS_PER_MS;
+ 356:main.c **** CommTask.cpu_reserve.secs = 0;
+ 357:main.c **** CommTask.cpu_reserve.nano_secs = 200*NANOS_PER_MS;
+ 358:main.c **** CommTask.offset.secs = 0;
+ 359:main.c **** CommTask.offset.nano_secs= 0;
+ 360:main.c **** nrk_activate_task (&CommTask);
+ 361:main.c **** */
+ 362:main.c **** MainTask.task = main_task;
+ 363:main.c **** nrk_task_set_stk( &MainTask, MainStack,
NRK_APP_STACKSIZE);
+ 364:main.c **** MainTask.prio = 1;
+ 365:main.c **** MainTask.FirstActivation = TRUE;
+ 366:main.c **** MainTask.Type = BASIC_TASK;
+ 367:main.c **** MainTask.SchType = PREEMPTIVE;
+ 368:main.c **** MainTask.period.secs = 0;
+ 369:main.c **** MainTask.period.nano_secs = 500*NANOS_PER_MS;
//*NANOS_PER_MS;
+ 370:main.c **** MainTask.cpu_reserve.secs = 0;
+ 371:main.c **** MainTask.cpu_reserve.nano_secs =
200*NANOS_PER_MS;
+ 372:main.c **** MainTask.offset.secs = 0;
+ 373:main.c **** MainTask.offset.nano_secs= 0;
+ 374:main.c **** nrk_activate_task (&MainTask);
+ 375:main.c ****
+ 376:main.c ****
+ 377:main.c **** printf ("Create done\r\n");
+ 378:main.c **** }
+ 379:main.c ****
+ 380:main.c **** inline void monome_comm_init(){
+ 381:main.c **** rtl_init (RTL_MOBILE);
+ 382:main.c ****
+ 383:main.c **** /* rx schedules */
+ 384:main.c **** rtl_set_schedule( RTL_RX, MY_RX, 1 );
+ 385:main.c **** rtl_set_schedule( RTL_RX, ALL_RX, 1 );
+ 386:main.c ****
+ 387:main.c **** /* tx schedules */
+ 388:main.c **** rtl_set_schedule( RTL_TX, MY_TX, 1 );
+ 389:main.c ****
+ 390:main.c **** rtl_start();
+ 391:main.c **** rtl_rx_pkt_set_buffer(rx_buf,
RF_MAX_PAYLOAD_SIZE);
+ 392:main.c ****
+ 393:main.c **** // clear communication port
+ 394:main.c **** nrk_gpio_clr(BIT0);
+ 395:main.c **** nrk_gpio_clr(BIT1);
+ 396:main.c **** nrk_gpio_clr(BIT2);
+ 397:main.c **** nrk_gpio_clr(BIT3);
+ 398:main.c **** nrk_gpio_clr(IRQ);
+ 399:main.c **** }
+ 400:main.c ****
+ 401:main.c **** inline void monome_setup_system(){
+ 402:main.c **** state = SYNC;
+ 403:main.c **** player_num = -1;
+ 404:main.c **** //sync_pkt_tx.player = -1;
+ 405:main.c **** // clear communication port
+ 406:main.c **** nrk_gpio_clr(BIT0);
+ 407:main.c **** nrk_gpio_clr(BIT1);
+ 408:main.c **** nrk_gpio_clr(BIT2);
+ 409:main.c **** nrk_gpio_clr(BIT3);
+ 410:main.c **** nrk_gpio_clr(IRQ);
+ 411:main.c **** }
+ 412:main.c ****
+ 413:main.c **** uint8_t monome_set_player_num(){
+ 414:main.c **** printf("setting player\r\n");
+ 415:main.c **** //player_num = sync_pkt_rx.player;
+ 416:main.c **** printf("player number: %d\r\n", player_num);
+ 417:main.c **** switch (player_num) {
+ 418:main.c **** case 1:
+ 419:main.c **** nrk_led_set(RED_LED);state = SELECT; return 1;
+ 420:main.c ****
+ 421:main.c **** case 2:
+ 422:main.c **** nrk_led_set(GREEN_LED);state = SELECT; return
1;
+ 423:main.c ****
+ 424:main.c **** case 3:
+ 425:main.c **** nrk_led_set(RED_LED);
nrk_led_set(GREEN_LED);state = SELECT; return 1;
+ 426:main.c ****
+ 427:main.c **** case 4:
+ 428:main.c **** nrk_led_set(BLUE_LED);state = SELECT; return 1;
+ 429:main.c ****
+ 430:main.c **** default:
+ 431:main.c **** return 0;
+ 432:main.c **** }
+ 433:main.c ****
+ 434:main.c **** }
+ 435:main.c ****
+ 436:main.c **** void nrk_register_drivers()
+ 437:main.c **** {
+ 438:main.c **** int8_t val;
+ 439:main.c ****
+ 440:main.c **** // Register the Basic FireFly Sensor device driver
+ 441:main.c **** // Make sure to add:
+ 442:main.c **** // #define NRK_MAX_DRIVER_CNT
+ 443:main.c **** // in nrk_cfg.h
+ 444:main.c **** // Make sure to add:
+ 445:main.c **** // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+ 446:main.c **** // in makefile
+ 447:main.c **** val=nrk_register_driver(
&dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ 448:main.c **** if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to
load my ADC driver\r\n") );
+ 449:main.c ****
+ 450:main.c **** }
+ 451:main.c **** inline void monome_comm_set_msg(uint8_t msg){
+ 151 .LM0:
+ 152 .LFBB1:
+ 153 /* prologue: frame size=0 */
+ 154 0000 CF93 push r28
+ 155 0002 DF93 push r29
+ 156 /* prologue end (size=2) */
+ 452:main.c **** if(msg & 0x01){
+ 158 .LM1:
+ 159 0004 C82F mov r28,r24
+ 160 0006 DD27 clr r29
+ 161 0008 C0FF sbrs r28,0
+ 162 000a 00C0 rjmp .L2
+ 453:main.c **** nrk_gpio_set(BIT0);
+ 164 .LM2:
+ 165 000c 8091 0000 lds r24,NRK_DEBUG_1
+ 166 0010 0E94 0000 call nrk_gpio_set
+ 167 0014 00C0 rjmp .L4
+ 168 .L2:
+ 454:main.c **** }
+ 455:main.c **** else{
+ 456:main.c **** nrk_gpio_clr(BIT0);
+ 170 .LM3:
+ 171 0016 8091 0000 lds r24,NRK_DEBUG_1
+ 172 001a 0E94 0000 call nrk_gpio_clr
+ 173 .L4:
+ 457:main.c **** }
+ 458:main.c **** if(msg & 0x02){
+ 175 .LM4:
+ 176 001e C1FF sbrs r28,1
+ 177 0020 00C0 rjmp .L5
+ 459:main.c **** nrk_gpio_set(BIT1);
+ 179 .LM5:
+ 180 0022 8091 0000 lds r24,NRK_UART1_RXD
+ 181 0026 0E94 0000 call nrk_gpio_set
+ 182 002a 00C0 rjmp .L7
+ 183 .L5:
+ 460:main.c **** }
+ 461:main.c **** else{
+ 462:main.c **** nrk_gpio_clr(BIT1);
+ 185 .LM6:
+ 186 002c 8091 0000 lds r24,NRK_UART1_RXD
+ 187 0030 0E94 0000 call nrk_gpio_clr
+ 188 .L7:
+ 463:main.c **** }
+ 464:main.c **** if(msg & 0x04){
+ 190 .LM7:
+ 191 0034 C2FF sbrs r28,2
+ 192 0036 00C0 rjmp .L8
+ 465:main.c **** nrk_gpio_set(BIT2);
+ 194 .LM8:
+ 195 0038 8091 0000 lds r24,NRK_DEBUG_0
+ 196 003c 0E94 0000 call nrk_gpio_set
+ 197 0040 00C0 rjmp .L10
+ 198 .L8:
+ 466:main.c **** }
+ 467:main.c **** else{
+ 468:main.c **** nrk_gpio_clr(BIT2);
+ 200 .LM9:
+ 201 0042 8091 0000 lds r24,NRK_DEBUG_0
+ 202 0046 0E94 0000 call nrk_gpio_clr
+ 203 .L10:
+ 469:main.c **** }
+ 470:main.c **** if(msg & 0x08){
+ 205 .LM10:
+ 206 004a C3FF sbrs r28,3
+ 207 004c 00C0 rjmp .L11
+ 471:main.c **** nrk_gpio_set(BIT3);
+ 209 .LM11:
+ 210 004e 8091 0000 lds r24,NRK_UART0_RXD
+ 211 0052 0E94 0000 call nrk_gpio_set
+ 212 0056 00C0 rjmp .L14
+ 213 .L11:
+ 472:main.c **** }
+ 473:main.c **** else{
+ 474:main.c **** nrk_gpio_clr(BIT3);
+ 215 .LM12:
+ 216 0058 8091 0000 lds r24,NRK_UART0_RXD
+ 217 005c 0E94 0000 call nrk_gpio_clr
+ 218 .L14:
+ 219 /* epilogue: frame size=0 */
+ 220 0060 DF91 pop r29
+ 221 0062 CF91 pop r28
+ 222 0064 0895 ret
+ 223 /* epilogue end (size=3) */
+ 224 /* function monome_comm_set_msg size 51 (46) */
+ 226 .Lscope1:
+ 228 .stabd 78,0,0
+ 230 .global monome_setup_system
+ 232 monome_setup_system:
+ 233 .stabd 46,0,0
+ 235 .LM13:
+ 236 .LFBB2:
+ 237 /* prologue: frame size=0 */
+ 238 /* prologue end (size=0) */
+ 240 .LM14:
+ 241 0066 1092 0000 sts state,__zero_reg__
+ 243 .LM15:
+ 244 006a 8FEF ldi r24,lo8(-1)
+ 245 006c 8093 0000 sts player_num,r24
+ 247 .LM16:
+ 248 0070 8091 0000 lds r24,NRK_DEBUG_1
+ 249 0074 0E94 0000 call nrk_gpio_clr
+ 251 .LM17:
+ 252 0078 8091 0000 lds r24,NRK_UART1_RXD
+ 253 007c 0E94 0000 call nrk_gpio_clr
+ 255 .LM18:
+ 256 0080 8091 0000 lds r24,NRK_DEBUG_0
+ 257 0084 0E94 0000 call nrk_gpio_clr
+ 259 .LM19:
+ 260 0088 8091 0000 lds r24,NRK_UART0_RXD
+ 261 008c 0E94 0000 call nrk_gpio_clr
+ 263 .LM20:
+ 264 0090 8091 0000 lds r24,NRK_UART0_TXD
+ 265 0094 0E94 0000 call nrk_gpio_clr
+ 266 /* epilogue: frame size=0 */
+ 267 0098 0895 ret
+ 268 /* epilogue end (size=1) */
+ 269 /* function monome_setup_system size 26 (25) */
+ 271 .Lscope2:
+ 273 .stabd 78,0,0
+ 275 .global monome_comm_send_msg
+ 277 monome_comm_send_msg:
+ 278 .stabd 46,0,0
+ 475:main.c **** }
+ 476:main.c **** }
+ 477:main.c **** inline void monome_comm_send_msg(){
+ 280 .LM21:
+ 281 .LFBB3:
+ 282 /* prologue: frame size=0 */
+ 283 009a 1F93 push r17
+ 284 /* prologue end (size=1) */
+ 478:main.c **** nrk_led_set(RED_LED);
+ 286 .LM22:
+ 287 009c 83E0 ldi r24,lo8(3)
+ 288 009e 90E0 ldi r25,hi8(3)
+ 289 00a0 0E94 0000 call nrk_led_set
+ 479:main.c **** nrk_gpio_set(IRQ);
+ 291 .LM23:
+ 292 00a4 1091 0000 lds r17,NRK_UART0_TXD
+ 293 00a8 812F mov r24,r17
+ 294 00aa 0E94 0000 call nrk_gpio_set
+ 480:main.c **** nrk_spin_wait_us(1000); /**TO-DO: experiment to
see how quick a change HCS12 can handle */
+ 296 .LM24:
+ 297 00ae 88EE ldi r24,lo8(1000)
+ 298 00b0 93E0 ldi r25,hi8(1000)
+ 299 00b2 0E94 0000 call nrk_spin_wait_us
+ 481:main.c **** nrk_gpio_clr(IRQ);
+ 301 .LM25:
+ 302 00b6 812F mov r24,r17
+ 303 00b8 0E94 0000 call nrk_gpio_clr
+ 482:main.c **** nrk_led_clr(RED_LED);
+ 305 .LM26:
+ 306 00bc 83E0 ldi r24,lo8(3)
+ 307 00be 90E0 ldi r25,hi8(3)
+ 308 00c0 0E94 0000 call nrk_led_clr
+ 309 /* epilogue: frame size=0 */
+ 310 00c4 1F91 pop r17
+ 311 00c6 0895 ret
+ 312 /* epilogue end (size=2) */
+ 313 /* function monome_comm_send_msg size 23 (20) */
+ 315 .Lscope3:
+ 317 .stabd 78,0,0
+ 319 .global monome_erase
+ 321 monome_erase:
+ 322 .stabd 46,0,0
+ 483:main.c **** }
+ 484:main.c ****
+ 485:main.c **** void monome_move(uint8_t direction){
+ 486:main.c **** monome_comm_set_msg(direction);
+ 487:main.c **** monome_comm_send_msg();
+ 488:main.c **** }
+ 489:main.c ****
+ 490:main.c **** void monome_draw(){
+ 491:main.c **** while(nrk_gpio_get(DRAW_BUTTON)); //debounce
+ 492:main.c **** //if(state == SELECT || state == GAMEPLAY ||
state == PREGAME || state == GAMEOVER_CHOICE){
+ 493:main.c **** // respond to controls only if in appropriate
state
+ 494:main.c **** monome_comm_set_msg(DRAW);
+ 495:main.c **** monome_comm_send_msg();
+ 496:main.c **** //}//
+ 497:main.c **** }
+ 498:main.c ****
+ 499:main.c **** void monome_erase(){
+ 324 .LM27:
+ 325 .LFBB4:
+ 326 /* prologue: frame size=0 */
+ 327 00c8 1F93 push r17
+ 328 /* prologue end (size=1) */
+ 500:main.c **** while(nrk_gpio_get(ERASE_BUTTON)); //debounce
+ 330 .LM28:
+ 331 00ca 1091 0000 lds r17,NRK_DEBUG_3
+ 332 .L21:
+ 334 .LM29:
+ 335 00ce 812F mov r24,r17
+ 336 00d0 0E94 0000 call nrk_gpio_get
+ 337 00d4 8823 tst r24
+ 338 00d6 01F4 brne .L21
+ 501:main.c **** //if(state == SELECT || state == GAMEPLAY ||
state == PREGAME || state == GAMEOVER_CHOICE){
+ 502:main.c **** // respond to controls only if in appropriate
state
+ 503:main.c **** monome_comm_set_msg(ERASE);
+ 340 .LM30:
+ 341 00d8 86E0 ldi r24,lo8(6)
+ 342 00da 0E94 0000 call monome_comm_set_msg
+ 504:main.c **** monome_comm_send_msg();
+ 344 .LM31:
+ 345 00de 0E94 0000 call monome_comm_send_msg
+ 346 /* epilogue: frame size=0 */
+ 347 00e2 1F91 pop r17
+ 348 00e4 0895 ret
+ 349 /* epilogue end (size=2) */
+ 350 /* function monome_erase size 15 (12) */
+ 352 .Lscope4:
+ 354 .stabd 78,0,0
+ 356 .global monome_draw
+ 358 monome_draw:
+ 359 .stabd 46,0,0
+ 361 .LM32:
+ 362 .LFBB5:
+ 363 /* prologue: frame size=0 */
+ 364 00e6 1F93 push r17
+ 365 /* prologue end (size=1) */
+ 367 .LM33:
+ 368 00e8 1091 0000 lds r17,NRK_DEBUG_2
+ 369 .L28:
+ 371 .LM34:
+ 372 00ec 812F mov r24,r17
+ 373 00ee 0E94 0000 call nrk_gpio_get
+ 374 00f2 8823 tst r24
+ 375 00f4 01F4 brne .L28
+ 377 .LM35:
+ 378 00f6 85E0 ldi r24,lo8(5)
+ 379 00f8 0E94 0000 call monome_comm_set_msg
+ 381 .LM36:
+ 382 00fc 0E94 0000 call monome_comm_send_msg
+ 383 /* epilogue: frame size=0 */
+ 384 0100 1F91 pop r17
+ 385 0102 0895 ret
+ 386 /* epilogue end (size=2) */
+ 387 /* function monome_draw size 15 (12) */
+ 389 .Lscope5:
+ 391 .stabd 78,0,0
+ 394 .global monome_move
+ 396 monome_move:
+ 397 .stabd 46,0,0
+ 399 .LM37:
+ 400 .LFBB6:
+ 401 /* prologue: frame size=0 */
+ 402 /* prologue end (size=0) */
+ 404 .LM38:
+ 405 0104 0E94 0000 call monome_comm_set_msg
+ 407 .LM39:
+ 408 0108 0E94 0000 call monome_comm_send_msg
+ 409 /* epilogue: frame size=0 */
+ 410 010c 0895 ret
+ 411 /* epilogue end (size=1) */
+ 412 /* function monome_move size 5 (4) */
+ 414 .Lscope6:
+ 416 .stabd 78,0,0
+ 418 .global nrk_register_drivers
+ 420 nrk_register_drivers:
+ 421 .stabd 46,0,0
+ 423 .LM40:
+ 424 .LFBB7:
+ 425 /* prologue: frame size=0 */
+ 426 /* prologue end (size=0) */
+ 428 .LM41:
+ 429 010e 61E0 ldi r22,lo8(1)
+ 430 0110 80E0 ldi r24,lo8(pm(dev_manager_ff_sensors))
+ 431 0112 90E0 ldi r25,hi8(pm(dev_manager_ff_sensors))
+ 432 0114 0E94 0000 call nrk_register_driver
+ 434 .LM42:
+ 435 0118 8F3F cpi r24,lo8(-1)
+ 436 011a 01F4 brne .L38
+ 438 .LM43:
+ 439 011c 80E0 ldi r24,lo8(__c.2602)
+ 440 011e 90E0 ldi r25,hi8(__c.2602)
+ 441 0120 0E94 0000 call nrk_kprintf
+ 442 .L38:
+ 443 0124 0895 ret
+ 444 /* epilogue: frame size=0 */
+ 445 /* epilogue: noreturn */
+ 446 /* epilogue end (size=0) */
+ 447 /* function nrk_register_drivers size 12 (12) */
+ 449 .Lscope7:
+ 451 .stabd 78,0,0
+ 452 .data
+ 453 .LC0:
+ 454 0000 7365 7474 .string "setting player\r"
+ 454 696E 6720
+ 454 706C 6179
+ 454 6572 0D00
+ 455 .LC1:
+ 456 0010 706C 6179 .string "player number: %d\r\n"
+ 456 6572 206E
+ 456 756D 6265
+ 456 723A 2025
+ 456 640D 0A00
+ 457 .text
+ 459 .global monome_set_player_num
+ 461 monome_set_player_num:
+ 462 .stabd 46,0,0
+ 464 .LM44:
+ 465 .LFBB8:
+ 466 /* prologue: frame size=0 */
+ 467 0126 1F93 push r17
+ 468 /* prologue end (size=1) */
+ 470 .LM45:
+ 471 0128 80E0 ldi r24,lo8(.LC0)
+ 472 012a 90E0 ldi r25,hi8(.LC0)
+ 473 012c 0E94 0000 call puts
+ 475 .LM46:
+ 476 0130 8091 0000 lds r24,player_num
+ 477 0134 9927 clr r25
+ 478 0136 9F93 push r25
+ 479 0138 8F93 push r24
+ 480 013a 80E0 ldi r24,lo8(.LC1)
+ 481 013c 90E0 ldi r25,hi8(.LC1)
+ 482 013e 9F93 push r25
+ 483 0140 8F93 push r24
+ 484 0142 0E94 0000 call printf
+ 486 .LM47:
+ 487 0146 0F90 pop __tmp_reg__
+ 488 0148 0F90 pop __tmp_reg__
+ 489 014a 0F90 pop __tmp_reg__
+ 490 014c 0F90 pop __tmp_reg__
+ 491 014e 1091 0000 lds r17,player_num
+ 492 0152 1230 cpi r17,lo8(2)
+ 493 0154 01F0 breq .L50
+ 495 .LM48:
+ 496 0156 1330 cpi r17,lo8(3)
+ 497 0158 00F4 brsh .L45
+ 498 015a 1130 cpi r17,lo8(1)
+ 499 015c 01F4 brne .L40
+ 500 015e 00C0 rjmp .L41
+ 501 .L45:
+ 502 0160 1330 cpi r17,lo8(3)
+ 503 0162 01F0 breq .L43
+ 504 0164 1430 cpi r17,lo8(4)
+ 505 0166 01F0 breq .L44
+ 506 .L40:
+ 507 0168 80E0 ldi r24,lo8(0)
+ 508 016a 90E0 ldi r25,hi8(0)
+ 509 016c 00C0 rjmp .L46
+ 510 .L41:
+ 512 .LM49:
+ 513 016e 83E0 ldi r24,lo8(3)
+ 514 0170 90E0 ldi r25,hi8(3)
+ 515 0172 0E94 0000 call nrk_led_set
+ 516 0176 1093 0000 sts state,r17
+ 517 017a 00C0 rjmp .L48
+ 518 .L43:
+ 520 .LM50:
+ 521 017c 83E0 ldi r24,lo8(3)
+ 522 017e 90E0 ldi r25,hi8(3)
+ 523 0180 0E94 0000 call nrk_led_set
+ 524 .L50:
+ 525 0184 82E0 ldi r24,lo8(2)
+ 526 0186 90E0 ldi r25,hi8(2)
+ 527 0188 00C0 rjmp .L49
+ 528 .L44:
+ 530 .LM51:
+ 531 018a 81E0 ldi r24,lo8(1)
+ 532 018c 90E0 ldi r25,hi8(1)
+ 533 .L49:
+ 534 018e 0E94 0000 call nrk_led_set
+ 535 0192 81E0 ldi r24,lo8(1)
+ 536 0194 8093 0000 sts state,r24
+ 537 .L48:
+ 538 0198 81E0 ldi r24,lo8(1)
+ 539 019a 90E0 ldi r25,hi8(1)
+ 540 .L46:
+ 541 /* epilogue: frame size=0 */
+ 542 019c 1F91 pop r17
+ 543 019e 0895 ret
+ 544 /* epilogue end (size=2) */
+ 545 /* function monome_set_player_num size 61 (58) */
+ 547 .Lscope8:
+ 549 .stabd 78,0,0
+ 551 .global monome_comm_init
+ 553 monome_comm_init:
+ 554 .stabd 46,0,0
+ 556 .LM52:
+ 557 .LFBB9:
+ 558 /* prologue: frame size=0 */
+ 559 /* prologue end (size=0) */
+ 561 .LM53:
+ 562 01a0 80E0 ldi r24,lo8(0)
+ 563 01a2 0E94 0000 call rtl_init
+ 565 .LM54:
+ 566 01a6 41E0 ldi r20,lo8(1)
+ 567 01a8 65E0 ldi r22,lo8(5)
+ 568 01aa 80E0 ldi r24,lo8(0)
+ 569 01ac 0E94 0000 call rtl_set_schedule
+ 571 .LM55:
+ 572 01b0 41E0 ldi r20,lo8(1)
+ 573 01b2 63E0 ldi r22,lo8(3)
+ 574 01b4 80E0 ldi r24,lo8(0)
+ 575 01b6 0E94 0000 call rtl_set_schedule
+ 577 .LM56:
+ 578 01ba 41E0 ldi r20,lo8(1)
+ 579 01bc 62E0 ldi r22,lo8(2)
+ 580 01be 81E0 ldi r24,lo8(1)
+ 581 01c0 0E94 0000 call rtl_set_schedule
+ 583 .LM57:
+ 584 01c4 0E94 0000 call rtl_start
+ 586 .LM58:
+ 587 01c8 64E7 ldi r22,lo8(116)
+ 588 01ca 80E0 ldi r24,lo8(rx_buf)
+ 589 01cc 90E0 ldi r25,hi8(rx_buf)
+ 590 01ce 0E94 0000 call rtl_rx_pkt_set_buffer
+ 592 .LM59:
+ 593 01d2 8091 0000 lds r24,NRK_DEBUG_1
+ 594 01d6 0E94 0000 call nrk_gpio_clr
+ 596 .LM60:
+ 597 01da 8091 0000 lds r24,NRK_UART1_RXD
+ 598 01de 0E94 0000 call nrk_gpio_clr
+ 600 .LM61:
+ 601 01e2 8091 0000 lds r24,NRK_DEBUG_0
+ 602 01e6 0E94 0000 call nrk_gpio_clr
+ 604 .LM62:
+ 605 01ea 8091 0000 lds r24,NRK_UART0_RXD
+ 606 01ee 0E94 0000 call nrk_gpio_clr
+ 608 .LM63:
+ 609 01f2 8091 0000 lds r24,NRK_UART0_TXD
+ 610 01f6 0E94 0000 call nrk_gpio_clr
+ 611 /* epilogue: frame size=0 */
+ 612 01fa 0895 ret
+ 613 /* epilogue end (size=1) */
+ 614 /* function monome_comm_init size 46 (45) */
+ 616 .Lscope9:
+ 618 .stabd 78,0,0
+ 619 .data
+ 620 .LC2:
+ 621 0024 4372 6561 .string "Create done\r"
+ 621 7465 2064
+ 621 6F6E 650D
+ 621 00
+ 622 .text
+ 624 .global nrk_create_taskset
+ 626 nrk_create_taskset:
+ 627 .stabd 46,0,0
+ 629 .LM64:
+ 630 .LFBB10:
+ 631 /* prologue: frame size=0 */
+ 632 01fc 0F93 push r16
+ 633 01fe 1F93 push r17
+ 634 /* prologue end (size=2) */
+ 636 .LM65:
+ 637 0200 80E0 ldi r24,lo8(pm(main_task))
+ 638 0202 90E0 ldi r25,hi8(pm(main_task))
+ 639 0204 9093 0000 sts (MainTask+5)+1,r25
+ 640 0208 8093 0000 sts MainTask+5,r24
+ 642 .LM66:
+ 643 020c 00E0 ldi r16,lo8(MainTask)
+ 644 020e 10E0 ldi r17,hi8(MainTask)
+ 645 0210 40E8 ldi r20,lo8(128)
+ 646 0212 50E0 ldi r21,hi8(128)
+ 647 0214 60E0 ldi r22,lo8(MainStack)
+ 648 0216 70E0 ldi r23,hi8(MainStack)
+ 649 0218 C801 movw r24,r16
+ 650 021a 0E94 0000 call nrk_task_set_stk
+ 652 .LM67:
+ 653 021e 81E0 ldi r24,lo8(1)
+ 654 0220 8093 0000 sts MainTask+8,r24
+ 656 .LM68:
+ 657 0224 8093 0000 sts MainTask+7,r24
+ 659 .LM69:
+ 660 0228 8093 0000 sts MainTask+9,r24
+ 662 .LM70:
+ 663 022c 8093 0000 sts MainTask+10,r24
+ 665 .LM71:
+ 666 0230 1092 0000 sts MainTask+11,__zero_reg__
+ 667 0234 1092 0000 sts (MainTask+11)+1,__zero_reg__
+ 668 0238 1092 0000 sts (MainTask+11)+2,__zero_reg__
+ 669 023c 1092 0000 sts (MainTask+11)+3,__zero_reg__
+ 671 .LM72:
+ 672 0240 80E0 ldi r24,lo8(500000000)
+ 673 0242 95E6 ldi r25,hi8(500000000)
+ 674 0244 ADEC ldi r26,hlo8(500000000)
+ 675 0246 BDE1 ldi r27,hhi8(500000000)
+ 676 0248 8093 0000 sts MainTask+15,r24
+ 677 024c 9093 0000 sts (MainTask+15)+1,r25
+ 678 0250 A093 0000 sts (MainTask+15)+2,r26
+ 679 0254 B093 0000 sts (MainTask+15)+3,r27
+ 681 .LM73:
+ 682 0258 1092 0000 sts MainTask+19,__zero_reg__
+ 683 025c 1092 0000 sts (MainTask+19)+1,__zero_reg__
+ 684 0260 1092 0000 sts (MainTask+19)+2,__zero_reg__
+ 685 0264 1092 0000 sts (MainTask+19)+3,__zero_reg__
+ 687 .LM74:
+ 688 0268 80E0 ldi r24,lo8(200000000)
+ 689 026a 92EC ldi r25,hi8(200000000)
+ 690 026c ABEE ldi r26,hlo8(200000000)
+ 691 026e BBE0 ldi r27,hhi8(200000000)
+ 692 0270 8093 0000 sts MainTask+23,r24
+ 693 0274 9093 0000 sts (MainTask+23)+1,r25
+ 694 0278 A093 0000 sts (MainTask+23)+2,r26
+ 695 027c B093 0000 sts (MainTask+23)+3,r27
+ 697 .LM75:
+ 698 0280 1092 0000 sts MainTask+27,__zero_reg__
+ 699 0284 1092 0000 sts (MainTask+27)+1,__zero_reg__
+ 700 0288 1092 0000 sts (MainTask+27)+2,__zero_reg__
+ 701 028c 1092 0000 sts (MainTask+27)+3,__zero_reg__
+ 703 .LM76:
+ 704 0290 1092 0000 sts MainTask+31,__zero_reg__
+ 705 0294 1092 0000 sts (MainTask+31)+1,__zero_reg__
+ 706 0298 1092 0000 sts (MainTask+31)+2,__zero_reg__
+ 707 029c 1092 0000 sts (MainTask+31)+3,__zero_reg__
+ 709 .LM77:
+ 710 02a0 C801 movw r24,r16
+ 711 02a2 0E94 0000 call nrk_activate_task
+ 713 .LM78:
+ 714 02a6 80E0 ldi r24,lo8(.LC2)
+ 715 02a8 90E0 ldi r25,hi8(.LC2)
+ 716 02aa 0E94 0000 call puts
+ 717 /* epilogue: frame size=0 */
+ 718 02ae 1F91 pop r17
+ 719 02b0 0F91 pop r16
+ 720 02b2 0895 ret
+ 721 /* epilogue end (size=3) */
+ 722 /* function nrk_create_taskset size 92 (87) */
+ 724 .Lscope10:
+ 726 .stabd 78,0,0
+ 728 .global main_task
+ 730 main_task:
+ 731 .stabd 46,0,0
+ 733 .LM79:
+ 734 .LFBB11:
+ 735 /* prologue: frame size=6 */
+ 736 02b4 6F92 push r6
+ 737 02b6 7F92 push r7
+ 738 02b8 8F92 push r8
+ 739 02ba 9F92 push r9
+ 740 02bc AF92 push r10
+ 741 02be BF92 push r11
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.map Sat Dec 11
12:36:09 2010
@@ -0,0 +1,2227 @@
+Archive member included because of file (symbol)
+
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ (vfprintf)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__mulsi3)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ ../../../../../src/kernel/source/nrk_scheduler.o
(__udivmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__divmodhi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ ../../../../../src/net/rt_link/rt_link.o
(__udivmodsi4)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o (exit)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ main.o (__do_clear_bss)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ ../../../../../src/net/rt_link/rt_link.o
(rand)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
(strlen_P)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fdevopen)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(fputc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ ../../../../../src/platform/firefly2_2/source/ulib.o
(__iob)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ main.o (printf)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ main.o (puts)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_read_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
(__eeprom_write_byte_1F2021)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
(calloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(malloc)
+/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
(memset)
+/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
(__divmodsi4)
+
+Allocating common symbols
+Common symbol size file
+
+rx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+last_slot_time 0x8 main.o
+rtl_param 0x9 main.o
+_free_node
0x2 ../../../../../src/kernel/source/nrk.o
+app_timer0_callback
+ 0x2 main.o
+nrk_task_TCB
0x84 ../../../../../src/kernel/source/nrk.o
+cycle_callback 0x2 main.o
+next_next_wakeup
0x2 ../../../../../src/kernel/source/nrk.o
+ext_int1_callback 0x2 main.o
+tsync_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+radio_sem
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rx_pkt_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_ready 0x1 main.o
+global_cycle
0x2 ../../../../../src/net/rt_link/rt_link.o
+tsync_delay
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_task_stack 0x80 main.o
+rtl_tx_data_ready 0x4 main.o
+ext_int0_callback 0x2 main.o
+nrk_sem_list
0x3 ../../../../../src/kernel/source/nrk.o
+security_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+nrk_task_init_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+error_task 0x1 main.o
+_rtl_sync_ok 0x1 main.o
+slot_start_time
0x2 ../../../../../src/net/rt_link/rt_link.o
+z_baseline 0x2 main.o
+_rtl_contention_slots
+ 0x1 main.o
+tx_callback 0x2 main.o
+rtl_task 0x23 main.o
+rtl_tdma_tx_mask 0x4 main.o
+mdmctrl0
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rfSettings
0x9 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_abs_wakeup
0x8 ../../../../../src/net/rt_link/rt_link.o
+global_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+_nrk_time_trigger 0x1 main.o
+sync_pkt_tx 0x1 main.o
+ext_int2_callback 0x2 main.o
+_dbg_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+__brkval 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+message 0x1 main.o
+nrk_wakeup_signal
0x1 ../../../../../src/kernel/source/nrk.o
+state 0x1 main.o
+rtl_tsync_tx 0x7 main.o
+nrk_high_ready_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+last_sync_slot
0x2 ../../../../../src/net/rt_link/rt_link.o
+pc_int0_callback 0x2 main.o
+tmp_blah
0x2 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_rfRxInfo 0x9 main.o
+nrk_cur_task_prio
0x1 ../../../../../src/kernel/source/nrk.o
+_rtl_time_token_status
+ 0x1 main.o
+_nrk_cpu_state
0x1 ../../../../../src/kernel/source/nrk.o
+prev_offset
0x2 ../../../../../src/net/rt_link/rt_link.o
+player_num 0x1 main.o
+is_open
0x1 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+pkt_log
0x8 ../../../../../src/net/rt_link/rt_link.o
+rtl_abs_tx_slot 0x2 main.o
+_head_node
0x2 ../../../../../src/kernel/source/nrk.o
+nrk_system_time
0x8 ../../../../../src/kernel/source/nrk.o
+_nrk_signal_list 0x4 main.o
+_nrk_resource_cnt
0x1 ../../../../../src/kernel/source/nrk.o
+sync_pkt_rx 0x1 main.o
+CommStack 0x80 main.o
+channel
0x1 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+auto_ack_enable
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+rtl_drift_rate
0x2 ../../../../../src/net/rt_link/rt_link.o
+calibration 0x1 main.o
+_rtl_contention_pending
+ 0x1 main.o
+rx_buf 0x74 main.o
+current_global_slot
+
0x2 ../../../../../src/net/rt_link/rt_link.o
+nrk_cur_task_TCB
0x2 ../../../../../src/kernel/source/nrk.o
+rtl_rx_slot 0x1 main.o
+rtl_tdma_rx_mask 0x4 main.o
+_nrk_driver_count
0x1 ../../../../../src/kernel/source/nrk_driver.o
+nrk_kernel_stk_ptr 0x2 main.o
+MainStack 0x80 main.o
+nrk_drivers
0x4 ../../../../../src/kernel/source/nrk_driver.o
+rx_callback 0x2 main.o
+rtl_rx_data_ready 0x1 main.o
+tx_buf 0x74 main.o
+rtl_abs_tx_ready 0x1 main.o
+slot_callback 0x2 main.o
+last_pkt_encrypted
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+y_baseline 0x2 main.o
+x_baseline 0x2 main.o
+nrk_high_ready_prio
+
0x1 ../../../../../src/kernel/source/nrk.o
+app_timer0_prescale
+ 0x1 main.o
+rtl_node_mode 0x1 main.o
+nrk_driver_init
0x1 ../../../../../src/kernel/source/nrk_driver.o
+abs_callback 0x2 main.o
+_tsync_index
0x1 ../../../../../src/net/rt_link/rt_link.o
+tx_ctr
0x4 ../../../../../src/radio/cc2420/source/basic_rf.o
+MainTask 0x23 main.o
+_nrk_prev_timer_val
+ 0x1 main.o
+rtl_rfTxInfo 0x7 main.o
+__flp 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+error_num 0x1 main.o
+rtl_sched
0x10 ../../../../../src/net/rt_link/rt_link.o
+tx_len 0x1 main.o
+_nrk_readyQ
0x19 ../../../../../src/kernel/source/nrk.o
+rtl_sched_cache
0x20 ../../../../../src/net/rt_link/rt_link.o
+__iob 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+last_slot 0x2 main.o
+rx_ready
0x1 ../../../../../src/radio/cc2420/source/basic_rf.o
+CommTask 0x23 main.o
+rtl_rx_buf 0x74 main.o
+nrk_idle_task_stk 0x80 main.o
+rtl_tx_done_signal
0x1 ../../../../../src/net/rt_link/rt_link.o
+_rtl_time_token 0x1 main.o
+rtl_tx_info 0x63 main.o
+rtl_tsync_buf 0x3 main.o
+
+Discarded input sections
+
+ .stabstr 0x00000000 0x0 main.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .stabstr 0x00000000
0x0 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .stabstr 0x00000000
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .stabstr 0x00000000
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .stabstr 0x00000000
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800200
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+LOAD main.o
+LOAD ../../../../../src/net/rt_link/rt_link.o
+LOAD ../../../../../src/net/rt_link/rtl_scheduler.o
+LOAD ../../../../../src/net/rt_link/rtl_debug.o
+LOAD ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+LOAD ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+LOAD ../../../../../src/radio/cc2420/source/basic_rf.o
+LOAD ../../../../../src/platform/firefly2_2/source/ulib.o
+LOAD ../../../../../src/platform/firefly2_2/source/hal_wait.o
+LOAD ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+LOAD ../../../../../src/kernel/source/nrk.o
+LOAD ../../../../../src/kernel/source/nrk_stats.o
+LOAD ../../../../../src/kernel/source/nrk_error.o
+LOAD ../../../../../src/kernel/source/nrk_stack_check.o
+LOAD ../../../../../src/kernel/source/nrk_events.o
+LOAD ../../../../../src/kernel/source/nrk_task.o
+LOAD ../../../../../src/kernel/source/nrk_time.o
+LOAD ../../../../../src/kernel/source/nrk_idle_task.o
+LOAD ../../../../../src/kernel/source/nrk_scheduler.o
+LOAD ../../../../../src/kernel/source/nrk_driver.o
+LOAD ../../../../../src/kernel/source/nrk_reserve.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+LOAD ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+LOAD ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+LOAD
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libm.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a
+LOAD /sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0x716c
+ *(.vectors)
+ .vectors 0x00000000 0xcc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x00000000 __vectors
+ *(.vectors)
+ 0x000000cc __ctors_start = .
+ *(.ctors)
+ 0x000000cc __ctors_end = .
+ 0x000000cc __dtors_start = .
+ *(.dtors)
+ 0x000000cc __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.progmem.gcc*)
+ .progmem.gcc_sw_table
+ 0x000000cc
0x24 ../../../../../src/kernel/source/nrk_error.o
+ *(.progmem*)
+ .progmem.data 0x000000f0 0x3e main.o
+ .progmem.data 0x0000012e
0x56 ../../../../../src/net/rt_link/rt_link.o
+ .progmem.data 0x00000184
0x1c8 ../../../../../src/kernel/source/nrk_error.o
+ .progmem.data 0x0000034c
0xf ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x0000035c . = ALIGN (0x2)
+ *fill* 0x0000035b 0x1 00
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ *(.init0)
+ .init0 0x0000035c 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000035c __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x0000035c 0xc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000368 0x1a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x00000368 __do_copy_data
+ .init4 0x00000382 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x00000382 __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x00000392 0x8
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ *(.init9)
+ *(.text)
+ .text 0x0000039a 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ 0x0000039a __vector_38
+ 0x0000039a __vector_22
+ 0x0000039a __vector_28
+ 0x0000039a __vector_34
+ 0x0000039a __vector_24
+ 0x0000039a __vector_12
+ 0x0000039a __vector_46
+ 0x0000039a __bad_interrupt
+ 0x0000039a __vector_6
+ 0x0000039a __vector_31
+ 0x0000039a __vector_35
+ 0x0000039a __vector_39
+ 0x0000039a __vector_3
+ 0x0000039a __vector_23
+ 0x0000039a __vector_30
+ 0x0000039a __vector_45
+ 0x0000039a __vector_25
+ 0x0000039a __vector_11
+ 0x0000039a __vector_19
+ 0x0000039a __vector_7
+ 0x0000039a __vector_49
+ 0x0000039a __vector_41
+ 0x0000039a __vector_43
+ 0x0000039a __vector_27
+ 0x0000039a __vector_5
+ 0x0000039a __vector_33
+ 0x0000039a __vector_47
+ 0x0000039a __vector_37
+ 0x0000039a __vector_4
+ 0x0000039a __vector_44
+ 0x0000039a __vector_21
+ 0x0000039a __vector_36
+ 0x0000039a __vector_29
+ 0x0000039a __vector_40
+ 0x0000039a __vector_8
+ 0x0000039a __vector_26
+ 0x0000039a __vector_48
+ 0x0000039a __vector_14
+ 0x0000039a __vector_10
+ 0x0000039a __vector_50
+ 0x0000039a __vector_16
+ 0x0000039a __vector_18
+ 0x0000039a __vector_20
+ 0x0000039a __vector_42
+ .text 0x0000039e 0x554 main.o
+ 0x00000438 monome_comm_send_msg
+ 0x000004ac nrk_register_drivers
+ 0x000004a2 monome_move
+ 0x00000484 monome_draw
+ 0x00000466 monome_erase
+ 0x0000053e monome_comm_init
+ 0x000004c4 monome_set_player_num
+ 0x0000059a nrk_create_taskset
+ 0x0000039e monome_comm_set_msg
+ 0x0000084a main
+ 0x00000404 monome_setup_system
+ 0x00000652 main_task
+ .text 0x000008f2
0xe96 ../../../../../src/net/rt_link/rt_link.o
+ 0x0000096e rtl_set_cycle_callback
+ 0x000016a4 rtl_wait_until_tx_done
+ 0x0000091e rtl_check_abs_tx_status
+ 0x00001652 rtl_wait_until_rx_or_tx
+ 0x00000e6c rtl_tx_abs_pkt
+ 0x0000090c rtl_get_slot
+ 0x00000a6a rtl_start
+ 0x0000098c rtl_set_tx_callback
+ 0x0000092c rtl_tx_pkt_check
+ 0x000009c0 rtl_task_config
+ 0x000008f8 rtl_ready
+ 0x00000996 rtl_set_abs_callback
+ 0x000008f2 rtl_wait_until_global_slot
+ 0x00001152 rtl_set_channel
+ 0x00000ee2 _rtl_rx_sync
+ 0x0000176e rtl_get_tx_done_signal
+ 0x00000aaa rtl_set_contention
+ 0x000016e2 rtl_wait_until_rx_pkt
+ 0x00000af2 rtl_init
+ 0x00001754 rtl_get_rx_pkt_signal
+ 0x00000978 rtl_set_slot_callback
+ 0x00000982 rtl_set_rx_callback
+ 0x00000916 rtl_sync_status
+ 0x00000c2c rtl_set_tx_power
+ 0x00000c32 _rtl_tx
+ 0x00000d54 _rtl_rx
+ 0x000009a0 rtl_rx_pkt_set_buffer
+ 0x00000926 rtl_rx_pkt_release
+ 0x00000962 rtl_rx_pkt_check
+ 0x00001716 rtl_rx_pkt_get
+ 0x0000115c rtl_tx_pkt
+ 0x000011e4 rtl_nw_task
+ 0x00001574 rtl_get_global_slot
+ .text 0x00001788
0x442 ../../../../../src/net/rt_link/rtl_scheduler.o
+ 0x00001ae0 _rtl_clear_sched_cache
+ 0x000019cc _rtl_clr_abs_wakeup
+ 0x0000194a rtl_set_abs_wakeup
+ 0x00001788 rtl_set_schedule
+ 0x00001b24 rtl_get_slots_until_next_wakeup
+ 0x0000183e rtl_get_schedule
+ 0x00001a36 _rtl_match_abs_wakeup
+ 0x00001af0 _rtl_pow
+ 0x00001878 rtl_clr_schedule
+ 0x00001a9e _rtl_get_next_abs_wakeup
+ 0x00001924 _rtl_clr_abs_all_wakeup
+ .text 0x00001bca
0x1d8 ../../../../../src/net/rt_link/rtl_debug.o
+ 0x00001cf4 rtl_debug_get_tsync_delay
+ 0x00001c3a rtl_debug_get_pkt_loss
+ 0x00001bca rtl_debug_time_update
+ 0x00001bea rtl_debug_time_get_drift
+ 0x00001c62 rtl_debug_get_tsync_loss
+ 0x00001d0c rtl_debug_rx_tsync
+ 0x00001bf4 rtl_debug_init
+ 0x00001c16 bit_count
+ 0x00001c6e rtl_debug_rx_pkt
+ 0x00001cb0 rtl_debug_dropped_pkt
+ 0x00001d56 rtl_debug_dropped_tsync
+ .text 0x00001da2
0x382 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ 0x00001f32 dev_manager_ff_sensors
+ 0x00001e04 read_voltage_status
+ 0x00001da2 init_adc
+ 0x00001dd8 get_adc_val
+ 0x00001dce delay
+ .text 0x00002124
0x3e ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ 0x00002124 halRfSetChannel
+ .text 0x00002162
0x18 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ 0x00002162 halRfWaitForCrystalOscillator
+ .text 0x0000217a
0x12da ../../../../../src/radio/cc2420/source/basic_rf.o
+ 0x000032a8 rf_set_channel
+ 0x000023a0 rf_rx_on
+ 0x0000232a rf_auto_ack_enable
+ 0x0000228e rf_tx_power
+ 0x00003272 rf_set_rx
+ 0x000022f4 rf_addr_decode_disable
+ 0x00002952 rf_data_mode
+ 0x0000241c rf_rx_check_fifop
+ 0x000029c4 rf_tx_packet
+ 0x0000242e rf_rx_check_sfd
+ 0x00002210 rf_security_enable
+ 0x00002890 rf_rx_packet
+ 0x000029b4 rf_carrier_off
+ 0x00002408 rf_busy
+ 0x000023c8 rf_polling_rx_on
+ 0x00002442 rf_polling_rx_packet
+ 0x000029a4 rf_carrier_on
+ 0x00002284 rf_get_sem
+ 0x000023f0 rf_rx_off
+ 0x000028ae rf_flush_rx_fifo
+ 0x000032ae rf_init
+ 0x000022be rf_addr_decode_enable
+ 0x00003098 rf_security_set_key
+ 0x00002d0a rf_tx_tdma_packet
+ 0x00002182 rf_security_set_ctr_counter
+ 0x000028cc rf_set_cca_thresh
+ 0x00003022 rf_addr_decode_set_my_mac
+ 0x0000225c rf_security_disable
+ 0x00002366 rf_auto_ack_disable
+ 0x000028fc rf_test_mode
+ 0x0000217a rf_security_last_pkt_status
+ .text 0x00003454
0x978 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x000034e2 nrk_gpio_set
+ 0x00003be0 nrk_get_button
+ 0x00003da6 nrk_kprintf
+ 0x0000345a nrk_uart_data_ready
+ 0x000039b0 nrk_gpio_direction
+ 0x00003d4a getc0
+ 0x00003c74 nrk_led_set
+ 0x00003490 getc1
+ 0x0000379e nrk_gpio_toggle
+ 0x000035ec nrk_gpio_clr
+ 0x00003cc4 putc0
+ 0x00003d64 nrk_setup_uart
+ 0x00003cae nrk_gpio_pullups
+ 0x00003d1c setup_uart1
+ 0x000034d4 nrk_setup_ports
+ 0x00003cde putc1
+ 0x00003c3a nrk_led_clr
+ 0x00003704 nrk_gpio_get
+ 0x000034aa PORT_INIT
+ 0x00003cee setup_uart0
+ 0x00003c00 nrk_led_toggle
+ 0x00003454 nrk_uart_rx_signal_get
+ .text 0x00003dcc
0xe ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ 0x00003dcc halWait
+ .text 0x00003dda
0x11c ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ 0x00003e74 read_eeprom_load_img_pages
+ 0x00003e02 nrk_eeprom_read_byte
+ 0x00003dee
write_eeprom_current_image_checksum
+ 0x00003eba write_eeprom_load_img_pages
+ 0x00003e0e read_eeprom_mac_address
+ 0x00003eb0 nrk_eeprom_write_byte
+ 0x00003ece write_eeprom_aes_key
+ 0x00003e60 read_eeprom_channel
+ 0x00003e88 read_eeprom_aes_key
+ 0x00003dda
read_eeprom_current_image_checksum
+ .text 0x00003ef6
0x43c ../../../../../src/kernel/source/nrk.o
+ 0x00003efe nrk_version
+ 0x0000421a nrk_init
+ 0x00003f0a nrk_TCB_init
+ 0x0000432e nrk_halt
+ 0x00003f04 _nrk_timer_tick
+ 0x00003efa nrk_int_enable
+ 0x0000415a nrk_start
+ 0x00003ef6 nrk_int_disable
+ .text 0x00004332
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .text 0x00004332
0x1b0 ../../../../../src/kernel/source/nrk_error.o
+ 0x000044ca nrk_error_add
+ 0x000044bc nrk_kernel_error_add
+ 0x0000434c nrk_error_get
+ 0x0000433e nrk_errno_get
+ 0x00004332 _nrk_errno_set
+ 0x0000436c nrk_error_print
+ .text 0x000044e2
0x1e8 ../../../../../src/kernel/source/nrk_stack_check.o
+ 0x0000452c dump_stack_info
+ 0x000044e2 nrk_stack_check_pid
+ 0x00004684 nrk_stack_check
+ .text 0x000046ca
0x5e0 ../../../../../src/kernel/source/nrk_events.o
+ 0x00004a70 nrk_signal_delete
+ 0x00004990 nrk_event_signal
+ 0x000048e8 nrk_sem_post
+ 0x0000484e nrk_sem_create
+ 0x00004c34 nrk_event_wait
+ 0x000048ae nrk_sem_query
+ 0x000046ca nrk_signal_create
+ 0x000047dc nrk_signal_register
+ 0x00004b8c nrk_sem_pend
+ 0x00004866 nrk_sem_delete
+ 0x00004744 nrk_signal_get_registered_mask
+ 0x00004854 nrk_get_resource_index
+ 0x00004756 nrk_signal_unregister
+ .text 0x00004caa
0x67e ../../../../../src/kernel/source/nrk_task.o
+ 0x00004e8e _nrk_wait_for_scheduler
+ 0x00004e80 nrk_get_pid
+ 0x00005200 nrk_wait_until_next_period
+ 0x0000512c nrk_wait_ticks
+ 0x00004f5c nrk_wait_until
+ 0x0000505a nrk_set_next_wakeup
+ 0x00004cce nrk_add_to_readyQ
+ 0x0000500c nrk_wait_until_nw
+ 0x00004cb8 nrk_print_readyQ
+ 0x0000527c nrk_activate_task
+ 0x000050d6 nrk_wait_until_ticks
+ 0x00004ea2 nrk_wait
+ 0x00005258 nrk_terminate_task
+ 0x00004caa nrk_get_high_ready_task_ID
+ 0x0000519a nrk_wait_until_next_n_periods
+ 0x00004ddc nrk_rem_from_readyQ
+ .text 0x00005328
0x5c0 ../../../../../src/kernel/source/nrk_time.o
+ 0x00005544 nrk_time_set
+ 0x00005832 nrk_time_get
+ 0x00005566 _nrk_time_to_ticks
+ 0x00005722 _nrk_time_to_ticks_long
+ 0x00005446 nrk_time_compact_nanos
+ 0x0000548a nrk_time_add
+ 0x00005328 nrk_time_sub
+ 0x0000566a _nrk_ticks_to_time
+ .text 0x000058e8
0x48 ../../../../../src/kernel/source/nrk_idle_task.o
+ 0x000058e8 nrk_idle_task
+ .text 0x00005930
0x3f0 ../../../../../src/kernel/source/nrk_scheduler.o
+ 0x00005930 _nrk_scheduler
+ .text 0x00005d20
0x232 ../../../../../src/kernel/source/nrk_driver.o
+ 0x00005ec8 nrk_write
+ 0x00005d5a nrk_open
+ 0x00005dfc nrk_get_status
+ 0x00005e40 nrk_set_status
+ 0x00005d20 nrk_register_driver
+ 0x00005e84 nrk_read
+ 0x00005f0c nrk_close
+ .text 0x00005f52
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .text 0x00005f52
0x398 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ 0x000061e8 nrk_high_speed_timer_wait
+ 0x00006160 __vector_32
+ 0x00006016 nrk_timer_int_reset
+ 0x00005fe2 _nrk_os_timer_reset
+ 0x000060de _nrk_os_timer_get
+ 0x00006008 nrk_timer_int_stop
+ 0x00005f52 nrk_spin_wait_us
+ 0x000060e6 __vector_13
+ 0x00005f6e _nrk_high_speed_timer_reset
+ 0x0000614c __vector_17
+ 0x00006274 _nrk_setup_timer
+ 0x000061bc __vector_default
+ 0x00006000 _nrk_set_next_wakeup
+ 0x0000602e nrk_timer_int_read
+ 0x00005f60 _nrk_high_speed_timer_stop
+ 0x00005f66 _nrk_high_speed_timer_start
+ 0x00006042 nrk_timer_int_start
+ 0x000060e6 __vector_15
+ 0x00006058 nrk_timer_int_configure
+ 0x00005fca _nrk_os_timer_set
+ 0x00005f7e _nrk_high_speed_timer_get
+ 0x00005fb4 _nrk_os_timer_stop
+ 0x00005fd0 _nrk_os_timer_start
+ 0x00005ff6 _nrk_get_next_wakeup
+ .text 0x000062ea
0x34e ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x000062ea nrk_ext_int_enable
+ 0x00006580 __vector_1
+ 0x00006402 nrk_ext_int_configure
+ 0x000065dc __vector_9
+ 0x00006524 __vector_2
+ 0x00006378 nrk_ext_int_disable
+ .text 0x00006638
0x16 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ 0x0000664c update_watchdog
+ 0x00006638 _nrk_startup_ok
+ .text 0x0000664e
0x54 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ 0x00006664 nrk_watchdog_disable
+ 0x00006682 nrk_watchdog_enable
+ 0x0000664e nrk_watchdog_check
+ 0x00006660 nrk_watchdog_reset
+ .text 0x000066a2
0x130 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ 0x00006756 nrk_stack_pointer_init
+ 0x00006794 nrk_task_set_stk
+ 0x000066bc nrk_idle
+ 0x000066a2 nrk_battery_save
+ 0x000066d2 nrk_task_set_entry_function
+ 0x0000678a nrk_target_start
+ 0x00006778 nrk_stack_pointer_restore
+ 0x000066da nrk_task_stk_init
+ 0x000066a4 nrk_sleep
+ .text 0x000067d2
0x56 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ 0x000067d2 nrk_start_high_ready_task
+ .text 0x00006828 0x34c
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ 0x00006828 vfprintf
+ .text 0x00006b74 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x00006b74 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00006b74 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x00006b74 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00006b74 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text 0x00006b74 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text 0x00006b74 0xde
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ 0x00006c2c rand_r
+ 0x00006c32 rand
+ 0x00006c3c srand
+ .text 0x00006c52 0x12
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ 0x00006c52 strlen_P
+ .text 0x00006c64 0xa0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ 0x00006c64 fdevopen
+ .text 0x00006d04 0x5a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ 0x00006d04 fputc
+ .text 0x00006d5e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .text 0x00006d5e 0x40
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ 0x00006d5e printf
+ .text 0x00006d9e 0x66
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ 0x00006d9e puts
+ .text 0x00006e04 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .text 0x00006e04 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .text 0x00006e04 0x38
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ 0x00006e04 calloc
+ .text 0x00006e3c 0x1f2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x00006e3c malloc
+ 0x00006f82 free
+ .text 0x0000702e 0xe
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ 0x0000702e memset
+ .text 0x0000703c 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000703c . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x0000703c 0x3e
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ 0x0000703c __mulsi3
+ .text.libgcc 0x0000707a 0x28
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x0000707a __udivmodhi4
+ .text.libgcc 0x000070a2 0x26
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x000070a2 __divmodhi4
+ 0x000070a2 _div
+ .text.libgcc 0x000070c8 0x44
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x000070c8 __udivmodsi4
+ .text.libgcc 0x0000710c 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x0000710c 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text.eeprom 0x0000710c 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ 0x0000710c __eeprom_read_byte_1F2021
+ .text.eeprom 0x0000711c 0x18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ 0x0000711c __eeprom_write_byte_1F2021
+ .text.libgcc 0x00007134 0x36
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x00007134 __divmodsi4
+ 0x0000716a . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x0000716a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000716a exit
+ 0x0000716a _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x0000716a 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x0000716c _etext = .
+
+.data 0x00800200 0xae load address 0x0000716c
+ 0x00800200 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800200 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .data 0x00800200 0x31 main.o
+ .data 0x00800231
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .data 0x00800231
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .data 0x00800231
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .data 0x00800231
0x0 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .data 0x00800231
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .data 0x00800231
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .data 0x00800231
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .data 0x00800231
0x21 ../../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00800244 NRK_LED_0
+ 0x00800249 NRK_FIFOP
+ 0x00800241 NRK_SFD
+ 0x0080023d NRK_DEBUG_3
+ 0x00800245 NRK_LED_1
+ 0x0080024f NRK_ADC_INPUT_5
+ 0x0080024b NRK_ADC_INPUT_1
+ 0x00800243 NRK_UART0_TXD
+ 0x00800246 NRK_LED_2
+ 0x00800233 NRK_BUTTON
+ 0x0080024a NRK_ADC_INPUT_0
+ 0x00800232 NRK_DEBUG_1
+ 0x00800248 NRK_GPIO34
+ 0x00800240 NRK_CCA
+ 0x00800250 NRK_ADC_INPUT_6
+ 0x00800231 NRK_DEBUG_0
+ 0x0080024d NRK_ADC_INPUT_3
+ 0x00800238 NRK_GPIO26
+ 0x00800237 NRK_MISO
+ 0x00800239 NRK_MMC_11
+ 0x00800236 NRK_MOSI
+ 0x0080024e NRK_ADC_INPUT_4
+ 0x0080023f NRK_UART1_TXD
+ 0x00800242 NRK_UART0_RXD
+ 0x00800251 NRK_ADC_INPUT_7
+ 0x0080023c NRK_DEBUG_2
+ 0x0080023b NRK_MMC_9
+ 0x00800247 NRK_LED_3
+ 0x00800234 NRK_SPI_SS
+ 0x0080023a NRK_MMC_10
+ 0x0080023e NRK_UART1_RXD
+ 0x0080024c NRK_ADC_INPUT_2
+ 0x00800235 NRK_SCK
+ .data 0x00800252
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .data 0x00800252
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .data 0x00800252
0x0 ../../../../../src/kernel/source/nrk.o
+ .data 0x00800252
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .data 0x00800252
0x3 ../../../../../src/kernel/source/nrk_error.o
+ .data 0x00800255
0x4e ../../../../../src/kernel/source/nrk_stack_check.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .data 0x008002a3
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .data 0x008002a3 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .data 0x008002a3 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .data 0x008002a7 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .data 0x008002a7 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x008002a9 __malloc_heap_start
+ 0x008002ab __malloc_heap_end
+ 0x008002a7 __malloc_margin
+ .data 0x008002ad 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .data 0x008002ad 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x008002ae . = ALIGN (0x2)
+ *fill* 0x008002ad 0x1 00
+ 0x008002ae _edata = .
+ 0x008002ae PROVIDE (__data_end, .)
+
+.bss 0x008002ae 0x5e0
+ 0x008002ae PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+ .bss 0x008002ae 0x0 main.o
+ .bss 0x008002ae
0x0 ../../../../../src/net/rt_link/rt_link.o
+ .bss 0x008002ae
0x0 ../../../../../src/net/rt_link/rtl_scheduler.o
+ .bss 0x008002ae
0x0 ../../../../../src/net/rt_link/rtl_debug.o
+ .bss 0x008002ae
0x0 ../../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .bss 0x008002ae
0x0 ../../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .bss 0x008002ae
0x0 ../../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .bss 0x008002ae
0x0 ../../../../../src/radio/cc2420/source/basic_rf.o
+ .bss 0x008002ae
0x0 ../../../../../src/platform/firefly2_2/source/ulib.o
+ .bss 0x008002ae
0x0 ../../../../../src/platform/firefly2_2/source/hal_wait.o
+ .bss 0x008002ae
0x0 ../../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_stats.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_error.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_stack_check.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_events.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_task.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_time.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_idle_task.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_scheduler.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_driver.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/source/nrk_reserve.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .bss 0x008002ae
0x0 ../../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(puts.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ .bss 0x008002ae 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodsi4.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x008002ae 0x499 main.o
+ 0x008002ae last_slot_time
+ 0x008002b6 rtl_param
+ 0x008002bf app_timer0_callback
+ 0x008002c1 cycle_callback
+ 0x008002c3 ext_int1_callback
+ 0x008002c5 _rtl_ready
+ 0x008002c6 rtl_task_stack
+ 0x00800346 rtl_tx_data_ready
+ 0x0080034a ext_int0_callback
+ 0x0080034c error_task
+ 0x0080034d _rtl_sync_ok
+ 0x0080034e z_baseline
+ 0x00800350 _rtl_contention_slots
+ 0x00800351 tx_callback
+ 0x00800353 rtl_task
+ 0x00800376 rtl_tdma_tx_mask
+ 0x0080037a _nrk_time_trigger
+ 0x0080037b sync_pkt_tx
+ 0x0080037c ext_int2_callback
+ 0x0080037e message
+ 0x0080037f state
+ 0x00800380 rtl_tsync_tx
+ 0x00800387 pc_int0_callback
+ 0x00800389 rtl_rfRxInfo
+ 0x00800392 _rtl_time_token_status
+ 0x00800393 player_num
+ 0x00800394 rtl_abs_tx_slot
+ 0x00800396 _nrk_signal_list
+ 0x0080039a sync_pkt_rx
+ 0x0080039b CommStack
+ 0x0080041b calibration
+ 0x0080041c _rtl_contention_pending
+ 0x0080041d rx_buf
+ 0x00800491 rtl_rx_slot
+ 0x00800492 rtl_tdma_rx_mask
+ 0x00800496 nrk_kernel_stk_ptr
+ 0x00800498 MainStack
+ 0x00800518 rx_callback
+ 0x0080051a rtl_rx_data_ready
+ 0x0080051b tx_buf
+ 0x0080058f rtl_abs_tx_ready
+ 0x00800590 slot_callback
+ 0x00800592 y_baseline
+ 0x00800594 x_baseline
+ 0x00800596 app_timer0_prescale
+ 0x00800597 rtl_node_mode
+ 0x00800598 abs_callback
+ 0x0080059a MainTask
+ 0x008005bd _nrk_prev_timer_val
+ 0x008005be rtl_rfTxInfo
+ 0x008005c5 error_num
+ 0x008005c6 tx_len
+ 0x008005c7 last_slot
+ 0x008005c9 CommTask
+ 0x008005ec rtl_rx_buf
+ 0x00800660 nrk_idle_task_stk
+ 0x008006e0 _rtl_time_token
+ 0x008006e1 rtl_tx_info
+ 0x00800744 rtl_tsync_buf
+ COMMON 0x00800747
0x62 ../../../../../src/net/rt_link/rt_link.o
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/main.sym Sat Dec 11
12:36:09 2010
@@ -0,0 +1,701 @@
+00000000 W __heap_end
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 T __vectors
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+000000cc T __ctors_end
+000000cc T __ctors_start
+000000cc T __dtors_end
+000000cc T __dtors_start
+000000f0 t __c.2602
+0000010f t __c.2534
+0000012e t __c.2963
+00000159 t __c.2961
+00000184 t __c.2376
+0000018b t __c.2373
+000001a6 t __c.2370
+000001be t __c.2367
+000001de t __c.2364
+000001f2 t __c.2361
+00000203 t __c.2358
+00000212 t __c.2355
+0000022d t __c.2352
+00000239 t __c.2349
+0000025e t __c.2346
+0000027c t __c.2343
+0000028f t __c.2340
+000002a2 t __c.2337
+000002ba t __c.2334
+000002d0 t __c.2331
+000002eb t __c.2328
+00000301 t __c.2325
+00000315 t __c.2321
+0000033c t __c.2318
+00000340 t __c.2316
+0000034c t __c.2249
+0000035c W __init
+00000368 T __do_copy_data
+00000382 T __do_clear_bss
+0000038a t .do_clear_bss_loop
+0000038c t .do_clear_bss_start
+0000039a T __bad_interrupt
+0000039a W __vector_10
+0000039a W __vector_11
+0000039a W __vector_12
+0000039a W __vector_14
+0000039a W __vector_16
+0000039a W __vector_18
+0000039a W __vector_19
+0000039a W __vector_20
+0000039a W __vector_21
+0000039a W __vector_22
+0000039a W __vector_23
+0000039a W __vector_24
+0000039a W __vector_25
+0000039a W __vector_26
+0000039a W __vector_27
+0000039a W __vector_28
+0000039a W __vector_29
+0000039a W __vector_3
+0000039a W __vector_30
+0000039a W __vector_31
+0000039a W __vector_33
+0000039a W __vector_34
+0000039a W __vector_35
+0000039a W __vector_36
+0000039a W __vector_37
+0000039a W __vector_38
+0000039a W __vector_39
+0000039a W __vector_4
+0000039a W __vector_40
+0000039a W __vector_41
+0000039a W __vector_42
+0000039a W __vector_43
+0000039a W __vector_44
+0000039a W __vector_45
+0000039a W __vector_46
+0000039a W __vector_47
+0000039a W __vector_48
+0000039a W __vector_49
+0000039a W __vector_5
+0000039a W __vector_50
+0000039a W __vector_6
+0000039a W __vector_7
+0000039a W __vector_8
+0000039e T monome_comm_set_msg
+00000404 T monome_setup_system
+00000438 T monome_comm_send_msg
+00000466 T monome_erase
+00000484 T monome_draw
+000004a2 T monome_move
+000004ac T nrk_register_drivers
+000004c4 T monome_set_player_num
+0000053e T monome_comm_init
+0000059a T nrk_create_taskset
+00000652 T main_task
+0000084a T main
+000008f2 T rtl_wait_until_global_slot
+000008f8 T rtl_ready
+0000090c T rtl_get_slot
+00000916 T rtl_sync_status
+0000091e T rtl_check_abs_tx_status
+00000926 T rtl_rx_pkt_release
+0000092c T rtl_tx_pkt_check
+00000962 T rtl_rx_pkt_check
+0000096e T rtl_set_cycle_callback
+00000978 T rtl_set_slot_callback
+00000982 T rtl_set_rx_callback
+0000098c T rtl_set_tx_callback
+00000996 T rtl_set_abs_callback
+000009a0 T rtl_rx_pkt_set_buffer
+000009c0 T rtl_task_config
+00000a6a T rtl_start
+00000aaa T rtl_set_contention
+00000af2 T rtl_init
+00000c2c T rtl_set_tx_power
+00000c32 T _rtl_tx
+00000d54 T _rtl_rx
+00000e6c T rtl_tx_abs_pkt
+00000ee2 T _rtl_rx_sync
+00001152 T rtl_set_channel
+0000115c T rtl_tx_pkt
+000011e4 T rtl_nw_task
+00001574 T rtl_get_global_slot
+00001652 T rtl_wait_until_rx_or_tx
+000016a4 T rtl_wait_until_tx_done
+000016e2 T rtl_wait_until_rx_pkt
+00001716 T rtl_rx_pkt_get
+00001754 T rtl_get_rx_pkt_signal
+0000176e T rtl_get_tx_done_signal
+00001788 T rtl_set_schedule
+0000183e T rtl_get_schedule
+00001878 T rtl_clr_schedule
+00001924 T _rtl_clr_abs_all_wakeup
+0000194a T rtl_set_abs_wakeup
+000019cc T _rtl_clr_abs_wakeup
+00001a36 T _rtl_match_abs_wakeup
+00001a9e T _rtl_get_next_abs_wakeup
+00001ae0 T _rtl_clear_sched_cache
+00001af0 T _rtl_pow
+00001b24 T rtl_get_slots_until_next_wakeup
+00001bca T rtl_debug_time_update
+00001bea T rtl_debug_time_get_drift
+00001bf4 T rtl_debug_init
+00001c16 T bit_count
+00001c3a T rtl_debug_get_pkt_loss
+00001c62 T rtl_debug_get_tsync_loss
+00001c6e T rtl_debug_rx_pkt
+00001cb0 T rtl_debug_dropped_pkt
+00001cf4 T rtl_debug_get_tsync_delay
+00001d0c T rtl_debug_rx_tsync
+00001d56 T rtl_debug_dropped_tsync
+00001da2 T init_adc
+00001dce T delay
+00001dd8 T get_adc_val
+00001e04 T read_voltage_status
+00001f32 T dev_manager_ff_sensors
+00002124 T halRfSetChannel
+00002162 T halRfWaitForCrystalOscillator
+0000217a T rf_security_last_pkt_status
+00002182 T rf_security_set_ctr_counter
+000021ff W __stack
+00002210 T rf_security_enable
+0000225c T rf_security_disable
+00002284 T rf_get_sem
+0000228e T rf_tx_power
+000022be T rf_addr_decode_enable
+000022f4 T rf_addr_decode_disable
+0000232a T rf_auto_ack_enable
+00002366 T rf_auto_ack_disable
+000023a0 T rf_rx_on
+000023c8 T rf_polling_rx_on
+000023f0 T rf_rx_off
+00002408 T rf_busy
+0000241c T rf_rx_check_fifop
+0000242e T rf_rx_check_sfd
+00002442 T rf_polling_rx_packet
+00002890 T rf_rx_packet
+000028ae T rf_flush_rx_fifo
+000028cc T rf_set_cca_thresh
+000028fc T rf_test_mode
+00002952 T rf_data_mode
+000029a4 T rf_carrier_on
+000029b4 T rf_carrier_off
+000029c4 T rf_tx_packet
+00002d0a T rf_tx_tdma_packet
+00003022 T rf_addr_decode_set_my_mac
+00003098 T rf_security_set_key
+00003272 T rf_set_rx
+000032a8 T rf_set_channel
+000032ae T rf_init
+00003454 T nrk_uart_rx_signal_get
+0000345a T nrk_uart_data_ready
+00003490 T getc1
+000034aa T PORT_INIT
+000034d4 T nrk_setup_ports
+000034e2 T nrk_gpio_set
+000035ec T nrk_gpio_clr
+00003704 T nrk_gpio_get
+0000379e T nrk_gpio_toggle
+000039b0 T nrk_gpio_direction
+00003be0 T nrk_get_button
+00003c00 T nrk_led_toggle
+00003c3a T nrk_led_clr
+00003c74 T nrk_led_set
+00003cae T nrk_gpio_pullups
+00003cc4 T putc0
+00003cde T putc1
+00003cee T setup_uart0
+00003d1c T setup_uart1
+00003d4a T getc0
+00003d64 T nrk_setup_uart
+00003da6 T nrk_kprintf
+00003dcc T halWait
+00003dda T read_eeprom_current_image_checksum
+00003dee T write_eeprom_current_image_checksum
+00003e02 T nrk_eeprom_read_byte
+00003e0e T read_eeprom_mac_address
+00003e60 T read_eeprom_channel
+00003e74 T read_eeprom_load_img_pages
+00003e88 T read_eeprom_aes_key
+00003eb0 T nrk_eeprom_write_byte
+00003eba T write_eeprom_load_img_pages
+00003ece T write_eeprom_aes_key
+00003ef6 T nrk_int_disable
+00003efa T nrk_int_enable
+00003efe T nrk_version
+00003f04 T _nrk_timer_tick
+00003f0a T nrk_TCB_init
+0000415a T nrk_start
+0000421a T nrk_init
+0000432e T nrk_halt
+00004332 T _nrk_errno_set
+0000433e T nrk_errno_get
+0000434c T nrk_error_get
+0000436c T nrk_error_print
+000044bc T nrk_kernel_error_add
+000044ca T nrk_error_add
+000044e2 T nrk_stack_check_pid
+0000452c T dump_stack_info
+00004684 T nrk_stack_check
+000046ca T nrk_signal_create
+00004744 T nrk_signal_get_registered_mask
+00004756 T nrk_signal_unregister
+000047dc T nrk_signal_register
+0000484e T nrk_sem_create
+00004854 T nrk_get_resource_index
+00004866 T nrk_sem_delete
+000048ae T nrk_sem_query
+000048e8 T nrk_sem_post
+00004990 T nrk_event_signal
+00004a70 T nrk_signal_delete
+00004b8c T nrk_sem_pend
+00004c34 T nrk_event_wait
+00004caa T nrk_get_high_ready_task_ID
+00004cb8 T nrk_print_readyQ
+00004cce T nrk_add_to_readyQ
+00004ddc T nrk_rem_from_readyQ
+00004e80 T nrk_get_pid
+00004e8e T _nrk_wait_for_scheduler
+00004ea2 T nrk_wait
+00004f5c T nrk_wait_until
+0000500c T nrk_wait_until_nw
+0000505a T nrk_set_next_wakeup
+000050d6 T nrk_wait_until_ticks
+0000512c T nrk_wait_ticks
+0000519a T nrk_wait_until_next_n_periods
+00005200 T nrk_wait_until_next_period
+00005258 T nrk_terminate_task
+0000527c T nrk_activate_task
+00005328 T nrk_time_sub
+00005446 T nrk_time_compact_nanos
+0000548a T nrk_time_add
+00005544 T nrk_time_set
+00005566 T _nrk_time_to_ticks
+0000566a T _nrk_ticks_to_time
+00005722 T _nrk_time_to_ticks_long
+00005832 T nrk_time_get
+000058e8 T nrk_idle_task
+00005930 T _nrk_scheduler
+00005d20 T nrk_register_driver
+00005d5a T nrk_open
+00005dfc T nrk_get_status
+00005e40 T nrk_set_status
+00005e84 T nrk_read
+00005ec8 T nrk_write
+00005f0c T nrk_close
+00005f52 T nrk_spin_wait_us
+00005f60 T _nrk_high_speed_timer_stop
+00005f66 T _nrk_high_speed_timer_start
+00005f6e T _nrk_high_speed_timer_reset
+00005f7e T _nrk_high_speed_timer_get
+00005fb4 T _nrk_os_timer_stop
+00005fca T _nrk_os_timer_set
+00005fd0 T _nrk_os_timer_start
+00005fe2 T _nrk_os_timer_reset
+00005ff6 T _nrk_get_next_wakeup
+00006000 T _nrk_set_next_wakeup
+00006008 T nrk_timer_int_stop
+00006016 T nrk_timer_int_reset
+0000602e T nrk_timer_int_read
+00006042 T nrk_timer_int_start
+00006058 T nrk_timer_int_configure
+000060de T _nrk_os_timer_get
+000060e6 T __vector_13
+000060e6 T __vector_15
+0000614c T __vector_17
+00006160 T __vector_32
+000061bc T __vector_default
+000061e8 T nrk_high_speed_timer_wait
+00006274 T _nrk_setup_timer
+000062ea T nrk_ext_int_enable
+00006378 T nrk_ext_int_disable
+00006402 T nrk_ext_int_configure
+00006524 T __vector_2
+00006580 T __vector_1
+000065dc T __vector_9
+00006638 T _nrk_startup_ok
+0000664c T update_watchdog
+0000664e T nrk_watchdog_check
+00006660 T nrk_watchdog_reset
+00006664 T nrk_watchdog_disable
+00006682 T nrk_watchdog_enable
+000066a2 T nrk_battery_save
+000066a4 T nrk_sleep
+000066bc T nrk_idle
+000066d2 T nrk_task_set_entry_function
+000066da T nrk_task_stk_init
+00006756 T nrk_stack_pointer_init
+00006778 T nrk_stack_pointer_restore
+0000678a T nrk_target_start
+00006794 T nrk_task_set_stk
+000067d2 T nrk_start_high_ready_task
+00006828 T vfprintf
+00006b74 t do_rand
+00006c2c T rand_r
+00006c32 T rand
+00006c3c T srand
+00006c52 T strlen_P
+00006c64 T fdevopen
+00006d04 T fputc
+00006d5e T printf
+00006d9e T puts
+00006e04 T calloc
+00006e3c T malloc
+00006f82 T free
+0000702e T memset
+0000703c T __mulsi3
+0000707a T __udivmodhi4
+00007082 t __udivmodhi4_loop
+00007090 t __udivmodhi4_ep
+000070a2 T __divmodhi4
+000070a2 T _div
+000070b6 t __divmodhi4_neg2
+000070bc t __divmodhi4_exit
+000070be t __divmodhi4_neg1
+000070c8 T __udivmodsi4
+000070d4 t __udivmodsi4_loop
+000070ee t __udivmodsi4_ep
+0000710c T __eeprom_read_byte_1F2021
+0000711c T __eeprom_write_byte_1F2021
+00007134 T __divmodsi4
+00007148 t __divmodsi4_neg2
+00007156 t __divmodsi4_exit
+00007158 t __divmodsi4_neg1
+0000716a t __stop_program
+0000716a T _exit
+0000716a W exit
+0000716c A __data_load_start
+0000716c T _etext
+0000721a A __data_load_end
+00800200 D __data_start
+00800231 D NRK_DEBUG_0
+00800232 D NRK_DEBUG_1
+00800233 D NRK_BUTTON
+00800234 D NRK_SPI_SS
+00800235 D NRK_SCK
+00800236 D NRK_MOSI
+00800237 D NRK_MISO
+00800238 D NRK_GPIO26
+00800239 D NRK_MMC_11
+0080023a D NRK_MMC_10
+0080023b D NRK_MMC_9
+0080023c D NRK_DEBUG_2
+0080023d D NRK_DEBUG_3
+0080023e D NRK_UART1_RXD
+0080023f D NRK_UART1_TXD
+00800240 D NRK_CCA
+00800241 D NRK_SFD
+00800242 D NRK_UART0_RXD
+00800243 D NRK_UART0_TXD
+00800244 D NRK_LED_0
+00800245 D NRK_LED_1
+00800246 D NRK_LED_2
+00800247 D NRK_LED_3
+00800248 D NRK_GPIO34
+00800249 D NRK_FIFOP
+0080024a D NRK_ADC_INPUT_0
+0080024b D NRK_ADC_INPUT_1
+0080024c D NRK_ADC_INPUT_2
+0080024d D NRK_ADC_INPUT_3
+0080024e D NRK_ADC_INPUT_4
+0080024f D NRK_ADC_INPUT_5
+00800250 D NRK_ADC_INPUT_6
+00800251 D NRK_ADC_INPUT_7
+008002a3 d next
+008002a7 D __malloc_margin
+008002a9 D __malloc_heap_start
+008002ab D __malloc_heap_end
+008002ae B __bss_start
+008002ae D __data_end
+008002ae D _edata
+008002ae B last_slot_time
+008002b6 B rtl_param
+008002bf B app_timer0_callback
+008002c1 B cycle_callback
+008002c3 B ext_int1_callback
+008002c5 B _rtl_ready
+008002c6 B rtl_task_stack
+00800346 B rtl_tx_data_ready
+0080034a B ext_int0_callback
+0080034c B error_task
+0080034d B _rtl_sync_ok
+0080034e B z_baseline
+00800350 B _rtl_contention_slots
+00800351 B tx_callback
+00800353 B rtl_task
+00800376 B rtl_tdma_tx_mask
+0080037a B _nrk_time_trigger
+0080037b B sync_pkt_tx
+0080037c B ext_int2_callback
+0080037e B message
+0080037f B state
+00800380 B rtl_tsync_tx
+00800387 B pc_int0_callback
+00800389 B rtl_rfRxInfo
+00800392 B _rtl_time_token_status
+00800393 B player_num
+00800394 B rtl_abs_tx_slot
+00800396 B _nrk_signal_list
+0080039a B sync_pkt_rx
+0080039b B CommStack
+0080041b B calibration
+0080041c B _rtl_contention_pending
+0080041d B rx_buf
+00800491 B rtl_rx_slot
+00800492 B rtl_tdma_rx_mask
+00800496 B nrk_kernel_stk_ptr
+00800498 B MainStack
+00800518 B rx_callback
+0080051a B rtl_rx_data_ready
+0080051b B tx_buf
+0080058f B rtl_abs_tx_ready
+00800590 B slot_callback
+00800592 B y_baseline
+00800594 B x_baseline
+00800596 B app_timer0_prescale
+00800597 B rtl_node_mode
+00800598 B abs_callback
+0080059a B MainTask
+008005bd B _nrk_prev_timer_val
+008005be B rtl_rfTxInfo
+008005c5 B error_num
+008005c6 B tx_len
+008005c7 B last_slot
+008005c9 B CommTask
+008005ec B rtl_rx_buf
+00800660 B nrk_idle_task_stk
+008006e0 B _rtl_time_token
+008006e1 B rtl_tx_info
+00800744 B rtl_tsync_buf
+00800747 B tsync_log
+0080074f B rtl_rx_pkt_signal
+00800750 B global_cycle
+00800752 B tsync_delay
+0080075a B slot_start_time
+0080075c B rtl_abs_wakeup
+00800764 B global_slot
+00800766 B _dbg_index
+00800767 B last_sync_slot
+00800769 B prev_offset
+0080076b B pkt_log
+00800773 B rtl_drift_rate
+00800775 B current_global_slot
+00800777 B _tsync_index
+00800778 B rtl_sched
+00800788 B rtl_sched_cache
+008007a8 B rtl_tx_done_signal
+008007a9 B is_open
+008007aa B channel
+008007ab B rx_ctr
+008007af B radio_sem
+008007b1 B security_enable
+008007b2 B mdmctrl0
+008007b4 B rfSettings
+008007bd B tmp_blah
+008007bf B auto_ack_enable
+008007c0 B last_pkt_encrypted
+008007c1 B tx_ctr
+008007c5 B rx_ready
+008007c6 B _free_node
+008007c8 B nrk_task_TCB
+0080084c B next_next_wakeup
+0080084e B nrk_sem_list
+00800851 B nrk_task_init_cnt
+00800852 B nrk_wakeup_signal
+00800853 B nrk_high_ready_TCB
+00800855 B nrk_cur_task_prio
+00800856 B _nrk_cpu_state
+00800857 B _head_node
+00800859 B nrk_system_time
+00800861 B _nrk_resource_cnt
+00800862 B nrk_cur_task_TCB
+00800864 B nrk_high_ready_prio
+00800865 B _nrk_readyQ
+0080087e B _nrk_driver_count
+0080087f B nrk_drivers
+00800883 B nrk_driver_init
+00800884 B __iob
+0080088a B __brkval
+0080088c B __flp
+0080088e B __bss_end
+0080088e A __heap_start
+0080088e A _end
+00810000 A __eeprom_end
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/makefile Sat Dec 11
12:36:09 2010
@@ -0,0 +1,42 @@
+# Platform name cc2420DK, firefly, micaZ, firefly2, firefly2_2
+PLATFORM = firefly2_2
+
+
+# Target file name (without extension).
+TARGET = main
+
+# Set the Port that you programmer is connected to
+ PROGRAMMING_PORT = /dev/tty.usbserial-0000101DB # Default FireFly
serial port
+# PROGRAMMING_PORT = /dev/ttyUSB0 # Default micaZ serial port
+
+# Set this such that the nano-RK directory is the base path
+ROOT_DIR = ../../../../..
+
+# Set platform specific defines
+# The following will be defined based on the PLATFORM variable:
+# PROG_TYPE (e.g. avrdude, or uisp)
+# MCU (e.g. atmega32, atmega128, atmega1281)
+# RADIO (e.g. cc2420)
+include $(ROOT_DIR)/include/platform.mk
+
+
+SRC = $(TARGET).c
+SRC += $(ROOT_DIR)/src/net/rt_link/rt_link.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_scheduler.c
+SRC += $(ROOT_DIR)/src/net/rt_link/rtl_debug.c
+SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+
+# Add extra source files.
+# For example:
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src1.c
+# SRC += $(ROOT_DIR)/src/platform/$(PLATFORM_TYPE)/source/my_src2.c
+
+# Add extra includes files.
+# For example:
+# EXTRAINCDIRS += $(ROOT_DIR)/src/platform/include
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/
+EXTRAINCDIRS += $(ROOT_DIR)/src/net/rt_link/platform/$(PLATFORM_TYPE)/
+
+
+# This is where the final compile and download happens
+include $(ROOT_DIR)/include/platform/$(PLATFORM)/common.mk
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/controller/nrk_cfg.h Sat Dec 11
12:36:09 2010
@@ -0,0 +1,36 @@
+/***************************************************************
+* NanoRK CONFIG *
+***************************************************************/
+
+#ifndef __nrk_cfg_h
+#define __nrk_cfg_h
+
+// NRK_REPORT_ERRORS will cause the kernel to print out information about
+// missed deadlines or reserve violations
+#define NRK_REPORT_ERRORS
+// NRK_HALT_ON_ERRORS will cause the kernel to freeze on errors so that
+// it is easier to see debugging messages.
+#define NRK_HALT_ON_ERROR
+
+// NRK_STACK_CHECK adds a little check to see if the bottom of the stack
+// has been over written on all suspend calls
+#define NRK_STACK_CHECK
+
+// Leave NRK_NO_POWER_DOWN define in if the target can not wake up from
sleep
+// because it has no asynchronously clocked
+// #define NRK_NO_POWER_DOWN
+#define NRK_MAX_DRIVER_CNT 1
+
+#define NRK_N_RES 0
+
+#define NRK_MAX_TASKS 4 // Max number of tasks in your
application
+#define NRK_N_SYS_TASKS 1 // you need at least the idle task
+
+
+#define NRK_TASK_IDLE_STK_SIZE 128 // Idle task stack size min=32
+#define NRK_APP_STACKSIZE 128
+#define NRK_KERNEL_STACKSIZE 128
+#define NRK_MAX_RESOURCE_CNT 1
+
+
+#endif
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/state_gen/main.c Sat Dec 11
12:36:09 2010
@@ -0,0 +1,283 @@
+/*
+ * main.c
+ *
+ *
+ * Created by Philip Asare on 12/6/10.
+ * Copyright 2010. All rights reserved.
+ *
+ *
+ * monome sketch-it base station
+ *
+ * communication
+ * -------------
+ * to controllers --> wireless (RT-Link)
+ * to console display --> UART
+ *
+ */
+
+
+#include <nrk.h>
+#include <include.h>
+#include <ulib.h>
+#include <stdio.h>
+#include <avr/sleep.h>
+#include <hal.h>
+#include <rt_link.h>
+#include <nrk_error.h>
+#include <nrk_timer.h>
+#include <nrk_ext_int.h>
+#include <nrk_events.h>
+#include <nrk_defs.h>
+
+/* interrupts */
+
+#define INC NRK_DEBUG_2
+#define SEND NRK_DEBUG_3
+
+
+#define INC_INT NRK_EXT_INT_0
+#define SEND_INT NRK_EXT_INT_1
+
+/* controller tx slots --> base station rx slots */
+#define MY_TX 2
+#define MY_RX 4
+
+/* controller state info */
+
+uint8_t state, prev_state;
+
+#define NUM_STATES 8
+
+/* for controller:
+ * if(SYNC)
+ * state <-- player_number
+ * assign player number (if valid)
+ * state = select
+ * else
+ * state <-- state
+ * change to new state
+ */
+
+#define SYNC 0
+#define SELECT 1
+#define PREGAME 2
+#define GAMEPLAY 3
+#define PLAYERASSIGN 4
+#define GAMEOVER_CALC 5
+#define GAMEOVER_CHOICE 6
+
+#define PLAYER1 1
+#define PLAYER2 2
+#define PLAYER3 3
+#define PLAYER4 4
+
+uint8_t tx_len = PKT_DATA_START;
+
+/* task setup */
+
+NRK_STK Stack1[NRK_APP_STACKSIZE];
+nrk_task_type TaskOne;
+void Task1(void);
+
+NRK_STK StackTX[NRK_APP_STACKSIZE];
+nrk_task_type TaskTX;
+void tx_task(void);
+
+inline void display_state(uint8_t state);
+
+void state_inc();
+void send();
+
+inline void monome_comm_init();
+
+void nrk_create_taskset();
+
+uint8_t tx_buf[RF_MAX_PAYLOAD_SIZE];
+uint8_t rx_buf[RF_MAX_PAYLOAD_SIZE];
+
+nrk_sig_t tx_sig;
+
+int
+main ()
+{
+ //uint16_t div;
+ nrk_setup_ports();
+ nrk_setup_uart(UART_BAUDRATE_115K2);
+
+ printf( "Starting up...\r\n" );
+
+ /* button input pins */
+ nrk_gpio_direction(NRK_DEBUG_2, NRK_PIN_INPUT);
+ nrk_gpio_direction(NRK_DEBUG_3, NRK_PIN_INPUT);
+
+ /* configure interrupts */
+ nrk_ext_int_configure(INC_INT, NRK_RISING_EDGE, state_inc);
+ //nrk_ext_int_configure(SEND_INT, NRK_RISING_EDGE, send );
+
+ tx_sig =nrk_signal_create();
+
+ nrk_init();
+
+ nrk_led_clr(0);
+ nrk_led_clr(1);
+ nrk_led_clr(2);
+ nrk_led_clr(3);
+
+ nrk_time_set(0,0);
+
+
+ rtl_task_config();
+
+ nrk_create_taskset ();
+
+ nrk_start();
+
+ return 0;
+}
+
+void Task1()
+{
+ monome_comm_init();
+
+
+ printf("started\r\n");
+ while(!rtl_ready()) nrk_wait_until_next_period();
+ nrk_ext_int_enable(INC_INT);
+ //nrk_ext_int_enable(SEND_INT);
+ while(1){
+ display_state(state);
+ nrk_wait_until_next_period();
+ }
+}
+
+void tx_task(){
+ int8_t cnt = 0;
+ printf("started\r\n");
+ while(!rtl_ready()) nrk_wait_until_next_period();
+ while(1){
+ if(cnt == 50){
+ cnt = 0;
+ if(state != prev_state){
+ nrk_led_toggle(GREEN_LED);
+ while( rtl_tx_pkt_check(MY_TX)!=0 );
+
+ tx_buf[PKT_DATA_START] = state;
+ rtl_tx_pkt( tx_buf, tx_len, MY_TX);
+ nrk_led_toggle(BLUE_LED);
+ rtl_wait_until_tx_done(MY_TX);
+ nrk_led_toggle(BLUE_LED);
+ nrk_led_toggle(GREEN_LED);
+ prev_state = state;
+ }
+ }
+
+ //toggle before and after checks for the tasks existence
+ nrk_led_toggle(RED_LED);
+ nrk_wait_until_next_period();
+ cnt++;
+ nrk_led_toggle(RED_LED);
+ }
+ // to check if the task exits the while loop, which shouldn't happen
+ nrk_led_set(RED_LED);
+}
+
+
+
+void
+nrk_create_taskset()
+{
+
+
+ TaskOne.task = Task1;
+ TaskOne.Ptos = (void *) &Stack1[NRK_APP_STACKSIZE-1];
+ TaskOne.Pbos = (void *) &Stack1[0];
+ TaskOne.prio = 3;
+ TaskOne.FirstActivation = TRUE;
+ TaskOne.Type = BASIC_TASK;
+ TaskOne.SchType = PREEMPTIVE;
+ TaskOne.period.secs = 0;
+ TaskOne.period.nano_secs = 120*NANOS_PER_MS;
+ TaskOne.cpu_reserve.secs = 0;
+ TaskOne.cpu_reserve.nano_secs = 50*NANOS_PER_MS;
+ TaskOne.offset.secs = 0;
+ TaskOne.offset.nano_secs= 0;
+ nrk_activate_task (&TaskOne);
+
+ TaskTX.task = tx_task;
+ TaskTX.Ptos = (void *) &StackTX[NRK_APP_STACKSIZE-1];
+ TaskTX.Pbos = (void *) &StackTX[0];
+ TaskTX.prio = 2 ;
+ TaskTX.FirstActivation = TRUE;
+ TaskTX.Type = BASIC_TASK;
+ TaskTX.SchType = PREEMPTIVE;
+ TaskTX.period.secs = 0;
+ TaskTX.period.nano_secs = 120*NANOS_PER_MS;
+ TaskTX.cpu_reserve.secs = 0;
+ TaskTX.cpu_reserve.nano_secs = 50*NANOS_PER_MS;
+ TaskTX.offset.secs = 0;
+ TaskTX.offset.nano_secs= 0;
+ nrk_activate_task (&TaskTX);
+
+
+ printf ("Create done\r\n");
+}
+
+inline void monome_comm_init(){
+ rtl_init (RTL_COORDINATOR);
+
+ /* rx schedules */
+ rtl_set_schedule( RTL_RX,MY_RX, 1 );
+
+
+ /* tx schedules */
+ rtl_set_schedule( RTL_TX, MY_TX, 1 );
+
+
+ rtl_start();
+ rtl_rx_pkt_set_buffer(rx_buf, RF_MAX_PAYLOAD_SIZE);
+ prev_state = -1;
+}
+
+void state_inc(){
+ while(nrk_gpio_get(INC));
+ state = (state+1)%NUM_STATES;
+ //printf("state inc!\r\n");
+}
+
+void send(){
+ while(nrk_gpio_get(SEND));
+ nrk_led_toggle(BLUE_LED);
+ nrk_event_signal(tx_sig);
+ nrk_led_toggle(BLUE_LED);
+}
+
+inline void display_state(uint8_t state){
+ if(state & 0x01){
+ nrk_led_set(RED_LED);
+ }
+ else{
+ nrk_led_clr(RED_LED);
+ }
+ if(state & 0x02){
+ nrk_led_set(GREEN_LED);
+ }
+ else{
+ nrk_led_clr(GREEN_LED);
+ }
+ if(state & 0x04){
+ nrk_led_set(BLUE_LED);
+ }
+ else{
+ nrk_led_clr(BLUE_LED);
+ }
+ if(state & 0x08){
+ nrk_led_set(ORANGE_LED);
+ }
+ else{
+ nrk_led_clr(ORANGE_LED);
+ }
+ //x printf("current state: %d\r\n", state);
+}
+
+
+
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/state_gen/main.d Sat Dec 11
12:36:09 2010
@@ -0,0 +1,20 @@
+main.o main.d : main.c ../../../../../src/kernel/include/nrk.h \
+ ../../../../../src/kernel/hal/include/nrk_cpu.h nrk_cfg.h \
+ ../../../../../src/kernel/include/nrk_time.h \
+ ../../../../../src/platform/firefly2_2/include/include.h \
+ ../../../../../src/platform/firefly2_2/include/hal.h \
+ ../../../../../src/platform/firefly2_2/include/hal_firefly2_2.h \
+ ../../../../../src/radio/cc2420/include/hal_cc2420.h \
+ ../../../../../src/radio/cc2420/hal/atmega1281/cc2420_mcu_hal.h \
+ ../../../../../src/radio/cc2420/platform/firefly2_2/cc2420_platform_hal.h
\
+ ../../../../../src/radio/cc2420/include/basic_rf.h \
+ ../../../../../src/kernel/include/nrk_events.h \
+ ../../../../../src/platform/include/ulib.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_pin_define.h \
+ ../../../../../src/platform/firefly2_2/include/nrk_platform_time.h \
+ ../../../../../src/kernel/include/nrk_task.h \
+ ../../../../../src/net/rt_link/rt_link.h \
+ ../../../../../src/kernel/include/nrk_error.h \
+ ../../../../../src/kernel/hal/include/nrk_timer.h \
+ ../../../../../src/kernel/hal/include/nrk_ext_int.h \
+ ../../../../../src/kernel/include/nrk_defs.h
=======================================
--- /dev/null
+++ /trunk/monome/controller_icomm_test_bed/state_gen/main.elf Sat Dec 11
12:36:09 2010
Binary file, no diff available.
=======================================
***Additional files exist in this changeset.***

Reply all
Reply to author
Forward
0 new messages