Modified:
/trunk/monome/controller_basic/main.c
/trunk/monome/controller_basic/main.d
/trunk/monome/controller_basic/main.elf
/trunk/monome/controller_basic/main.hex
/trunk/monome/controller_basic/main.lss
/trunk/monome/controller_basic/main.lst
/trunk/monome/controller_basic/main.map
/trunk/monome/controller_basic/main.sym
=======================================
--- /trunk/monome/controller_basic/main.c Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.c Sat Dec 11 12:34:39 2010
@@ -32,6 +32,7 @@
#include <hal.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>
@@ -40,19 +41,33 @@
nrk_task_type TaskOne;
void Task1(void);
-#define IRQ NRK_UART0_TXD
+//#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;
void nrk_create_taskset();
void nrk_register_drivers();
uint8_t kill_stack(uint8_t val);
+
+/* monome sketch-it functions */
void monome_move(uint8_t direction);
+void monome_draw();
+void monome_erase();
int
main ()
@@ -61,12 +76,29 @@
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") );
@@ -96,6 +128,11 @@
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;
@@ -216,9 +253,26 @@
void monome_move(uint8_t direction){
nrk_gpio_set(direction);
- nrk_gpio_set(IRQ);
- nrk_spin_wait_us(90000);
- nrk_gpio_clr(IRQ);
+ //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);
+}
=======================================
--- /trunk/monome/controller_basic/main.d Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.d Sat Dec 11 12:34:39 2010
@@ -15,6 +15,7 @@
../../../../src/kernel/include/nrk_task.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
=======================================
--- /trunk/monome/controller_basic/main.elf Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.elf Sat Dec 11 12:34:39 2010
Binary file, no diff available.
=======================================
--- /trunk/monome/controller_basic/main.hex Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.hex Sat Dec 11 12:34:39 2010
@@ -1,18 +1,18 @@
-:100000000C94AF010C9409290C94CE010C94CE01F0
+:100000000C94AF010C949B290C946D290C94CE0197
:100010000C94CE010C94CE010C94CE010C94CE0124
-:100020000C94CE010C9437290C94CE010C94CE0183
-:100030000C94CE010C94EA260C94CE010C94EA2682
-:100040000C94CE010C941D270C94CE010C94CE017F
+:100020000C94CE010C94C9290C94CE010C94CE01F1
+:100030000C94CE010C944E270C94CE010C944E27B8
+:100040000C94CE010C9481270C94CE010C94CE011B
:100050000C94CE010C94CE010C94CE010C94CE01E4
:100060000C94CE010C94CE010C94CE010C94CE01D4
:100070000C94CE010C94CE010C94CE010C94CE01C4
-:100080000C9427270C94CE010C94CE010C94CE0135
+:100080000C948B270C94CE010C94CE010C94CE01D1
:100090000C94CE010C94CE010C94CE010C94CE01A4
:1000A0000C94CE010C94CE010C94CE010C94CE0194
:1000B0000C94CE010C94CE010C94CE010C94CE0184
-:1000C0000C94CE010C94CE010C94CE01A817AE175F
-:1000D000B117B417B717BA17C017BD17C317C6178C
-:1000E000C917CF17D217D517D817CC17A517AB1725
+:1000C0000C94CE010C94CE010C94CE010C18121895
+:1000D000151818181B181E182418211827182A1864
+:1000E0002D183318361839183C18301809180F18FD
:1000F0004661696C656420746F206C6F6164206D6B
:100100007920414443206472697665720D0A004685
:1001100061696C656420746F206F70656E20736513
@@ -53,1438 +53,1456 @@
:100340003A20002A4E524B204552524F5228000D5F
:100350000A535441434B2044554D500D0A0011247B
:100360001FBECFEFD1E2DEBFCDBF12E0A0E0B2E012
-:10037000E4E8FCE500E00BBF02C007900D92A8374F
+:10037000E8EAFDE500E00BBF02C007900D92A83748
:10038000B107D9F714E0A8E7B2E001C01D92A23589
-:10039000B107E1F70E9457030C94412E0C945527A6
-:1003A0000F931F93082F0E942D1010911202812F7E
-:1003B0000E942D1080E99FE50E942026812F0E9437
-:1003C000B210802F0E94B2101F910F91089561E02A
-:1003D0008FE494E00E9407258F3F21F480EF90E0A6
-:1003E0000E947C1408950F931F938FE492E09093E2
-:1003F0008402809383020EE712E040E850E065EA51
-:1004000072E0C8010E94132A81E0809386028093E3
-:100410008502809387028093880221E030E040E0EB
-:1004200050E02093890230938A0240938B025093CC
-:100430008C0280E091EEA5EFB5E080938D02909361
-:100440008E02A0938F02B09390022093910230937A
-:100450009202409393025093940280E890EFAAEFA7
-:10046000B2E08093950290939602A0939702B09386
-:1004700098021092990210929A0210929B02109286
-:100480009C0210929D0210929E0210929F02109266
-:10049000A002C8010E94B51F1F910F9108952F92CD
-:1004A0003F924F925F926F927F929F92AF92BF92D4
-:1004B000CF92DF92EF92FF920F931F93CF93DF9330
-:1004C000CDB7DEB726970FB6F894DEBF0FBECDBF0F
-:1004D000809112020E94B21090901102892D0E9408
-:1004E000B210A09000028A2D0E94B210B0900E02AD
-:1004F0008B2D0E94B21000910D02802F0E94B2102D
-:1005000010922A03109229031092280310922703B5
-:1005100010927C0210927B02EE24FF24B1E0CB2EDD
-:10052000D12C1E010894211C311CA3E04A2E512C11
-:100530004C0E5D1EF5E06F2E712C6C0E7D1E65E07D
-:1005400081E00E942425182F8F3F21F48FE091E055
-:100550000E947C1481E090E00E94A91342E061E0D7
-:10056000812F0E94972542E0B101812F0E94B92579
-:1005700045E061E0812F0E94972542E0B201812F82
-:100580000E94B92546E061E0812F0E94972542E054
-:10059000B301812F0E94B9258BE0E816F104E8F53C
-:1005A000C114D104F1F129813A814B815C816D81C3
-:1005B0007E81E114F10449F430932A032093290346
-:1005C000509328034093270320C0809129039091E2
-:1005D0002A03280F391F3695279530932A03209335
-:1005E00029038091270390912803480F591F56959E
-:1005F0004795509328034093270380917B02909165
-:100600007C02680F791F7695679570937C026093E2
-:100610007B020894E11CF11C44C0EE24FF24CC248E
-:10062000DD244D815E8120917B0230917C02C901E5
-:100630000A968417950728F02A503040421753072E
-:1006400080F549815A812091290330912A03C901FB
-:100650000A968417950728F0C9010A974817590781
-:1006600040F42417350710F48A2D01C0892D0E940B
-:10067000D0014B815C812091270330912803C9016F
-:100680000A968417950728F0C9010A974817590751
-:1006900040F42417350710F4802F01C08B2D0E94E1
-:1006A000D001812F0E94FD250E94771F48CFCFEFF8
-:1006B000D1E2DEBFCDBF0E94261061E08091110221
-:1006C0000E94811261E0809112020E94811261E019
-:1006D00080910D020E94811261E080910E020E94C1
-:1006E00081120E94B61620E030E040E050E060E069
-:1006F00070E080E090E00E9419210E94E7010E94D2
-:10070000F3010E94561680E090E00C94412EEAE737
-:10071000F0E083E08083ACE7B0E080E48C938081FC
-:10072000806880831092AF038C91807E8C939C9123
-:100730008C91807E892B8C93089588EC90E00E94A8
-:100740002026089580917A00806480937A008091B9
-:100750007A0084FFFCCF0E949D032091780033270C
-:10076000809179009927982F8827822B932B0895C1
-:10077000FF920F931F93CF93DF93CDB7DEB72297EE
-:100780000FB6F894DEBF0FBECDBF0E94F8058C01F6
-:10079000009711F00E943D1C159AFF248F2D806256
-:1007A00099279A83898340988BE18EBD0DB407FE0B
-:1007B000FDCF89819A81892F99278EBD0DB407FEBF
-:1007C000FDCF89819A818EBD0DB407FEFDCF409A81
-:1007D00082E090E00E94202640988BE58EBD0DB40B
-:1007E00007FEFDCF1EBC0DB407FEFDCF8EB59927C9
-:1007F000982F88279A8389831EBC0DB407FEFDCFEE
-:1008000089819A812EB53327282B392B3A83298366
-:10081000409A89819A8186FD05C0F3942FE1F216F2
-:1008200009F0BCCF0115110519F0C8010E94581A32
-:10083000FF20C9F40E94A2039A83898389819A8147
-:100840008F3A910530F089819A818E5A90409A832F
-:10085000898389819A818A54914098F48AE491E04D
-:100860009A8389830EC02DE7F29E9001112488E2BD
-:1008700093E2821B930B6BE170E00E94F82D7A8368
-:10088000698389819A8122960FB6F894DEBF0FBEE4
-:10089000CDBFDF91CF911F910F91FF900895CF921F
-:1008A000DF92EF92FF920F931F93CF93DF93982FD6
-:1008B000EA01122F823009F481C0833030F488239A
-:1008C00071F0813009F0D2C010C0843009F481C0C9
-:1008D000843008F477C0853009F0C8C02DC080E8A6
-:1008E00080BB8F9A0E9487036AC08091AE038130DB
-:1008F00009F4C3C09093AE03772760FF13C08F98AD
-:100900001092AF0380917C00807E80937C00909158
-:100910007C0080917C00807E892B80937C0088EE17
-:1009200093E09FC061FDA9C062FDA7C067707070B1
-:10093000672B09F4A2C097C0822F8150823008F043
-:1009400099C09091AF03892F8150863018F40E948E
-:10095000A20322C0992319F40E94B8031DC0973046
-:1009600051F5F1E0CF2EF4E0DF2EEE24FF2400E07D
-:100970000E94A2038C159D0508F46C01E816F90687
-:1009800008F47C018DE790E00E9420260F5F003480
-:1009900079F7C7018C199D09123031F48883892FAA
-:1009A0009927898381E008C0113029F496958795AD
-:1009B00096958795888380E08F5F09C08F9A109203
-:1009C000AE0351C0613009F058C08091AF03992740
-:1009D00056C0613009F051C02730D9F42093AF03DD
-:1009E00080917C008F7780937C0080917C00806474
-:1009F00080937C0080917C00807E80937C0090912D
-:100A00007C0080917C009360807E982B90937C008A
-:100A100026C0283020F081E00E944F172EC020937E
-:100A2000AF03213049F480917C008F7780937C0064
-:100A300080917C00806403C080917C00806C8093F6
-:100A40007C0080917C00807E80937C0090917C0073
-:100A500080917C00807E892B812B80937C0088ECA8
-:100A600090E00E94202681E090E009C060E08CE0E8
-:100A70000E94141880E090E002C08FEF90E0DF91B8
-:100A8000CF911F910F91FF90EF90DF90CF9008953D
-:100A900099279C01265A3E4B0B97880F991F880F68
-:100AA000991F280F391FF894409888E18EBD0DB426
-:100AB00007FEFDCF832F99278EBD0DB407FEFDCF16
-:100AC0002EBD0DB407FEFDCF409A78940895F8949A
-:100AD00040981EBC0DB407FEFDCF8EB5409A7894A9
-:100AE00086FFF5CF08958091C50399270895CF9388
-:100AF000DF93DC01409889EC8EBD0DB407FEFDCF7D
-:100B000080E88EBD0DB407FEFDCF92E09150FD014F
-:100B1000E90FF11D80818EBD0DB407FEFDCF992335
-:100B2000A9F7409A40988BEC8EBD0DB407FEFDCF1F
-:100B300080E88EBD0DB407FEFDCF92E09D012E5FD3
-:100B40003F4FE9019150F901E90FF11D80818EBD00
-:100B50000DB407FEFDCF9923A1F7409A8C918093A5
-:100B6000C603FD0181818093C70388818093C803F8
-:100B700083818093C903DF91CF910895409889E1E3
-:100B80008EBD0DB407FEFDCF83E08EBD0DB407FE14
-:100B9000FDCF86E08EBD0DB407FEFDCF409A409894
-:100BA0008AE18EBD0DB407FEFDCF8EE08EBD0DB483
-:100BB00007FEFDCF8EE08EBD0DB407FEFDCF409A3F
-:100BC00081E08093B6030895409889E18EBD0DB40D
-:100BD00007FEFDCF81E08EBD0DB407FEFDCF84EC96
-:100BE0008EBD0DB407FEFDCF409A1092B603089556
-:100BF0008091B4039091B50308952091B70330918B
-:100C0000B80338603093B8032093B703409881E16C
-:100C10008EBD0DB407FEFDCF832F99278EBD0DB479
-:100C200007FEFDCF2EBD0DB407FEFDCF409A0895FF
-:100C30002091B7033091B803377F3093B8032093E6
-:100C4000B703409881E18EBD0DB407FEFDCF832F21
-:100C500099278EBD0DB407FEFDCF2EBD0DB407FE46
-:100C6000FDCF409A089581E08093C4032091B7039B
-:100C70003091B80320613093B8032093B7034098B4
-:100C800081E18EBD0DB407FEFDCF832F99278EBD68
-:100C90000DB407FEFDCF2EBD0DB407FEFDCF409A6B
-:100CA00008951092C4032091B7033091B8032F7EAA
-:100CB0003093B8032093B703409881E18EBD0DB403
-:100CC00007FEFDCF832F99278EBD0DB407FEFDCF04
-:100CD0002EBD0DB407FEFDCF409A089589B1992726
-:100CE00066E0969587956A95E1F781709070089512
-:100CF0008CB1992787FD90958827990F881F992790
-:100D0000089589B19927E6E096958795EA95E1F7E8
-:100D10008170907008958091CA03882319F480E04F
-:100D200090E008958091CA031092CA03992787FD25
-:100D300090950895409888E08EBD0DB407FEFDCFD4
-:100D4000409A409888E08EBD0DB407FEFDCF409AD2
-:100D500008958091B4039091B5030E943D1C409882
-:100D600086E08EBD0DB407FEFDCF409A8091B4039E
-:100D70009091B5030E94581A08958091B403909100
-:100D8000B5030E943D1C409884E08EBD0DB407FE63
-:100D9000FDCF409A8091B4039091B5030E94581AF8
-:100DA00008958091B4039091B5030E943D1C409832
-:100DB00086E08EBD0DB407FEFDCF409A409882E1DB
-:100DC0008EBD0DB407FEFDCF85E08EBD0DB407FED0
-:100DD000FDCF1EBC0DB407FEFDCF409A40988EE2B9
-:100DE0008EBD0DB407FEFDCF1EBC0DB407FEFDCFBA
-:100DF0001EBC0DB407FEFDCF409A0E949A0680915A
-:100E0000B4039091B5030E94581A08958091B403D9
-:100E10009091B5030E943D1C409886E08EBD0DB4B4
-:100E200007FEFDCF409A409882E18EBD0DB407FECB
-:100E3000FDCF85E08EBD0DB407FEFDCF88E08EBDF1
-:100E40000DB407FEFDCF409A40988EE28EBD0DB4E2
-:100E500007FEFDCF88E18EBD0DB407FEFDCF1EBCA1
-:100E60000DB407FEFDCF409A0E949A068091B4030C
-:100E70009091B5030E94581A08950F931F93082F5D
-:100E80008091B4039091B5030E943D1C112707FD8A
-:100E90001095302F22272068409883E18EBD0DB435
-:100EA00007FEFDCF832F99278EBD0DB407FEFDCF22
-:100EB0002EBD0DB407FEFDCF409A8091B4039091F2
-:100EC000B5030E94581A1F910F910895CF93DF9395
-:100ED000CDB7DEB724970FB6F894DEBF0FBECDBFF7
-:100EE0008091B4039091B5030E943D1C679B34C26E
-:100EF0001092C503679B25C0319923C040988FE7A6
-:100F00008EBD0DB407FEFDCF1EBC0DB407FEFDCF98
-:100F10008EB5409A409888E08EBD0DB407FEFDCF97
-:100F2000409A409888E08EBD0DB407FEFDCF409AF0
-:100F30008091B4039091B5030E94581A8FEF9FEFF0
-:100F400013C240988FE78EBD0DB407FEFDCF1EBCC7
-:100F50000DB407FEFDCF4EB5409A4F7719F5409876
-:100F60008FE78EBD0DB407FEFDCF1EBC0DB407FE8E
-:100F7000FDCF8EB5409A409888E08EBD0DB407FE37
-:100F8000FDCF409A409888E08EBD0DB407FEFDCF9E
-:100F9000409A8091B4039091B5030E94581A8EEF45
-:100FA0009FEFE2C145308CF0E091B903F091BA03B4
-:100FB000242F332727FD30952B50304084819927EB
-:100FC00087FD909582179307F4F540988FE78EBDC3
-:100FD0000DB407FEFDCF60E070E0242F332727FD1E
-:100FE000309506C01EBC0DB407FEFDCF6F5F7F4F6E
-:100FF000862F99278217930714F43199F3CF409ADB
-:1010000040988FE78EBD0DB407FEFDCF1EBC0DB41A
-:1010100007FEFDCF8EB5409A409888E08EBD0DB496
-:1010200007FEFDCF409A409888E08EBD0DB407FEC4
-:10103000FDCF409A8091B4039091B5030E94581A55
-:101040008DEF9FEF91C1E091B903F091BA034C503D
-:10105000438340988FE78EBD0DB407FEFDCFFE01A0
-:1010600031969E012D5F3F4F1EBC0DB407FEFDCF94
-:101070008EB58193E217F307B9F7409AE091B9036F
-:10108000F091BA0389819A81B5E096958795BA95D2
-:10109000E1F78170878340988FE78EBD0DB407FE1E
-:1010A000FDCF1EBC0DB407FEFDCFE091B903F0915A
-:1010B000BA038EB58083409A40988FE78EBD0DB4F9
-:1010C00007FEFDCF80E007C01EBC0DB407FEFDCFBC
-:1010D0008F5F843011F03199F7CF409A40988FE7B5
-:1010E0008EBD0DB407FEFDCF20E030E01EBC0DB478
-:1010F00007FEFDCFE091B903F091BA03E20FF31FB1
-:101100008EB581832F5F3F4F2230310579F7409AAA
-:1011100089819A8183FF56C040988FE78EBD0DB4B8
-:1011200007FEFDCFE0EBF3E01EBC0DB407FEFDCFE4
-:101130008EB5819383E0E43BF807B1F7409A40987D
-:1011400089E98EBD0DB407FEFDCF80E88EBD0DB4DC
-:1011500007FEFDCF92E09150E92FFF27E055FC4FAD
-:1011600080818EBD0DB407FEFDCF9923A1F7409A73
-:1011700040988BE98EBD0DB407FEFDCF80E88EBD93
-:101180000DB407FEFDCF92E09150E92FFF27EE54FA
-:10119000FC4F80818EBD0DB407FEFDCF9923A1F7D2
-:1011A000409A40988CE08EBD0DB407FEFDCF409A6A
-:1011B00081E08093C503E091B903F091BA03838184
-:1011C0008450838340988FE78EBD0DB407FEFDCF1A
-:1011D00040E050E011C01EBC0DB407FEFDCFE09111
-:1011E000B903F091BA030580F681E02DE60FF11DF9
-:1011F0008EB580834F5F5F4F642FE091B903F0910C
-:10120000BA03242F33278381992787FD90952817C8
-:1012100039070CF3409A40988FE78EBD0DB407FC58
-:101220000AC0FCCF0DB407FEFDCF5EB5409A4098D2
-:101230008FE78EBD02C01EBCF5CF0DB407FEFDCFFB
-:10124000FE0133969E012B5F3F4F1EBC0DB407FE7F
-:10125000FDCF8EB58193E217F307B9F7409AE0917D
-:10126000B903F091BA038B81808740E020E030E041
-:101270000AC0E091B903F091BA0385819681A80F65
-:10128000B91F8C91480F822FE091B903F091BA03F6
-:101290002F5F3F4FA82FBB278381992787FD90950C
-:1012A000A817B90734F3451719F140988FE78EBD99
-:1012B0000DB407FEFDCF1EBC0DB407FEFDCF8EB5ED
-:1012C000409A409888E08EBD0DB407FEFDCF409A4D
-:1012D000409888E08EBD0DB407FEFDCF409A809106
-:1012E000B4039091B5030E94581A8CEF9FEF3CC055
-:1012F0008C8187FF0EC08091CA038F5F8093CA03E1
-:101300008091B4039091B5030E94581A81E090E057
-:101310002BC040988FE78EBD0DB407FEFDCF1EBCDD
-:101320000DB407FEFDCF8EB5409A409888E08EBD83
-:101330000DB407FEFDCF409A409888E08EBD0DB4F5
-:1013400007FEFDCF409A8091B4039091B5030E94AF
-:10135000581A8BEF9FEF08C08091B4039091B503AA
-:101360000E94581A80E090E024960FB6F894DEBFF1
-:101370000FBECDBFDF91CF9108958091B4039091BE
-:10138000B5030E943D1C1092C103409886E08EBDBB
-:101390000DB407FEFDCF409A1092CA038091B403AA
-:1013A0009091B5030E94581A08958091B4039091CA
-:1013B000B5030E943D1C81E08093C103409883E007
-:1013C0008EBD0DB407FEFDCF409A409888E08EBDDB
-:1013D0000DB407FEFDCF409A1092CA038091B4036A
-:1013E0009091B5030E94581A08958091B40390918A
-:1013F000B5030E943D1C81E08093C103409883E0C7
-:101400008EBD0DB407FEFDCF409A409888E08EBD9A
-:101410000DB407FEFDCF409A1092CA038091B40329
-:101420009091B5030E94581A08951F93182F809128
-:10143000B4039091B5030E943D1C212F33272F71D7
-:101440003070206E306A409885E18EBD0DB407FE85
-:10145000FDCF832F99278EBD0DB407FEFDCF2EBD86
-:101460000DB407FEFDCF409A8091B4039091B5036F
-:101470000E94581A1F910895EF92FF920F931F93A5
-:10148000CF93DF93CDB7DEB722970FB6F894DEBFC8
-:101490000FBECDBF8C018091B4039091B5030E9423
-:1014A0003D1C5091B603552339F040988DE08EBD18
-:1014B0000DB407FEFDCF409AF8014281642F7727D3
-:1014C00067FD7095A0E020E030E008C0F80183815E
-:1014D0009481E80EF91EF7018081A80F822F2F5FFB
-:1014E0003F4FE82EFF24E616F70684F3942F945F0F
-:1014F00051119C5F6799FECF4E99FCCFF8944098AC
-:1015000089E08EBD0DB407FEFDCF409A409889E07A
-:101510008EBD0DB407FEFDCF409A40988EE38EBD80
-:101520000DB407FC05C0FCCF0DB407FC30C1FCCFE7
-:101530009EBDFACF81E698E89A838983552329F0E6
-:1015400089819A8188609A83898340988EE38EBDD1
-:101550000DB407FEFDCFFE0131969E012D5F3F4F7A
-:1015600080818EBD0DB407FEFDCF3196E217F307E3
-:10157000B9F7409A40988EE38EBD0DB407FC05C0C4
-:10158000FCCF0DB407FC0EC1FCCF8091BB038EBD18
-:10159000F8CF0DB407FEFDCF20E030E0F901E354B1
-:1015A000FC4F80818EBD0DB407FEFDCF2F5F3F4FF6
-:1015B0002230310599F7409A40988EE38EBD0DB4E4
-:1015C00007FEFDCF20E030E0F801E20FF31F80813D
-:1015D0008EBD0DB407FEFDCF2F5F3F4F223031058A
-:1015E00099F7409A40988EE38EBD0DB407FEFDCF6B
-:1015F00020E030E0F901E154FC4F80818EBD0DB454
-:1016000007FEFDCF2F5F3F4F2230310599F7409AFB
-:10161000552399F040988EE38EBD0DB407FEFDCFA3
-:10162000E6ECF3E080818EBD0DB407FEFDCF319670
-:1016300083E0EA3CF807B1F7409A40988EE38EBD0C
-:101640000DB407FEFDCF20E030E00DC0F80183812E
-:101650009481480F591FFA0180818EBD0DB407FE99
-:10166000FDCF2F5F3F4F422F55274617570774F383
-:10167000409A40988EE38EBD0DB407FC05C0FCCFA8
-:101680000DB407FC94C0FCCFAEBDFACF8091C1036E
-:10169000882339F4409883E08EBD0DB407FEFDCF5A
-:1016A000409A40981EBC0DB407FEFDCF8EB5409AFF
-:1016B00081FFF7CF00E0409885E08EBD0DB407FEB6
-:1016C000FDCF409A40981EBC0DB407FEFDCF1EB55D
-:1016D000409A0F5F053651F478948091B40390914D
-:1016E000B5030E94581A80E090E068C084E690E05C
-:1016F0000E948F1413FD08C0DECF409884E08EBD99
-:101700000DB407FEFDCF409A78944E9BFECF4E99C4
-:10171000FECF8091C403882391F084EA92E00E9476
-:101720008F14319B0EC040988FE78EBD0DB407FE1D
-:10173000FDCF1EBC0DB407FEFDCF8EB5409A11E063
-:101740000FC0409888E08EBD0DB407FEFDCF409AD3
-:10175000409888E08EBD0DB407FEFDCF409A10E0A2
-:10176000F894409886E08EBD0DB407FEFDCF409AF8
-:1017700078948091BB038F5F8093BB038091B40307
-:101780009091B5030E94581A812F992717C0409A4B
-:1017900081E498E89A8389838091C403882309F0BF
-:1017A000C9CECCCE409A40988EE38EBDF2CE409A00
-:1017B000F8018581882309F069CF9FCF22960FB663
-:1017C000F894DEBF0FBECDBFDF91CF911F910F9177
-:1017D000FF90EF900895BF92CF92DF92EF92FF9229
-:1017E0000F931F93CF93DF93CDB7DEB722970FB63A
-:1017F000F894DEBF0FBECDBF8C016B017A018091E2
-:10180000B4039091B5030E943D1C0E94E6264098C7
-:1018100088E08EBD0DB407FEFDCF409A409888E069
-:101820008EBD0DB407FEFDCF409A6799FECF4E994D
-:10183000FCCFF894409889E08EBD0DB407FEFDCF33
-:10184000409A409889E08EBD0DB407FEFDCF409AC6
-:10185000F8016281462F552747FD5095BB2420E0B3
-:1018600030E007C0F80183819481A80FB91F8C91E3
-:10187000B80E822F2F5F3F4FA82FBB27A417B507A5
-:101880008CF3962F945F40988EE38EBD0DB407FCC9
-:1018900005C0FCCF0DB407FC16C1FCCF9EBDFACF2E
-:1018A00081E698E89A83898340988EE38EBD0DB4D3
-:1018B00007FEFDCFFE0131969E012D5F3F4F8081D7
-:1018C0008EBD0DB407FEFDCF3196E217F307B9F7D1
-:1018D000409A40988EE38EBD0DB407FC05C0FCCF46
-:1018E0000DB407FCF9C0FCCF8091BB038EBDF8CFCF
-:1018F0000DB407FEFDCF20E030E0F901E354FC4FCA
-:1019000080818EBD0DB407FEFDCF2F5F3F4F22308B
-:10191000310599F7409A40988EE38EBD0DB407FECD
-:10192000FDCF20E030E0F801E20FF31F80818EBD93
-:101930000DB407FEFDCF2F5F3F4F2230310599F7E1
-:10194000409A40988EE38EBD0DB407FEFDCF20E097
-:1019500030E0F901E154FC4F80818EBD0DB407FEEB
-:10196000FDCF2F5F3F4F2230310599F7409AB701E5
-:10197000C6010E946B27F80185818823C1F18091FF
-:10198000C103882339F4409883E08EBD0DB407FE6F
-:10199000FDCF409A40981EBC0DB407FEFDCF8EB51A
-:1019A000409A81FFF7CFEE24409885E08EBD0DB4BC
-:1019B00007FEFDCF409A40981EBC0DB407FEFDCF38
-:1019C000FEB4409AE394F5E6EF1651F478948091D2
-:1019D000B4039091B5030E94581A80E090E083C050
-:1019E00084E690E00E948F14F3FC08C0DDCF40989D
-:1019F00084E08EBD0DB407FEFDCF409A40988EE383
-:101A00008EBD0DB407FEFDCFF8018281482F55270A
-:101A100047FD509520E030E00CC0F80183819481AF
-:101A2000A80FB91F8C918EBD0DB407FEFDCF2F5F9F
-:101A30003F4FA22FBB27A417B5077CF3409A4098CD
-:101A40008EE38EBD0DB407FC05C0FCCF0DB407FCC2
-:101A500048C0FCCFBEBCFACF4E9BFECFF8944E9947
-:101A6000FECF409888E08EBD0DB407FEFDCF409AB2
-:101A7000409888E08EBD0DB407FEFDCF409A409897
-:101A800089E08EBD0DB407FEFDCF409A409889E0F5
-:101A90008EBD0DB407FEFDCF409A409886E08EBD06
-:101AA0000DB407FEFDCF409A78948091BB038F5F01
-:101AB0008093BB038091B4039091B5030E94581AA0
-:101AC00081E090E010C0409AF8018681882309F0F7
-:101AD000E7CE81E498E8E6CE409A40988EE38EBD4A
-:101AE00007CF409AB9CF22960FB6F894DEBF0FBE4B
-:101AF000CDBFDF91CF911F910F91FF90EF90DF90BD
-:101B0000CF90BF900895CF93DF93CDB7DEB72297E4
-:101B10000FB6F894DEBF0FBECDBF9A838983909332
-:101B2000C0038093BF0384EF91E00E942026409879
-:101B30008AEE8EBD0DB407FEFDCF80E88EBD0DB4DC
-:101B400007FEFDCFFE0131969E012D5F3F4F808144
-:101B50008EBD0DB407FEFDCF3196E217F307B9F73E
-:101B6000409A84EF91E00E94202622960FB6F894C6
-:101B7000DEBF0FBECDBFDF91CF9108956F927F92F0
-:101B80008F929F92AF92BF92CF92DF92EF92FF928D
-:101B90000F931F93CF93DF93CDB7DEB722970FB686
-:101BA000F894DEBF0FBECDBF8C0184E690E00E94AA
-:101BB00020267801C12CB1E0DB2E3E010894611C87
-:101BC000711CA3E08A2E912C8C0E9D1EF701808142
-:101BD000218133279927982F8827282B392B3A835F
-:101BE000298384E690E00E94202640988C2D80680E
-:101BF0008EBD0DB407FEFDCFC60195958795807CFF
-:101C00008EBD0DB407FEFDCF83015301F501808128
-:101C10008EBD0DB407FEFDCF0894A11CB11CA81405
-:101C2000B904A1F7409A0894E11CF11C82E090E00D
-:101C3000C80ED91E90E1C91691E0D90639F684E69E
-:101C400090E00E94202620E131E040E451E01A8239
-:101C500019824098842F80688EBD0DB407FEFDCF99
-:101C6000CA0195958795807C8EBD0DB407FEFDCF8A
-:101C7000F80180818EBD0DB407FEFDCF3196EA15C7
-:101C8000FB05B9F7409A4098822F80688EBD0DB44D
-:101C900007FEFDCFC90195958795807C8EBD0DB45B
-:101CA00007FEFDCFF80180818EBD0DB407FEFDCF8C
-:101CB0003196EA15FB05B9F7409A2E5F3F4F4E5F0C
-:101CC0005F4FE1E02E313E0711F681E090E09A830C
-:101CD000898340988EEC8EBD0DB407FEFDCF80E861
-:101CE0008EBD0DB407FEFDCFF80180818EBD0DB411
-:101CF00007FEFDCF3196EA15FB05B9F7409A4098EB
-:101D00008EE98EBD0DB407FEFDCF80E88EBD0DB40B
-:101D100007FEFDCFF80180818EBD0DB407FEFDCF1B
-:101D20000F5F1F4F0A151B05A9F7409A22960FB6A1
-:101D3000F894DEBF0FBECDBFDF91CF911F910F9101
-:101D4000FF90EF90DF90CF90BF90AF909F908F90DB
-:101D50007F906F9008951F93CF93DF93EC01162F20
-:101D60008091B4039091B5030E943D1C409888E097
-:101D70008EBD0DB407FEFDCF409A409888E08EBD21
-:101D80000DB407FEFDCF409A812F0E944805D093E5
-:101D9000BA03C093B9038091B4039091B5030E9434
-:101DA000581ADF91CF911F9108951F93182F80919A
-:101DB000B4039091B5030E943D1C812F0E944805F9
-:101DC0008091B4039091B5030E94581A1F91089511
-:101DD000DF92EF92FF920F931F93CF93DF93CDB7D4
-:101DE000DEB722970FB6F894DEBF0FBECDBF8C01D1
-:101DF000D62E5A834983790164E181E00E94DD197E
-:101E00009093B5038093B403892B31F40E94B71DDE
-:101E1000682F8FE00E9414188091B4039091B5034D
-:101E20000E943D1C8F3F21F48BE591E00E947C14C1
-:101E3000159A88EE93E00E948F14169881E090E046
-:101E40000E948F14169A84E690E00E948F14F894F2
-:101E5000409881E08EBD0DB407FEFDCF409A82EE22
-:101E600092E09093B8038093B703409881E18EBDD0
-:101E70000DB407FEFDCF82E08EBD0DB407FEFDCF91
-:101E800082EE8EBD0DB407FEFDCF409A409882E1F0
-:101E90008EBD0DB407FEFDCF85E08EBD0DB407FEEF
-:101EA000FDCF1EBC0DB407FEFDCF409A40988CE1DB
-:101EB0008EBD0DB407FEFDCF1EBC0DB407FEFDCFD9
-:101EC0008FE78EBD0DB407FEFDCF409A409889E1A3
-:101ED0008EBD0DB407FEFDCF81E08EBD0DB407FEB3
-:101EE000FDCF84EC8EBD0DB407FEFDCF409A409827
-:101EF00087E18EBD0DB407FEFDCF8AE18EBD0DB426
-:101F000007FEFDCF86E58EBD0DB407FEFDCF409ADE
-:101F100084EF91E00E942026409888EE8EBD0DB49B
-:101F200007FEFDCF80E88EBD0DB407FEFDCFFE019C
-:101F300031969E012D5F3F4F80818EBD0DB407FE0F
-:101F4000FDCF3196E217F307B9F7409A84EF91E09D
-:101F50000E94202678948D2D0E9448057894109335
-:101F6000BA030093B90389819A819093BE03809349
-:101F7000BD03F092C003E092BF031092BB03109226
-:101F8000C1030E9467058091B4039091B5030E943C
-:101F9000581A8F3F39F48EE291E00E947C1482E05F
-:101FA0000E944F171092C4031092B6031092C503FB
-:101FB00022960FB6F894DEBF0FBECDBFDF91CF9152
-:101FC0001F910F91FF90EF90DF9008958FEF9FEF9B
-:101FD0000895813051F48091C800992787FD90952C
-:101FE0008827990F881F99270895882319F080E082
-:101FF00090E008958091C000992787FD90958827EB
-:10200000990F881F992708958091C80087FFFCCFFA
-:102010008091C8008F778093C8008091CE00992767
-:10202000089585B7806185BF86E084B987E085B96A
-:1020300081E087B988B98CE38DB98BE08AB98EE3EA
-:102040008EB988E781B980E482B908950E941110A1
-:1020500080E58CBD81E08DBD08958F3F09F47FC080
-:10206000482F55279A012770307022303105A9F189
-:102070002330310544F42115310589F02130310533
-:1020800009F06DC01CC02430310509F446C024306D
-:1020900031059CF12530310509F061C04EC022B1F7
-:1020A000B3E056954795BA95E1F781E090E002C01C
-:1020B000880F991F4A95E2F7282B22B94DC085B1A8
-:1020C000A3E056954795AA95E1F702C0220F331F6A
-:1020D0004A95E2F7822B85B93FC028B1F3E05695C7
-:1020E0004795FA95E1F781E090E002C0880F991FCB
-:1020F0004A95E2F7282B28B92FC02BB1E3E056957B
-:102100004795EA95E1F781E090E002C0880F991FBA
-:102110004A95E2F7282B2BB91FC02EB173E05695D4
-:1021200047957A95E1F781E090E002C0880F991F0A
-:102130004A95E2F7282B2EB90FC021B363E05695DC
-:1021400047956A95E1F781E090E002C0880F991FFA
-:102150004A95E2F7282B21BB81E090E008958FEFAC
-:102160009FEF08958F3F09F486C0482F55279A01A5
-:102170002770307022303105C1F12330310544F42D
-:102180002115310589F02130310509F074C01DC0D9
-:102190002430310509F44BC024303105BCF1253021
-:1021A000310509F068C054C022B1E3E05695479567
-:1021B000EA95E1F781E090E002C0880F991F4A9507
-:1021C000E2F78095822382B953C095B173E05695AA
-:1021D00047957A95E1F702C0220F331F4A95E2F73F
-:1021E000822F8095892385B943C028B163E0569535
-:1021F00047956A95E1F781E090E002C0880F991F4A
-:102200004A95E2F78095822388B932C02BB133E03A
-:10221000569547953A95E1F781E090E002C0880F26
-:10222000991F4A95E2F7809582238BB921C02EB180
-:1022300093E0569547959A95E1F781E090E002C0CA
-:10224000880F991F4A95E2F7809582238EB910C0B6
-:1022500021B383E0569547958A95E1F781E090E0B8
-:1022600002C0880F991F4A95E2F78095822381BBAF
-:1022700081E090E008958FEF9FEF08958F3FA9F1DF
-:10228000282F3327C9018770907082309105A9F0FB
-:10229000833091052CF4009761F0019731F50BC064
-:1022A0008430910571F0843091054CF00597E9F484
-:1022B0000AC080B109C083B107C086B105C089B129
-:1022C00003C08CB101C08FB19927F3E036952795F3
-:1022D000FA95E1F702C0959587952A95E2F7992737
-:1022E00087FD90958170907008958FEF9FEF08950E
-:1022F0008F3F09F403C1282F3327A901477050707D
-:102300004230510509F45CC04330510544F4411595
-:10231000510591F04130510509F0F0C034C044300E
-:10232000510509F49BC0443051050CF470C0453090
-:10233000510509F0E3C0B9C080B1A90173E0569519
-:1023400047957A95E1F79927042E02C095958795D0
-:102350000A94E2F780FD0BC022B181E090E002C058
-:10236000880F991F4A95E2F7282B22B9C4C022B1E1
-:1023700081E090E002C0880F991F4A95E2F78095AE
-:10238000822382B9B8C083B163E0369527956A95F8
-:10239000E1F79927022E02C0959587950A94E2F7F6
-:1023A00002C0440F551F2A95E2F780FD03C085B196
-:1023B000842B04C095B1842F8095892385B99BC057
-:1023C00086B1A90123E0569547952A95E1F799270B
-:1023D000042E02C0959587950A94E2F780FD0BC004
-:1023E00028B181E090E002C0880F991F4A95E2F77A
-:1023F000282B28B980C028B181E090E002C0880F66
-:10240000991F4A95E2F78095822388B974C089B1F3
-:10241000A90193E0569547959A95E1F79927042EDF
-:1024200002C0959587950A94E2F780FD0BC02BB109
-:1024300081E090E002C0880F991F4A95E2F7282BAF
-:102440002BB959C02BB181E090E002C0880F991FD1
-:102450004A95E2F7809582238BB94DC08CB1A901D2
-:10246000B3E056954795BA95E1F79927042E02C037
-:10247000959587950A94E2F780FD0BC02EB181E017
-:1024800090E002C0880F991F4A95E2F7282B2EB9D9
-:1024900032C02EB181E090E002C0880F991F4A95AA
-:1024A000E2F7809582238EB926C08FB1A901A3E0FF
-:1024B00056954795AA95E1F79927042E02C0959560
-:1024C00087950A94E2F780FD0BC021B381E090E08C
-:1024D00002C0880F991F4A95E2F7282B21BB0BC039
-:1024E00021B381E090E002C0880F991F4A95E2F77E
-:1024F0008095822381BB81E090E008958FEF9FEF6C
-:1025000008958F3F09F412C1482F5527662309F01B
-:1025100090C0CA01877090708230910509F43EC066
-:10252000833091053CF4009789F08130910509F0E2
-:10253000FDC021C08430910509F454C08430910558
-:102540000CF43EC0059709F0F1C05EC031B1B3E0B4
-:1025500056954795BA95E1F781E090E002C0880F63
-:10256000991F4A95E2F7282F2095232321B922B1FC
-:10257000822B82B9D8C024B1A3E056954795AA957D
-:10258000E1F702C0880F991F4A95E2F7982F8095CE
-:10259000822384B985B1982B95B9C5C037B1F3E0D2
-:1025A00056954795FA95E1F781E090E002C0880FD3
-:1025B000991F4A95E2F7282F2095232327B935C084
-:1025C0003AB1E3E056954795EA95E1F781E090E06E
-:1025D00002C0880F991F4A95E2F7282F20952323E0
-:1025E0002AB923C03DB173E0569547957A95E1F736
-:1025F00081E090E002C0880F991F4A95E2F7282FEA
-:10260000209523232DB911C030B363E0569547952B
-:102610006A95E1F781E090E002C0880F991F4A9522
-:10262000E2F7282F2095232320BB25B1822B85B9E3
-:102630007AC09A012770307022303105A9F1233019
-:10264000310544F42115310589F02130310509F0B7
-:102650006DC01CC02430310509F446C0243031055A
-:102660009CF12530310509F061C04EC021B133E045
-:10267000569547953A95E1F781E090E002C0880FC2
-:10268000991F4A95E2F7282B21B94DC084B193E0F8
-:10269000569547959A95E1F702C0220F331F4A9548
-:1026A000E2F7822B84B93FC027B1B3E05695479536
-:1026B000BA95E1F781E090E002C0880F991F4A9532
-:1026C000E2F7282B27B92FC02AB1A3E056954795EA
-:1026D000AA95E1F781E090E002C0880F991F4A9522
-:1026E000E2F7282B2AB91FC02DB1F3E05695479584
-:1026F000FA95E1F781E090E002C0880F991F4A95B2
-:10270000E2F7282B2DB90FC020B3E3E0569547958B
-:10271000EA95E1F781E090E002C0880F991F4A95A1
-:10272000E2F7282B20BB81E090E008958FEF9FEF28
-:102730000895882319F08FEF9FEF089580B19927AE
-:1027400087FD9095809590958827990F881F9927E8
-:102750000895009711F484E109C08130910511F4C6
-:102760008CE104C08230910531F484E20E9478113A
-:1027700081E090E00895039719F08FEF9FEF08959F
-:102780008CE20E94781181E090E00895009711F4A6
-:1027900084E109C08130910511F48CE104C08230DC
-:1027A000910531F484E20E942D1081E090E00895BB
-:1027B000039719F08FEF9FEF08958CE20E942D1080
-:1027C00081E090E00895009711F484E109C0813020
-:1027D000910511F48CE104C08230910531F484E25A
-:1027E0000E94B21081E090E00895039719F08FEFF6
-:1027F0009FEF08958CE20E94B21081E090E008956E
-:10280000882319F085B78F7E02C085B7806185BFA8
-:1028100081E090E00895982F8091C00085FFFCCF63
-:102820008091C0008F7D8093C0009093C600089572
-:10283000982F8091C80085FFFCCF9093CE0008951B
-:10284000292F33272093C5008093C40086E080930E
-:10285000C200E1ECF0E080818B7F8083A0ECB0E0EF
-:102860008C9182608C938081886180830895292F68
-:1028700033272093CD008093CC0086E08093CA005C
-:10288000E9ECF0E080818B7F8083A8ECB0E08C9154
-:1028900082608C9380818861808308958091C000DC
-:1028A00087FFFCCF8091C0008F778093C00080911C
-:1028B000C60099270895EF92FF920F931F930E94ED
-:1028C000371404E010E158E1E52E54E1F52EB8018B
-:1028D000C7010E940C2C90934B0480934A04B801CA
-:1028E000C7010E940C2C90934904809348041F91C7
-:1028F0000F91FF90EF900895CF93DF93EC0107C005
-:1029000060914A0470914B0499270E945C2CFE014F
-:10291000219684918823A1F7DF91CF91089500003B
-:102920000000000000000197D1F70895FC01A7E026
-:10293000B0E00E942D2E802D808381E090E00895EC
-:10294000FC018081A7E0B0E0082E0E94352E81E0D6
-:1029500090E00895DC010E942D2E802D9927089586
-:10296000FC01A0E0B0E00E942D2E402D4383A1E0A9
-:10297000B0E00E942D2E802D8283A2E0B0E00E9464
-:102980002D2E302D3183A3E0B0E00E942D2E902D0E
-:102990009083A4E0B0E00E942D2E202D830F840FA1
-:1029A000890F281719F481E090E008958FEF9FEFC9
-:1029B0000895FC01A5E0B0E00E942D2E802D8083BB
-:1029C00081E090E00895FC01A6E0B0E00E942D2E89
-:1029D000802D808381E090E00895AC0120E030E01C
-:1029E000D90118960E942D2E802DFA01E20FF31FB7
-:1029F00080832F5F3F4F2031310591F781E090E0D8
-:102A00000895DC01062E0E94352E0895FC01808178
-:102A1000A6E0B0E0082E0E94352E81E090E00895F7
-:102A2000AC0120E030E0D9011896FA01E20FF31F63
-:102A30008081082E0E94352E2F5F3F4F20313105B7
-:102A400091F781E090E00895F894089578940895BE
-:102A500085E690E008950E940F230895EF92FF927B
-:102A60000F931F93CF93DF93EC018B017A0189853C
-:102A7000823021F080911704888301C018828091F0
-:102A80001704823020F060E087E00E9414188985E6
-:102A9000823029F0809117048F5F80931704809112
-:102AA0001704882319F481E08093170488819927FB
-:102AB00087FD9095FC0145E0EE0FFF1F4A95E1F779
-:102AC000E80FF91FE353FC4F118300838881992796
-:102AD00087FD9095FC0135E0EE0FFF1F3A95E1F779
-:102AE000E80FF91FE353FC4F888582878881992777
-:102AF00087FD9095FC0125E0EE0FFF1F2A95E1F779
-:102B0000E80FF91FE353FC4F83E081872881822F70
-:102B1000992787FD9095FC0105E0EE0FFF1F0A95B0
-:102B2000E1F7E80FF91FE353FC4F208788819927CD
-:102B300087FD9095FC0115E0EE0FFF1F1A95E1F758
-:102B4000E80FF91FE353FC4F15820881112707FD99
-:102B500010952B853C854D855E856F8578898989A3
-:102B60009A890E942A21F801B5E0EE0FFF1FBA955D
-:102B7000E1F7E00FF11FE353FC4F948F838F08813F
-:102B8000112707FD10952B8D3C8D4D8D5E8D6F8D22
-:102B900078A189A19AA10E942A21F801A5E0EE0F4F
-:102BA000FF1FAA95E1F7E00FF11FE353FC4F968B4F
-:102BB000858B8881992787FD9095FC0175E0EE0F44
-:102BC000FF1F7A95E1F7E80FF91FE353FC4F858962
-:102BD0009689238D348D820F931F908F878B088168
-:102BE000112707FD10952B893C894D895E896F89D6
-:102BF000788D898D9A8D0E942A21F80165E0EE0F6B
-:102C0000FF1F6A95E1F7E00FF11FE353FC4F968F2A
-:102C1000858F8881992787FD9095FC0155E0EE0FFF
-:102C2000FF1F5A95E1F7E80FF91FE353FC4F858D1D
-:102C3000968D928F818F8881992787FD9095FC01D1
-:102C400045E0EE0FFF1F4A95E1F7E80FF91FE35348
-:102C5000FC4F81E090E090A3878F8881992787FDC2
-:102C60009095FC0135E0EE0FFF1F3A95E1F7E80F74
-:102C7000F91FE353FC4FF382E2828881992787FD95
-:102C80009095FC0125E0EE0FFF1F2A95E1F7E80F74
-:102C9000F91FE353FC4F81E0848781E090E0DF91EE
-:102CA000CF911F910F91FF90EF9008958F929F9277
-:102CB000AF92BF92CF92DF92EF92FF920F931F934A
-:102CC000CF93DF9365EDA62E63E0B62ECC24DD24F2
-:102CD0004501EC2CF501F080FFEFFF1691F0E401C7
-:102CE00000E010E0E01639F08881F81621F46F2D2D
-:102CF00085E00E9414180F5F1F4FA1960230110546
-:102D000089F70894C11CD11C81E290E0A80EB91E7D
-:102D100092E0C916D104E9F60E94CC1C282F332773
-:102D200027FD3095F90155E0EE0FFF1F5A95E1F7A9
-:102D3000E20FF31FE353FC4F328530932A0421E264
-:102D40008202C001112483539C4F909329048093E5
-:102D5000280490931A048093190430931B040E9452
-:102D60000E2A0E94F4290E94322AFFCF0F931F934C
-:102D7000CF93DF93CDB7DEB7A3970FB6F894DEBF3E
-:102D80000FBECDBF0E941B19809318048F3F21F402
-:102D900060E08EE00E9414180E946529882321F4C7
-:102DA00060E086E00E94141810921B04109229041F
-:102DB0001092280410921A041092190410922A04F6
-:102DC000109227048FEF8093110480931304809353
-:102DD000120480931404809316048093150493E6E0
-:102DE0009093D7038093D5039093F8038093F603D1
-:102DF00080E394E090932F0480932E049C0125504F
-:102E0000304030933204209331040596909334047B
-:102E1000809333040597909337048093360410927F
-:102E20002D0410922C041092390410923804109240
-:102E30001E0410921D043093CC032093CB036BEE41
-:102E400072E28E010F5F1F4FC8010E94B22940E855
-:102E500050E06EE273E0C8010E94132A85E580937A
-:102E60002E0319861C8E1D8E1E8E1F8E18A219A26F
-:102E70001AA21BA291E0988782E08A879B87C801EB
-:102E80000E94B51FA3960FB6F894DEBF0FBECDBF4C
-:102E9000DF91CF911F910F910895F894FFCFE091AA
-:102EA0002804F091290484870895E0912804F09182
-:102EB0002904848599270895DC01FB0180912D0365
-:102EC000882319F480E090E00895808380917A024D
-:102ED0008C9381E090E008951F9380912D038823C7
-:102EE00009F49EC00E9424150E94241583E493E0F7
-:102EF0000E947C1480917A0299279F938F9381E29C
-:102F000092E09F938F930E94892C8FE393E00E941D
-:102F10007C140F900F900F900F9080912D038431AF
-:102F200010F010922D0380912D039927AA27BB271B
-:102F3000FC013197E231F105F0F5EA59FF4FEE0F50
-:102F4000FF1F0590F491E02D099488E193E035C0CE
-:102F500084E093E032C08EEE92E02FC083ED92E0E9
-:102F60002CC08DEB92E029C085EA92E026C082E970
-:102F700092E023C08FE792E020C081E692E01DC07E
-:102F80008CE392E01AC080E392E017C085E192E002
-:102F900014C086E092E011C085EF91E00EC081EE92
-:102FA00091E00BC081EC91E008C089EA91E005C096
-:102FB0008EE891E002C087E891E00E947C14609165
-:102FC0004A0470914B048DE090E00E945C2C60916B
-:102FD0004A0470914B048AE090E00E945C2C82E0ED
-:102FE00090E00E94E31383E090E00E94C61310E09B
-:102FF00088EE93E00E9420261F5F1436C9F783E015
-:1030000090E00E94E31382E090E00E94C61310E07B
-:1030100088EE93E00E9420261F5F1436C9F7DFCFA9
-:1030200080E090E01F91089580932D0360937A02D1
-:103030000E946C17089580932D03E0912804F0916D
-:103040002904808580937A020E946C17089599273D
-:1030500087FD9095FC0125E0EE0FFF1F2A95E1F713
-:10306000E80FF91FE353FC4FA281B3818C918535A2
-:1030700029F085E58C938FEF9FEF089580819181F2
-:103080008050924218F481E090E0089582E10E941D
-:103090001B188FEF9FEF08956F927F928F929F92F0
-:1030A000AF92BF92CF92DF92EF92FF920F931F9356
-:1030B000CF93DF938FE493E00E947C14E091280487
-:1030C000F09129048085992787FD90959F938F9390
-:1030D00084E292E09F938F930E94892CE0912804D0
-:1030E000F0912904028113811F930F938DE292E0E6
-:1030F0009F938F930E94892CF801808199279F9339
-:103100008F935AE3C52E52E0D52EDF92CF920E94C4
-:10311000892CE0912804F0912904808191819F936A
-:103120008F9347E4E42E42E0F42EFF92EF920E9448
-:10313000892C80912804909129049F938F9301E515
-:1031400012E01F930F930E94892CCDECD3E0AA24A8
-:10315000BB248DB79EB744960FB6F8949EBF0FBEA2
-:103160008DBF31E6632E32E0732E46016701780190
-:103170000A811B811F930F93BF92AF927F926F9230
-:103180000E94892CF801808199279F938F939F92A9
-:103190008F920E94892C888199819F938F93DF92CF
-:1031A000CF920E94892CDF93CF93FF92EF920E94DF
-:1031B000892C0894A11CB11CA1968DB79EB742968C
-:1031C0000FB6F8949EBF0FBE8DBF92E0A916B10452
-:1031D00079F6DF91CF911F910F91FF90EF90DF90E3
-:1031E000CF90BF90AF909F908F907F906F900895F9
-:1031F000CF93DF93E0912804F0912904C281D38119
-:103200008881853539F00E944C1881E00E941B1896
-:1032100085E58883E0912804F091290480819181DB
-:103220008050924228F00E944C1882E10E941B18A4
-:10323000DF91CF9108954091A1025091A202609137
-:10324000A3027091A40220E030E0DB01CA01022E4B
-:1032500004C0B695A795979587950A94D2F7817083
-:103260009070892BE9F481E090E0A0E0B0E0022EBC
-:1032700004C0880F991FAA1FBB1F0A94D2F7842B82
-:10328000952BA62BB72B8093A1029093A202A0931B
-:10329000A302B093A402822F992787FD90950895E9
-:1032A0002F5F3F4F2032310581F68FEF9FEF08955A
-:1032B000E0912804F09129046585768587859089B9
-:1032C0000895EF92FF920F931F9321E030E040E0CA
-:1032D00050E004C0220F331F441F551F8A95D2F7B8
-:1032E000E0912804F0912904E584F684078510898B
-:1032F000DA01C9018E219F21A023B1230097A105E6
-:10330000B10519F48FEF9FEF1AC0209530954095C5
-:103310005095E222F32204231523E586F6860787DB
-:10332000108B81899289A389B48982239323A42352
-:10333000B523818B928BA38BB48B81E090E01F919E
-:103340000F91FF90EF900895682F772767FD709594
-:103350008091A1029091A202A091A302B091A40237
-:10336000062E04C0B695A795979587950A94D2F72F
-:1033700081709070892B19F48FEF9FEF0895E09181
-:103380002804F091290421E030E040E050E004C03E
-:10339000220F331F441F551F6A95D2F785859685E6
-:1033A000A785B089822B932BA42BB52B8587968775
-:1033B000A787B08B81E090E00895382F8091270493
-:1033C000882319F080E090E00895809111048F3FE8
-:1033D00011F420E007C0809114048F3F11F022E027
-:1033E00001C021E0822F9927FC01EE0FFF1FE80F9B
-:1033F000F91FEF5EFB4F32833083618381E080935E
-:10340000270483E0289FC00111248F5E9B4F0895FD
-:1034100024E08131920711F480E007C08451944088
-:1034200019F08FEF9FEF089581E0992787FD909520
-:1034300008950E94081A8F3F11F481E002C0823083
-:1034400029F40E944F178FEF9FEF0895992787FD6A
-:103450009095FC01EE0FFF1FE80FF91FEF5EFB4F89
-:103460008FEF8083828381838091270481508093B2
-:10347000270481E090E008950E94081A8F3F11F41C
-:1034800081E002C0823029F40E944F178FEF9FEF36
-:103490000895992787FD9095FC01EE0FFF1FE80F17
-:1034A000F91FEF5EFB4F8281992787FD9095089564
-:1034B0001F93CF93DF930E94081A182F8F3F11F4A8
-:1034C00081E003C0823031F482E00E944F178FEF19
-:1034D0009FEF6DC0992787FD9095EC01CC0FDD1F04
-:1034E000C80FD91FCF5EDB4F9A81888198170CF0E7
-:1034F0005CC00E9424158A818F5F8A83E091280432
-:10350000F091290414828091D403823021F5212F77
-:10351000332727FD3095432F532F8091DE03909161
-:10352000DF03A091E003B091E10382179307A407A2
-:10353000B50789F483E08093D6031092E3031092D9
-:10354000E2031092D4031092DE031092DF03109274
-:10355000E0031092E1038091F503823021F5212FE1
-:10356000332727FD3095432F532F8091FF039091F0
-:103570000004A0910104B091020482179307A407EC
-:10358000B50789F483E08093F70310920404109246
-:1035900003041092F5031092FF031092000410929E
-:1035A0000104109202040E94261581E090E0DF9150
-:1035B000CF911F910895DF92EF92FF920F931F9387
-:1035C000E1E0EE2EF12C012D112D04C0EE0CFF1CBC
-:1035D000001F111F8A95D2F78091A1029091A2023B
-:1035E000A091A302B091A4028E219F21A023B12318
-:1035F0000097A105B10511F481E043C00E94241594
-:10360000E4EDF3E0DD2480818130B9F48285938597
-:10361000A485B5858E219F21A023B1230097A10504
-:10362000B10559F083E08283178616861082E28600
-:10363000F38604871587DD24D39480818230A1F43A
-:1036400082859385A485B5858E159F05A007B10752
-:1036500059F483E0828317861686108212861386B9
-:1036600014861586DD24D394B19684E0E631F807FC
-:1036700051F60E942615DD2019F081E090E005C08A
-:1036800082E00E944F178FEF9FEF1F910F91FF90E5
-:10369000EF90DF900895EF92FF920F931F93CF93D7
-:1036A000DF93C82FDD27C7FDD095F1E0EF2EF12C79
-:1036B000012D112D0C2E04C0EE0CFF1C001F111F3C
-:1036C0000A94D2F78091A1029091A202A091A30244
-:1036D000B091A4028E219F21A023B1230097A105C0
-:1036E000B10519F48FEF9FEFC1C00E94241580919E
-:1036F000D5038F3F09F44AC08091DA039091DB0330
-:10370000A091DC03B091DD038E159F05A007B107E2
-:1037100079F1D801C70180959095A095B095209139
-:10372000DA033091DB034091DC035091DD03282361
-:1037300039234A235B232093DA033093DB0340933E
-:10374000DC035093DD032091DE033091DF034091D1
-:10375000E0035091E10382239323A423B5238093B4
-:10376000DE039093DF03A093E003B093E1030EC068
-:103770001092DE031092DF031092E0031092E10337
-:103780001092D40383E08093D603C3CF8091F603D5
-:103790008F3F09F448C08091FB039091FC03A091F6
-:1037A000FD03B091FE038E159F05A007B10769F4D4
-:1037B0001092FF0310920004109201041092020470
-:1037C0001092F50383E08093F703D801C701809539
-:1037D0009095A095B0952091FB033091FC0340910A
-:1037E000FD035091FE03282339234A235B232093B2
-:1037F000FB033093FC034093FD035093FE032091A1
-:10380000FF0330910004409101045091020482238F
-:103810009323A423B5238093FF0390930004A093E4
-:103820000104B09302042EEF3FEF4FEF5FEF04C0AF
-:10383000220F331F441F551FCA95D2F78091A10252
-:103840009091A202A091A302B091A402822393239B
-:10385000A423B5238093A1029093A202A093A30274
-:10386000B093A4020E94261581E090E0DF91CF91F1
-:103870001F910F91FF90EF9008951F93CF93DF93C7
-:103880000E94081A182F8F3F11F481E003C0823084
-:1038900031F482E00E944F178FEF9FEF3EC00E94ED
-:1038A0002415812F992787FD9095EC01CC0FDD1F02
-:1038B000C80FD91FCF5EDB4F8A818823D9F4E091EE
-:1038C0002804F0912904878182608783E09128048D
-:1038D000F0912904812F992787FD9095A92FB92F61
-:1038E000818B928BA38BB48B0E94261580E090E095
-:1038F0000E94E21E8A8181508A83E0912804F0911F
-:10390000290489818387E0912804F091290481E0CA
-:1039100084830E94261581E090E0DF91CF911F9172
-:1039200008959B01AC01E0912804F091290485855C
-:103930009685A785B08982239323A423B523009776
-:10394000A105B10529F460E070E080E090E0089501
-:10395000218B328B438B548B81E08783009018043A
-:1039600004C056954795379527950A94D2F7C90113
-:1039700081709070892B19F00E947D1E04C080E038
-:1039800090E00E94E21EE0912804F09129046189F0
-:103990007289838994890895E0911D04F0911E0431
-:1039A000808199270895E0911D04F0911E0403C0C1
-:1039B0000380F481E02D3097D9F70895CF93DF93FA
-:1039C000482FC091CB03D091CC03209709F47AC043
-:1039D000A0911D04B0911E041097B9F1992787FD9D
-:1039E00090959C0165E0220F331F6A95E1F7280F3F
-:1039F000391F23533C4F8C919927BC0155E0660F2A
-:103A0000771F5A95E1F7680F791F63537C4FFB01CD
-:103A10008481882329F09385F90182859817A8F07D
-:103A2000F9018481882331F0FB019285F9018385B6
-:103A3000981758F0FB019285F9018285981728F0B4
-:103A4000FD01A381B4811097B1F64883E091CB03C7
-:103A5000F091CC03238134813093CC032093CB03AA
-:103A600080911D0490911E04A817B907A1F4109726
-:103A700031F0BC83AB831A821982FD0105C01C8220
-:103A80001B821A821982F901D283C183D0931E044A
-:103A9000C0931D0417C0FD0181819281A217B30755
-:103AA00051F09A838983BC83AB8381819281FC012D
-:103AB000D483C38304C01C821B829A838983FD0143
-:103AC000D283C183DF91CF910895CF93DF93A091EB
-:103AD0001D04B0911E04109709F446C0482F5527C5
-:103AE00047FD50958C9199278417950769F4ED014E
-:103AF000EB81FC81F0931E04E0931D04128211827D
-:103B000016C0D901232B81F18C919927FD012381C6
-:103B1000348184179507A9F7C181D2813C832B8317
-:103B200083819481009719F0FC01D283C183E091D5
-:103B3000CB03F091CC03309741F4B093CC03A09326
-:103B4000CB03ED011C821B8209C0ED01FC83EB83DA
-:103B5000B283A183B093CC03A093CB03E091CB03BA
-:103B6000F091CC0312821182DF91CF910895E09100
-:103B70002804F09129048085992708950E94A72997
-:103B8000E0912804F091290485818823B9F70895EC
-:103B9000FF920F931F93CF93DF93CDB7DEB7289794
-:103BA0000FB6F894DEBF0FBECDBF29833A834B8397
-:103BB0005C836D837E838F8398870E94F8180E94B0
-:103BC0002415E0912804F091290481E0858381E0A7
-:103BD00090E090A3878F0E94E626F82E29813A81F3
-:103BE0004B815C816D817E818F8198850E942A2125
-:103BF000E0912804F09129040F2D1127800F911FC7
-:103C0000968B858B87EF8F1570F00E9472260E5F62
-:103C10001F4F99278017910734F08F2D8E5F809367
-:103C20002C030E9477260E9426150E94BE1D81E06B
-:103C300090E028960FB6F894DEBF0FBECDBFDF919F
-:103C4000CF911F910F91FF9008958F929F92AF9205
-:103C5000BF92CF92DF92EF92FF920F931F93CF9379
-:103C6000DF93CDB7DEB760970FB6F894DEBF0FBE17
-:103C7000CDBF29873A874B875C876D877E878F8783
-:103C8000988BCE0101960E94902289809A80AB8009
-:103C9000BC80CD80DE80EF80F88409851A852B8575
-:103CA0003C854D855E856F857889CE0109960E9499
-:103CB0000B20882319F48FEF9FEF0CC029853A85DC
-:103CC0004B855C856D857E858F8598890E94C81D92
-:103CD00081E090E060960FB6F894DEBF0FBECDBFD6
-:103CE000DF91CF911F910F91FF90EF90DF90CF90D8
-:103CF000BF90AF909F908F9008951F930E942415BE
-:103D0000E0912804F091290481E0858386830E9454
-:103D1000E626182F883F80F40E947226212F332731
-:103D20002E5F3F4F99278217930734F0812F8E5FC4
-:103D300080932C030E9477260E9426150E94BE1DA8
-:103D400081E090E01F9108951F93CF93DF93CDB74B
-:103D5000DEB728970FB6F894DEBF0FBECDBF29831C
-:103D60003A834B835C836D837E838F8398870E9425
-:103D700024150E94E626182F29813A814B815C8107
-:103D80006D817E818F8198850E942A2183309105E3
-:103D900018F48FEF9FEF0CC0E0912804F0912904F4
-:103DA000810F911D968B858B0E94261581E090E0F6
-:103DB00028960FB6F894DEBF0FBECDBFDF91CF912E
-:103DC0001F9108950F931F938C010E942415E09179
-:103DD0002804F091290481E08583168B058B0E94CD
-:103DE000E626082F883F80F40E947226202F332772
-:103DF0002E5F3F4F99278217930734F0802F8E5FF5
-:103E000080932C030E9477260E9426150E94BE1DD7
-:103E100081E090E01F910F910895FF920F931F93FF
-:103E2000CF93DF938C010E942415E0912804F09138
-:103E3000290481E085830E94E626F82EE09128047B
-:103E4000F0912904C82FDD270C0F1D1F168B058B41
-:103E500087EF8F1568F00E947226229699278C179B
-:103E60009D0734F08F2D8E5F80932C030E94772660
-:103E70000E9426150E94BE1D81E090E0DF91CF9147
-:103E80001F910F91FF9008951F93CF93DF93EC0143
-:103E90000E94F818209711F4C1E0D0E00E94241588
-:103EA000E0912804F091290481E08583D0A3C78F95
-:103EB0000E94E626182F883F80F40E947226212F48
-:103EC00033272E5F3F4F99278217930734F0812FB6
-:103ED0008E5F80932C030E9477260E9426150E94F5
-:103EE000BE1D81E090E0DF91CF911F9108951F9357
-:103EF0000E94F8180E942415E0912804F0912904EA
-:103F000081E090E090A3878F81E085830E94E62680
-:103F1000182F883F80F40E947226212F33272E5FAE
-:103F20003F4F99278217930734F0812F8E5F80933C
-:103F30002C030E9477260E9426150E94BE1D81E058
-:103F400090E01F910895E0912804F0912904808564
-:103F50000E94651DE0912804F091290484E0818786
-:103F60000E94771F81E090E00895EF92FF920F93F7
-:103F70001F93CF93DF93EC014B815C8169817A8140
-:103F80008D819E810E94B629BC018F81882369F0B2
-:103F90004B815C81EE24FF2400E010E020E030E063
-:103FA000CE010E942E151F8216C08881992787FD99
-:103FB0009095FC01A5E0EE0FFF1FAA95E1F7E80F31
-:103FC000F91FE353FC4F8185833019F08FEF9FEF8A
-:103FD0001BC0718360838881992787FD9095FC01C0
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/monome/controller_basic/main.lss Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.lss Sat Dec 11 12:34:39 2010
@@ -3,37 +3,37 @@
Sections:
Idx Name Size VMA LMA File off Algn
- 0 .data 00000078 00800200 00005c84 00005d18 2**0
+ 0 .data 00000078 00800200 00005da8 00005e3c 2**0
CONTENTS, ALLOC, LOAD, DATA
- 1 .text 00005c84 00000000 00000000 00000094 2**1
+ 1 .text 00005da8 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .bss 000001da 00800278 00800278 00005d90 2**0
+ 2 .bss 000001da 00800278 00800278 00005eb4 2**0
ALLOC
- 3 .stab 0000be20 00000000 00000000 00005d90 2**2
+ 3 .stab 0000c03c 00000000 00000000 00005eb4 2**2
CONTENTS, READONLY, DEBUGGING
- 4 .stabstr 00004bba 00000000 00000000 00011bb0 2**0
+ 4 .stabstr 00004c59 00000000 00000000 00011ef0 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 af 01 jmp 0x35e ; 0x35e <__init>
- 4: 0c 94 09 29 jmp 0x5212 ; 0x5212 <__vector_1>
- 8: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
+ 4: 0c 94 9b 29 jmp 0x5336 ; 0x5336 <__vector_1>
+ 8: 0c 94 6d 29 jmp 0x52da ; 0x52da <__vector_2>
c: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
10: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
14: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
18: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
1c: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
20: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
- 24: 0c 94 37 29 jmp 0x526e ; 0x526e <__vector_9>
+ 24: 0c 94 c9 29 jmp 0x5392 ; 0x5392 <__vector_9>
28: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
2c: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
30: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
- 34: 0c 94 ea 26 jmp 0x4dd4 ; 0x4dd4 <__vector_13>
+ 34: 0c 94 4e 27 jmp 0x4e9c ; 0x4e9c <__vector_13>
38: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
- 3c: 0c 94 ea 26 jmp 0x4dd4 ; 0x4dd4 <__vector_13>
+ 3c: 0c 94 4e 27 jmp 0x4e9c ; 0x4e9c <__vector_13>
40: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
- 44: 0c 94 1d 27 jmp 0x4e3a ; 0x4e3a <__vector_17>
+ 44: 0c 94 81 27 jmp 0x4f02 ; 0x4f02 <__vector_17>
48: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
4c: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
50: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
@@ -48,7 +48,7 @@
74: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
78: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
7c: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
- 80: 0c 94 27 27 jmp 0x4e4e ; 0x4e4e <__vector_32>
+ 80: 0c 94 8b 27 jmp 0x4f16 ; 0x4f16 <__vector_32>
84: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
88: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
8c: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
@@ -69,30 +69,30 @@
c8: 0c 94 ce 01 jmp 0x39c ; 0x39c <__bad_interrupt>
000000cc <__ctors_end>:
- cc: a8 17 cp r26, r24
- ce: ae 17 cp r26, r30
- d0: b1 17 cp r27, r17
- d2: b4 17 cp r27, r20
- d4: b7 17 cp r27, r23
- d6: ba 17 cp r27, r26
- d8: c0 17 cp r28, r16
- da: bd 17 cp r27, r29
- dc: c3 17 cp r28, r19
- de: c6 17 cp r28, r22
- e0: c9 17 cp r28, r25
- e2: cf 17 cp r28, r31
- e4: d2 17 cp r29, r18
- e6: d5 17 cp r29, r21
- e8: d8 17 cp r29, r24
- ea: cc 17 cp r28, r28
- ec: a5 17 cp r26, r21
- ee: ab 17 cp r26, r27
-
-000000f0 <__c.2406>:
+ cc: 0c 18 sub r0, r12
+ ce: 12 18 sub r1, r2
+ d0: 15 18 sub r1, r5
+ d2: 18 18 sub r1, r8
+ d4: 1b 18 sub r1, r11
+ d6: 1e 18 sub r1, r14
+ d8: 24 18 sub r2, r4
+ da: 21 18 sub r2, r1
+ dc: 27 18 sub r2, r7
+ de: 2a 18 sub r2, r10
+ e0: 2d 18 sub r2, r13
+ e2: 33 18 sub r3, r3
+ e4: 36 18 sub r3, r6
+ e6: 39 18 sub r3, r9
+ e8: 3c 18 sub r3, r12
+ ea: 30 18 sub r3, r0
+ ec: 09 18 sub r0, r9
+ ee: 0f 18 sub r0, r15
+
+000000f0 <__c.2427>:
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.2358>:
+0000010f <__c.2379>:
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...
@@ -202,8 +202,8 @@
36a: 12 e0 ldi r17, 0x02 ; 2
36c: a0 e0 ldi r26, 0x00 ; 0
36e: b2 e0 ldi r27, 0x02 ; 2
- 370: e4 e8 ldi r30, 0x84 ; 132
- 372: fc e5 ldi r31, 0x5C ; 92
+ 370: e8 ea ldi r30, 0xA8 ; 168
+ 372: fd e5 ldi r31, 0x5D ; 93
374: 00 e0 ldi r16, 0x00 ; 0
376: 0b bf out 0x3b, r16 ; 59
378: 02 c0 rjmp .+4 ; 0x37e <__do_copy_data+0x14>
@@ -226,397 +226,474 @@
38e: a2 35 cpi r26, 0x52 ; 82
390: b1 07 cpc r27, r17
392: e1 f7 brne .-8 ; 0x38c <.do_clear_bss_loop>
- 394: 0e 94 57 03 call 0x6ae ; 0x6ae <main>
- 398: 0c 94 41 2e jmp 0x5c82 ; 0x5c82 <_exit>
+ 394: 0e 94 91 03 call 0x722 ; 0x722 <main>
+ 398: 0c 94 d3 2e jmp 0x5da6 ; 0x5da6 <_exit>
0000039c <__bad_interrupt>:
- 39c: 0c 94 55 27 jmp 0x4eaa ; 0x4eaa <__vector_default>
-
-000003a0 <monome_move>:
- if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to load my ADC driver\r\n")
);
-
+ 39c: 0c 94 b9 27 jmp 0x4f72 ; 0x4f72 <__vector_default>
+
+000003a0 <monome_erase>:
+ nrk_spin_wait_us(90000);
+ nrk_gpio_clr(IRQ);
}
-void monome_move(uint8_t direction){
- 3a0: 0f 93 push r16
- 3a2: 1f 93 push r17
- 3a4: 08 2f mov r16, r24
- nrk_gpio_set(direction);
- 3a6: 0e 94 2d 10 call 0x205a ; 0x205a <nrk_gpio_set>
+void monome_erase(){
+ 3a0: 1f 93 push r17
+ while(nrk_gpio_get(ERASE)); //debounce
+ 3a2: 10 91 0c 02 lds r17, 0x020C
+ 3a6: 81 2f mov r24, r17
+ 3a8: 0e 94 a2 11 call 0x2344 ; 0x2344 <nrk_gpio_get>
+ 3ac: 88 23 and r24, r24
+ 3ae: d9 f7 brne .-10 ; 0x3a6 <monome_erase+0x6>
+ //nrk_kprintf( PSTR("erase\r\n") );
+ nrk_led_toggle(RED_LED);
+ 3b0: 83 e0 ldi r24, 0x03 ; 3
+ 3b2: 90 e0 ldi r25, 0x00 ; 0
+ 3b4: 0e 94 0d 14 call 0x281a ; 0x281a <nrk_led_toggle>
nrk_gpio_set(IRQ);
- 3aa: 10 91 12 02 lds r17, 0x0212
- 3ae: 81 2f mov r24, r17
- 3b0: 0e 94 2d 10 call 0x205a ; 0x205a <nrk_gpio_set>
+ 3b8: 10 91 12 02 lds r17, 0x0212
+ 3bc: 81 2f mov r24, r17
+ 3be: 0e 94 91 10 call 0x2122 ; 0x2122 <nrk_gpio_set>
nrk_spin_wait_us(90000);
- 3b4: 80 e9 ldi r24, 0x90 ; 144
- 3b6: 9f e5 ldi r25, 0x5F ; 95
- 3b8: 0e 94 20 26 call 0x4c40 ; 0x4c40 <nrk_spin_wait_us>
+ 3c2: 80 e9 ldi r24, 0x90 ; 144
+ 3c4: 9f e5 ldi r25, 0x5F ; 95
+ 3c6: 0e 94 84 26 call 0x4d08 ; 0x4d08 <nrk_spin_wait_us>
nrk_gpio_clr(IRQ);
- 3bc: 81 2f mov r24, r17
- 3be: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- nrk_gpio_clr(direction);
- 3c2: 80 2f mov r24, r16
- 3c4: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- 3c8: 1f 91 pop r17
- 3ca: 0f 91 pop r16
- 3cc: 08 95 ret
-
-000003ce <nrk_register_drivers>:
- 3ce: 61 e0 ldi r22, 0x01 ; 1
- 3d0: 8f e4 ldi r24, 0x4F ; 79
- 3d2: 94 e0 ldi r25, 0x04 ; 4
- 3d4: 0e 94 07 25 call 0x4a0e ; 0x4a0e <nrk_register_driver>
- 3d8: 8f 3f cpi r24, 0xFF ; 255
- 3da: 21 f4 brne .+8 ; 0x3e4 <nrk_register_drivers+0x16>
- 3dc: 80 ef ldi r24, 0xF0 ; 240
- 3de: 90 e0 ldi r25, 0x00 ; 0
- 3e0: 0e 94 7c 14 call 0x28f8 ; 0x28f8 <nrk_kprintf>
- 3e4: 08 95 ret
-
-000003e6 <nrk_create_taskset>:
- 3e6: 0f 93 push r16
- 3e8: 1f 93 push r17
- 3ea: 8f e4 ldi r24, 0x4F ; 79
- 3ec: 92 e0 ldi r25, 0x02 ; 2
- 3ee: 90 93 84 02 sts 0x0284, r25
- 3f2: 80 93 83 02 sts 0x0283, r24
- 3f6: 0e e7 ldi r16, 0x7E ; 126
- 3f8: 12 e0 ldi r17, 0x02 ; 2
- 3fa: 40 e8 ldi r20, 0x80 ; 128
- 3fc: 50 e0 ldi r21, 0x00 ; 0
- 3fe: 65 ea ldi r22, 0xA5 ; 165
- 400: 72 e0 ldi r23, 0x02 ; 2
- 402: c8 01 movw r24, r16
- 404: 0e 94 13 2a call 0x5426 ; 0x5426 <nrk_task_set_stk>
- 408: 81 e0 ldi r24, 0x01 ; 1
- 40a: 80 93 86 02 sts 0x0286, r24
- 40e: 80 93 85 02 sts 0x0285, r24
- 412: 80 93 87 02 sts 0x0287, r24
- 416: 80 93 88 02 sts 0x0288, r24
- 41a: 21 e0 ldi r18, 0x01 ; 1
- 41c: 30 e0 ldi r19, 0x00 ; 0
- 41e: 40 e0 ldi r20, 0x00 ; 0
- 420: 50 e0 ldi r21, 0x00 ; 0
- 422: 20 93 89 02 sts 0x0289, r18
- 426: 30 93 8a 02 sts 0x028A, r19
- 42a: 40 93 8b 02 sts 0x028B, r20
- 42e: 50 93 8c 02 sts 0x028C, r21
- 432: 80 e0 ldi r24, 0x00 ; 0
- 434: 91 ee ldi r25, 0xE1 ; 225
- 436: a5 ef ldi r26, 0xF5 ; 245
- 438: b5 e0 ldi r27, 0x05 ; 5
- 43a: 80 93 8d 02 sts 0x028D, r24
- 43e: 90 93 8e 02 sts 0x028E, r25
- 442: a0 93 8f 02 sts 0x028F, r26
- 446: b0 93 90 02 sts 0x0290, r27
- 44a: 20 93 91 02 sts 0x0291, r18
- 44e: 30 93 92 02 sts 0x0292, r19
- 452: 40 93 93 02 sts 0x0293, r20
- 456: 50 93 94 02 sts 0x0294, r21
- 45a: 80 e8 ldi r24, 0x80 ; 128
- 45c: 90 ef ldi r25, 0xF0 ; 240
- 45e: aa ef ldi r26, 0xFA ; 250
- 460: b2 e0 ldi r27, 0x02 ; 2
- 462: 80 93 95 02 sts 0x0295, r24
- 466: 90 93 96 02 sts 0x0296, r25
- 46a: a0 93 97 02 sts 0x0297, r26
- 46e: b0 93 98 02 sts 0x0298, r27
- 472: 10 92 99 02 sts 0x0299, r1
- 476: 10 92 9a 02 sts 0x029A, r1
- 47a: 10 92 9b 02 sts 0x029B, r1
- 47e: 10 92 9c 02 sts 0x029C, r1
- 482: 10 92 9d 02 sts 0x029D, r1
- 486: 10 92 9e 02 sts 0x029E, r1
- 48a: 10 92 9f 02 sts 0x029F, r1
- 48e: 10 92 a0 02 sts 0x02A0, r1
- 492: c8 01 movw r24, r16
- 494: 0e 94 b5 1f call 0x3f6a ; 0x3f6a <nrk_activate_task>
- 498: 1f 91 pop r17
- 49a: 0f 91 pop r16
- 49c: 08 95 ret
-
-0000049e <Task1>:
- 49e: 2f 92 push r2
- 4a0: 3f 92 push r3
- 4a2: 4f 92 push r4
- 4a4: 5f 92 push r5
- 4a6: 6f 92 push r6
- 4a8: 7f 92 push r7
- 4aa: 9f 92 push r9
- 4ac: af 92 push r10
- 4ae: bf 92 push r11
- 4b0: cf 92 push r12
- 4b2: df 92 push r13
- 4b4: ef 92 push r14
- 4b6: ff 92 push r15
- 4b8: 0f 93 push r16
- 4ba: 1f 93 push r17
- 4bc: cf 93 push r28
- 4be: df 93 push r29
- 4c0: cd b7 in r28, 0x3d ; 61
- 4c2: de b7 in r29, 0x3e ; 62
- 4c4: 26 97 sbiw r28, 0x06 ; 6
- 4c6: 0f b6 in r0, 0x3f ; 63
- 4c8: f8 94 cli
- 4ca: de bf out 0x3e, r29 ; 62
- 4cc: 0f be out 0x3f, r0 ; 63
- 4ce: cd bf out 0x3d, r28 ; 61
- 4d0: 80 91 12 02 lds r24, 0x0212
- 4d4: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- 4d8: 90 90 11 02 lds r9, 0x0211
- 4dc: 89 2d mov r24, r9
- 4de: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- 4e2: a0 90 00 02 lds r10, 0x0200
- 4e6: 8a 2d mov r24, r10
- 4e8: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- 4ec: b0 90 0e 02 lds r11, 0x020E
- 4f0: 8b 2d mov r24, r11
- 4f2: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- 4f6: 00 91 0d 02 lds r16, 0x020D
- 4fa: 80 2f mov r24, r16
- 4fc: 0e 94 b2 10 call 0x2164 ; 0x2164 <nrk_gpio_clr>
- 500: 10 92 2a 03 sts 0x032A, r1
- 504: 10 92 29 03 sts 0x0329, r1
- 508: 10 92 28 03 sts 0x0328, r1
- 50c: 10 92 27 03 sts 0x0327, r1
- 510: 10 92 7c 02 sts 0x027C, r1
- 514: 10 92 7b 02 sts 0x027B, r1
- 518: ee 24 eor r14, r14
- 51a: ff 24 eor r15, r15
- 51c: b1 e0 ldi r27, 0x01 ; 1
- 51e: cb 2e mov r12, r27
- 520: d1 2c mov r13, r1
- 522: 1e 01 movw r2, r28
- 524: 08 94 sec
- 526: 21 1c adc r2, r1
- 528: 31 1c adc r3, r1
- 52a: a3 e0 ldi r26, 0x03 ; 3
- 52c: 4a 2e mov r4, r26
- 52e: 51 2c mov r5, r1
- 530: 4c 0e add r4, r28
- 532: 5d 1e adc r5, r29
- 534: f5 e0 ldi r31, 0x05 ; 5
- 536: 6f 2e mov r6, r31
- 538: 71 2c mov r7, r1
- 53a: 6c 0e add r6, r28
- 53c: 7d 1e adc r7, r29
- 53e: 65 e0 ldi r22, 0x05 ; 5
- 540: 81 e0 ldi r24, 0x01 ; 1
- 542: 0e 94 24 25 call 0x4a48 ; 0x4a48 <nrk_open>
- 546: 18 2f mov r17, r24
- 548: 8f 3f cpi r24, 0xFF ; 255
- 54a: 21 f4 brne .+8 ; 0x554 <Task1+0xb6>
- 54c: 8f e0 ldi r24, 0x0F ; 15
- 54e: 91 e0 ldi r25, 0x01 ; 1
- 550: 0e 94 7c 14 call 0x28f8 ; 0x28f8 <nrk_kprintf>
- 554: 81 e0 ldi r24, 0x01 ; 1
- 556: 90 e0 ldi r25, 0x00 ; 0
- 558: 0e 94 a9 13 call 0x2752 ; 0x2752 <nrk_led_toggle>
- 55c: 42 e0 ldi r20, 0x02 ; 2
- 55e: 61 e0 ldi r22, 0x01 ; 1
- 560: 81 2f mov r24, r17
- 562: 0e 94 97 25 call 0x4b2e ; 0x4b2e <nrk_set_status>
- 566: 42 e0 ldi r20, 0x02 ; 2
- 568: b1 01 movw r22, r2
- 56a: 81 2f mov r24, r17
- 56c: 0e 94 b9 25 call 0x4b72 ; 0x4b72 <nrk_read>
- 570: 45 e0 ldi r20, 0x05 ; 5
- 572: 61 e0 ldi r22, 0x01 ; 1
- 574: 81 2f mov r24, r17
- 576: 0e 94 97 25 call 0x4b2e ; 0x4b2e <nrk_set_status>
- 57a: 42 e0 ldi r20, 0x02 ; 2
- 57c: b2 01 movw r22, r4
- 57e: 81 2f mov r24, r17
- 580: 0e 94 b9 25 call 0x4b72 ; 0x4b72 <nrk_read>
- 584: 46 e0 ldi r20, 0x06 ; 6
- 586: 61 e0 ldi r22, 0x01 ; 1
- 588: 81 2f mov r24, r17
- 58a: 0e 94 97 25 call 0x4b2e ; 0x4b2e <nrk_set_status>
- 58e: 42 e0 ldi r20, 0x02 ; 2
- 590: b3 01 movw r22, r6
- 592: 81 2f mov r24, r17
- 594: 0e 94 b9 25 call 0x4b72 ; 0x4b72 <nrk_read>
- 598: 8b e0 ldi r24, 0x0B ; 11
- 59a: e8 16 cp r14, r24
- 59c: f1 04 cpc r15, r1
- 59e: e8 f5 brcc .+122 ; 0x61a <Task1+0x17c>
- 5a0: c1 14 cp r12, r1
- 5a2: d1 04 cpc r13, r1
- 5a4: f1 f1 breq .+124 ; 0x622 <Task1+0x184>
- 5a6: 29 81 ldd r18, Y+1 ; 0x01
- 5a8: 3a 81 ldd r19, Y+2 ; 0x02
- 5aa: 4b 81 ldd r20, Y+3 ; 0x03
- 5ac: 5c 81 ldd r21, Y+4 ; 0x04
- 5ae: 6d 81 ldd r22, Y+5 ; 0x05
- 5b0: 7e 81 ldd r23, Y+6 ; 0x06
- 5b2: e1 14 cp r14, r1
- 5b4: f1 04 cpc r15, r1
- 5b6: 49 f4 brne .+18 ; 0x5ca <Task1+0x12c>
- 5b8: 30 93 2a 03 sts 0x032A, r19
- 5bc: 20 93 29 03 sts 0x0329, r18
- 5c0: 50 93 28 03 sts 0x0328, r21
- 5c4: 40 93 27 03 sts 0x0327, r20
- 5c8: 20 c0 rjmp .+64 ; 0x60a <Task1+0x16c>
- 5ca: 80 91 29 03 lds r24, 0x0329
- 5ce: 90 91 2a 03 lds r25, 0x032A
- 5d2: 28 0f add r18, r24
- 5d4: 39 1f adc r19, r25
- 5d6: 36 95 lsr r19
- 5d8: 27 95 ror r18
- 5da: 30 93 2a 03 sts 0x032A, r19
- 5de: 20 93 29 03 sts 0x0329, r18
- 5e2: 80 91 27 03 lds r24, 0x0327
- 5e6: 90 91 28 03 lds r25, 0x0328
- 5ea: 48 0f add r20, r24
- 5ec: 59 1f adc r21, r25
- 5ee: 56 95 lsr r21
- 5f0: 47 95 ror r20
- 5f2: 50 93 28 03 sts 0x0328, r21
- 5f6: 40 93 27 03 sts 0x0327, r20
- 5fa: 80 91 7b 02 lds r24, 0x027B
- 5fe: 90 91 7c 02 lds r25, 0x027C
- 602: 68 0f add r22, r24
- 604: 79 1f adc r23, r25
- 606: 76 95 lsr r23
- 608: 67 95 ror r22
- 60a: 70 93 7c 02 sts 0x027C, r23
- 60e: 60 93 7b 02 sts 0x027B, r22
- 612: 08 94 sec
- 614: e1 1c adc r14, r1
- 616: f1 1c adc r15, r1
- 618: 44 c0 rjmp .+136 ; 0x6a2 <Task1+0x204>
- 61a: ee 24 eor r14, r14
- 61c: ff 24 eor r15, r15
- 61e: cc 24 eor r12, r12
- 620: dd 24 eor r13, r13
- 622: 4d 81 ldd r20, Y+5 ; 0x05
- 624: 5e 81 ldd r21, Y+6 ; 0x06
- 626: 20 91 7b 02 lds r18, 0x027B
- 62a: 30 91 7c 02 lds r19, 0x027C
- 62e: c9 01 movw r24, r18
- 630: 0a 96 adiw r24, 0x0a ; 10
- 632: 84 17 cp r24, r20
- 634: 95 07 cpc r25, r21
- 636: 28 f0 brcs .+10 ; 0x642 <Task1+0x1a4>
- 638: 2a 50 subi r18, 0x0A ; 10
- 63a: 30 40 sbci r19, 0x00 ; 0
- 63c: 42 17 cp r20, r18
- 63e: 53 07 cpc r21, r19
- 640: 80 f5 brcc .+96 ; 0x6a2 <Task1+0x204>
- 642: 49 81 ldd r20, Y+1 ; 0x01
- 644: 5a 81 ldd r21, Y+2 ; 0x02
- 646: 20 91 29 03 lds r18, 0x0329
- 64a: 30 91 2a 03 lds r19, 0x032A
- 64e: c9 01 movw r24, r18
- 650: 0a 96 adiw r24, 0x0a ; 10
- 652: 84 17 cp r24, r20
- 654: 95 07 cpc r25, r21
- 656: 28 f0 brcs .+10 ; 0x662 <Task1+0x1c4>
- 658: c9 01 movw r24, r18
- 65a: 0a 97 sbiw r24, 0x0a ; 10
- 65c: 48 17 cp r20, r24
- 65e: 59 07 cpc r21, r25
- 660: 40 f4 brcc .+16 ; 0x672 <Task1+0x1d4>
- 662: 24 17 cp r18, r20
- 664: 35 07 cpc r19, r21
- 666: 10 f4 brcc .+4 ; 0x66c <Task1+0x1ce>
- 668: 8a 2d mov r24, r10
- 66a: 01 c0 rjmp .+2 ; 0x66e <Task1+0x1d0>
- 66c: 89 2d mov r24, r9
- 66e: 0e 94 d0 01 call 0x3a0 ; 0x3a0 <monome_move>
- 672: 4b 81 ldd r20, Y+3 ; 0x03
- 674: 5c 81 ldd r21, Y+4 ; 0x04
- 676: 20 91 27 03 lds r18, 0x0327
- 67a: 30 91 28 03 lds r19, 0x0328
- 67e: c9 01 movw r24, r18
- 680: 0a 96 adiw r24, 0x0a ; 10
- 682: 84 17 cp r24, r20
- 684: 95 07 cpc r25, r21
- 686: 28 f0 brcs .+10 ; 0x692 <Task1+0x1f4>
- 688: c9 01 movw r24, r18
- 68a: 0a 97 sbiw r24, 0x0a ; 10
- 68c: 48 17 cp r20, r24
- 68e: 59 07 cpc r21, r25
- 690: 40 f4 brcc .+16 ; 0x6a2 <Task1+0x204>
- 692: 24 17 cp r18, r20
- 694: 35 07 cpc r19, r21
- 696: 10 f4 brcc .+4 ; 0x69c <Task1+0x1fe>
- 698: 80 2f mov r24, r16
- 69a: 01 c0 rjmp .+2 ; 0x69e <Task1+0x200>
- 69c: 8b 2d mov r24, r11
- 69e: 0e 94 d0 01 call 0x3a0 ; 0x3a0 <monome_move>
- 6a2: 81 2f mov r24, r17
- 6a4: 0e 94 fd 25 call 0x4bfa ; 0x4bfa <nrk_close>
- 6a8: 0e 94 77 1f call 0x3eee ; 0x3eee <nrk_wait_until_next_period>
- 6ac: 48 cf rjmp .-368 ; 0x53e <Task1+0xa0>
-
-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 26 10 call 0x204c ; 0x204c <nrk_setup_ports>
- 6ba: 61 e0 ldi r22, 0x01 ; 1
- 6bc: 80 91 11 02 lds r24, 0x0211
- 6c0: 0e 94 81 12 call 0x2502 ; 0x2502 <nrk_gpio_direction>
- 6c4: 61 e0 ldi r22, 0x01 ; 1
- 6c6: 80 91 12 02 lds r24, 0x0212
- 6ca: 0e 94 81 12 call 0x2502 ; 0x2502 <nrk_gpio_direction>
- 6ce: 61 e0 ldi r22, 0x01 ; 1
- 6d0: 80 91 0d 02 lds r24, 0x020D
- 6d4: 0e 94 81 12 call 0x2502 ; 0x2502 <nrk_gpio_direction>
- 6d8: 61 e0 ldi r22, 0x01 ; 1
- 6da: 80 91 0e 02 lds r24, 0x020E
- 6de: 0e 94 81 12 call 0x2502 ; 0x2502 <nrk_gpio_direction>
- 6e2: 0e 94 b6 16 call 0x2d6c ; 0x2d6c <nrk_init>
- 6e6: 20 e0 ldi r18, 0x00 ; 0
- 6e8: 30 e0 ldi r19, 0x00 ; 0
- 6ea: 40 e0 ldi r20, 0x00 ; 0
- 6ec: 50 e0 ldi r21, 0x00 ; 0
- 6ee: 60 e0 ldi r22, 0x00 ; 0
- 6f0: 70 e0 ldi r23, 0x00 ; 0
- 6f2: 80 e0 ldi r24, 0x00 ; 0
- 6f4: 90 e0 ldi r25, 0x00 ; 0
- 6f6: 0e 94 19 21 call 0x4232 ; 0x4232 <nrk_time_set>
- 6fa: 0e 94 e7 01 call 0x3ce ; 0x3ce <nrk_register_drivers>
- 6fe: 0e 94 f3 01 call 0x3e6 ; 0x3e6 <nrk_create_taskset>
- 702: 0e 94 56 16 call 0x2cac ; 0x2cac <nrk_start>
- 706: 80 e0 ldi r24, 0x00 ; 0
- 708: 90 e0 ldi r25, 0x00 ; 0
- 70a: 0c 94 41 2e jmp 0x5c82 ; 0x5c82 <_exit>
-
-0000070e <init_adc>:
+ 3ca: 81 2f mov r24, r17
+ 3cc: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 3d0: 1f 91 pop r17
+ 3d2: 08 95 ret
+
+000003d4 <monome_draw>:
+ 3d4: 1f 93 push r17
+ 3d6: 10 91 0b 02 lds r17, 0x020B
+ 3da: 81 2f mov r24, r17
+ 3dc: 0e 94 a2 11 call 0x2344 ; 0x2344 <nrk_gpio_get>
+ 3e0: 88 23 and r24, r24
+ 3e2: d9 f7 brne .-10 ; 0x3da <monome_draw+0x6>
+ 3e4: 82 e0 ldi r24, 0x02 ; 2
+ 3e6: 90 e0 ldi r25, 0x00 ; 0
+ 3e8: 0e 94 0d 14 call 0x281a ; 0x281a <nrk_led_toggle>
+ 3ec: 10 91 12 02 lds r17, 0x0212
+ 3f0: 81 2f mov r24, r17
+ 3f2: 0e 94 91 10 call 0x2122 ; 0x2122 <nrk_gpio_set>
+ 3f6: 80 e9 ldi r24, 0x90 ; 144
+ 3f8: 9f e5 ldi r25, 0x5F ; 95
+ 3fa: 0e 94 84 26 call 0x4d08 ; 0x4d08 <nrk_spin_wait_us>
+ 3fe: 81 2f mov r24, r17
+ 400: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 404: 1f 91 pop r17
+ 406: 08 95 ret
+
+00000408 <monome_move>:
+ 408: 0f 93 push r16
+ 40a: 1f 93 push r17
+ 40c: 08 2f mov r16, r24
+ 40e: 0e 94 91 10 call 0x2122 ; 0x2122 <nrk_gpio_set>
+ 412: 10 91 12 02 lds r17, 0x0212
+ 416: 81 2f mov r24, r17
+ 418: 0e 94 91 10 call 0x2122 ; 0x2122 <nrk_gpio_set>
+ 41c: 80 e9 ldi r24, 0x90 ; 144
+ 41e: 9f e5 ldi r25, 0x5F ; 95
+ 420: 0e 94 84 26 call 0x4d08 ; 0x4d08 <nrk_spin_wait_us>
+ 424: 81 2f mov r24, r17
+ 426: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 42a: 80 2f mov r24, r16
+ 42c: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 430: 1f 91 pop r17
+ 432: 0f 91 pop r16
+ 434: 08 95 ret
+
+00000436 <nrk_register_drivers>:
+ 436: 61 e0 ldi r22, 0x01 ; 1
+ 438: 83 eb ldi r24, 0xB3 ; 179
+ 43a: 94 e0 ldi r25, 0x04 ; 4
+ 43c: 0e 94 6b 25 call 0x4ad6 ; 0x4ad6 <nrk_register_driver>
+ 440: 8f 3f cpi r24, 0xFF ; 255
+ 442: 21 f4 brne .+8 ; 0x44c <nrk_register_drivers+0x16>
+ 444: 80 ef ldi r24, 0xF0 ; 240
+ 446: 90 e0 ldi r25, 0x00 ; 0
+ 448: 0e 94 e0 14 call 0x29c0 ; 0x29c0 <nrk_kprintf>
+ 44c: 08 95 ret
+
+0000044e <nrk_create_taskset>:
+ 44e: 0f 93 push r16
+ 450: 1f 93 push r17
+ 452: 83 e8 ldi r24, 0x83 ; 131
+ 454: 92 e0 ldi r25, 0x02 ; 2
+ 456: 90 93 8a 02 sts 0x028A, r25
+ 45a: 80 93 89 02 sts 0x0289, r24
+ 45e: 04 e8 ldi r16, 0x84 ; 132
+ 460: 12 e0 ldi r17, 0x02 ; 2
+ 462: 40 e8 ldi r20, 0x80 ; 128
+ 464: 50 e0 ldi r21, 0x00 ; 0
+ 466: 6d ea ldi r22, 0xAD ; 173
+ 468: 72 e0 ldi r23, 0x02 ; 2
+ 46a: c8 01 movw r24, r16
+ 46c: 0e 94 a5 2a call 0x554a ; 0x554a <nrk_task_set_stk>
+ 470: 81 e0 ldi r24, 0x01 ; 1
+ 472: 80 93 8c 02 sts 0x028C, r24
+ 476: 80 93 8b 02 sts 0x028B, r24
+ 47a: 80 93 8d 02 sts 0x028D, r24
+ 47e: 80 93 8e 02 sts 0x028E, r24
+ 482: 21 e0 ldi r18, 0x01 ; 1
+ 484: 30 e0 ldi r19, 0x00 ; 0
+ 486: 40 e0 ldi r20, 0x00 ; 0
+ 488: 50 e0 ldi r21, 0x00 ; 0
+ 48a: 20 93 8f 02 sts 0x028F, r18
+ 48e: 30 93 90 02 sts 0x0290, r19
+ 492: 40 93 91 02 sts 0x0291, r20
+ 496: 50 93 92 02 sts 0x0292, r21
+ 49a: 80 e0 ldi r24, 0x00 ; 0
+ 49c: 91 ee ldi r25, 0xE1 ; 225
+ 49e: a5 ef ldi r26, 0xF5 ; 245
+ 4a0: b5 e0 ldi r27, 0x05 ; 5
+ 4a2: 80 93 93 02 sts 0x0293, r24
+ 4a6: 90 93 94 02 sts 0x0294, r25
+ 4aa: a0 93 95 02 sts 0x0295, r26
+ 4ae: b0 93 96 02 sts 0x0296, r27
+ 4b2: 20 93 97 02 sts 0x0297, r18
+ 4b6: 30 93 98 02 sts 0x0298, r19
+ 4ba: 40 93 99 02 sts 0x0299, r20
+ 4be: 50 93 9a 02 sts 0x029A, r21
+ 4c2: 80 e8 ldi r24, 0x80 ; 128
+ 4c4: 90 ef ldi r25, 0xF0 ; 240
+ 4c6: aa ef ldi r26, 0xFA ; 250
+ 4c8: b2 e0 ldi r27, 0x02 ; 2
+ 4ca: 80 93 9b 02 sts 0x029B, r24
+ 4ce: 90 93 9c 02 sts 0x029C, r25
+ 4d2: a0 93 9d 02 sts 0x029D, r26
+ 4d6: b0 93 9e 02 sts 0x029E, r27
+ 4da: 10 92 9f 02 sts 0x029F, r1
+ 4de: 10 92 a0 02 sts 0x02A0, r1
+ 4e2: 10 92 a1 02 sts 0x02A1, r1
+ 4e6: 10 92 a2 02 sts 0x02A2, r1
+ 4ea: 10 92 a3 02 sts 0x02A3, r1
+ 4ee: 10 92 a4 02 sts 0x02A4, r1
+ 4f2: 10 92 a5 02 sts 0x02A5, r1
+ 4f6: 10 92 a6 02 sts 0x02A6, r1
+ 4fa: c8 01 movw r24, r16
+ 4fc: 0e 94 19 20 call 0x4032 ; 0x4032 <nrk_activate_task>
+ 500: 1f 91 pop r17
+ 502: 0f 91 pop r16
+ 504: 08 95 ret
+
+00000506 <Task1>:
+ 506: 2f 92 push r2
+ 508: 3f 92 push r3
+ 50a: 4f 92 push r4
+ 50c: 5f 92 push r5
+ 50e: 6f 92 push r6
+ 510: 7f 92 push r7
+ 512: 9f 92 push r9
+ 514: af 92 push r10
+ 516: bf 92 push r11
+ 518: cf 92 push r12
+ 51a: df 92 push r13
+ 51c: ef 92 push r14
+ 51e: ff 92 push r15
+ 520: 0f 93 push r16
+ 522: 1f 93 push r17
+ 524: cf 93 push r28
+ 526: df 93 push r29
+ 528: cd b7 in r28, 0x3d ; 61
+ 52a: de b7 in r29, 0x3e ; 62
+ 52c: 26 97 sbiw r28, 0x06 ; 6
+ 52e: 0f b6 in r0, 0x3f ; 63
+ 530: f8 94 cli
+ 532: de bf out 0x3e, r29 ; 62
+ 534: 0f be out 0x3f, r0 ; 63
+ 536: cd bf out 0x3d, r28 ; 61
+ 538: 80 91 12 02 lds r24, 0x0212
+ 53c: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 540: 90 90 11 02 lds r9, 0x0211
+ 544: 89 2d mov r24, r9
+ 546: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 54a: a0 90 00 02 lds r10, 0x0200
+ 54e: 8a 2d mov r24, r10
+ 550: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 554: b0 90 0e 02 lds r11, 0x020E
+ 558: 8b 2d mov r24, r11
+ 55a: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 55e: 00 91 0d 02 lds r16, 0x020D
+ 562: 80 2f mov r24, r16
+ 564: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 568: 80 e0 ldi r24, 0x00 ; 0
+ 56a: 0e 94 50 28 call 0x50a0 ; 0x50a0 <nrk_ext_int_enable>
+ 56e: 81 e0 ldi r24, 0x01 ; 1
+ 570: 0e 94 50 28 call 0x50a0 ; 0x50a0 <nrk_ext_int_enable>
+ 574: 10 92 32 03 sts 0x0332, r1
+ 578: 10 92 31 03 sts 0x0331, r1
+ 57c: 10 92 30 03 sts 0x0330, r1
+ 580: 10 92 2f 03 sts 0x032F, r1
+ 584: 10 92 80 02 sts 0x0280, r1
+ 588: 10 92 7f 02 sts 0x027F, r1
+ 58c: b1 e0 ldi r27, 0x01 ; 1
+ 58e: cb 2e mov r12, r27
+ 590: d1 2c mov r13, r1
+ 592: ee 24 eor r14, r14
+ 594: ff 24 eor r15, r15
+ 596: 1e 01 movw r2, r28
+ 598: 08 94 sec
+ 59a: 21 1c adc r2, r1
+ 59c: 31 1c adc r3, r1
+ 59e: a3 e0 ldi r26, 0x03 ; 3
+ 5a0: 4a 2e mov r4, r26
+ 5a2: 51 2c mov r5, r1
+ 5a4: 4c 0e add r4, r28
+ 5a6: 5d 1e adc r5, r29
+ 5a8: f5 e0 ldi r31, 0x05 ; 5
+ 5aa: 6f 2e mov r6, r31
+ 5ac: 71 2c mov r7, r1
+ 5ae: 6c 0e add r6, r28
+ 5b0: 7d 1e adc r7, r29
+ 5b2: 65 e0 ldi r22, 0x05 ; 5
+ 5b4: 81 e0 ldi r24, 0x01 ; 1
+ 5b6: 0e 94 88 25 call 0x4b10 ; 0x4b10 <nrk_open>
+ 5ba: 18 2f mov r17, r24
+ 5bc: 8f 3f cpi r24, 0xFF ; 255
+ 5be: 21 f4 brne .+8 ; 0x5c8 <Task1+0xc2>
+ 5c0: 8f e0 ldi r24, 0x0F ; 15
+ 5c2: 91 e0 ldi r25, 0x01 ; 1
+ 5c4: 0e 94 e0 14 call 0x29c0 ; 0x29c0 <nrk_kprintf>
+ 5c8: 81 e0 ldi r24, 0x01 ; 1
+ 5ca: 90 e0 ldi r25, 0x00 ; 0
+ 5cc: 0e 94 0d 14 call 0x281a ; 0x281a <nrk_led_toggle>
+ 5d0: 42 e0 ldi r20, 0x02 ; 2
+ 5d2: 61 e0 ldi r22, 0x01 ; 1
+ 5d4: 81 2f mov r24, r17
+ 5d6: 0e 94 fb 25 call 0x4bf6 ; 0x4bf6 <nrk_set_status>
+ 5da: 42 e0 ldi r20, 0x02 ; 2
+ 5dc: b1 01 movw r22, r2
+ 5de: 81 2f mov r24, r17
+ 5e0: 0e 94 1d 26 call 0x4c3a ; 0x4c3a <nrk_read>
+ 5e4: 45 e0 ldi r20, 0x05 ; 5
+ 5e6: 61 e0 ldi r22, 0x01 ; 1
+ 5e8: 81 2f mov r24, r17
+ 5ea: 0e 94 fb 25 call 0x4bf6 ; 0x4bf6 <nrk_set_status>
+ 5ee: 42 e0 ldi r20, 0x02 ; 2
+ 5f0: b2 01 movw r22, r4
+ 5f2: 81 2f mov r24, r17
+ 5f4: 0e 94 1d 26 call 0x4c3a ; 0x4c3a <nrk_read>
+ 5f8: 46 e0 ldi r20, 0x06 ; 6
+ 5fa: 61 e0 ldi r22, 0x01 ; 1
+ 5fc: 81 2f mov r24, r17
+ 5fe: 0e 94 fb 25 call 0x4bf6 ; 0x4bf6 <nrk_set_status>
+ 602: 42 e0 ldi r20, 0x02 ; 2
+ 604: b3 01 movw r22, r6
+ 606: 81 2f mov r24, r17
+ 608: 0e 94 1d 26 call 0x4c3a ; 0x4c3a <nrk_read>
+ 60c: 8b e0 ldi r24, 0x0B ; 11
+ 60e: e8 16 cp r14, r24
+ 610: f1 04 cpc r15, r1
+ 612: e8 f5 brcc .+122 ; 0x68e <Task1+0x188>
+ 614: c1 14 cp r12, r1
+ 616: d1 04 cpc r13, r1
+ 618: f1 f1 breq .+124 ; 0x696 <Task1+0x190>
+ 61a: 29 81 ldd r18, Y+1 ; 0x01
+ 61c: 3a 81 ldd r19, Y+2 ; 0x02
+ 61e: 4b 81 ldd r20, Y+3 ; 0x03
+ 620: 5c 81 ldd r21, Y+4 ; 0x04
+ 622: 6d 81 ldd r22, Y+5 ; 0x05
+ 624: 7e 81 ldd r23, Y+6 ; 0x06
+ 626: e1 14 cp r14, r1
+ 628: f1 04 cpc r15, r1
+ 62a: 49 f4 brne .+18 ; 0x63e <Task1+0x138>
+ 62c: 30 93 32 03 sts 0x0332, r19
+ 630: 20 93 31 03 sts 0x0331, r18
+ 634: 50 93 30 03 sts 0x0330, r21
+ 638: 40 93 2f 03 sts 0x032F, r20
+ 63c: 20 c0 rjmp .+64 ; 0x67e <Task1+0x178>
+ 63e: 80 91 31 03 lds r24, 0x0331
+ 642: 90 91 32 03 lds r25, 0x0332
+ 646: 28 0f add r18, r24
+ 648: 39 1f adc r19, r25
+ 64a: 36 95 lsr r19
+ 64c: 27 95 ror r18
+ 64e: 30 93 32 03 sts 0x0332, r19
+ 652: 20 93 31 03 sts 0x0331, r18
+ 656: 80 91 2f 03 lds r24, 0x032F
+ 65a: 90 91 30 03 lds r25, 0x0330
+ 65e: 48 0f add r20, r24
+ 660: 59 1f adc r21, r25
+ 662: 56 95 lsr r21
+ 664: 47 95 ror r20
+ 666: 50 93 30 03 sts 0x0330, r21
+ 66a: 40 93 2f 03 sts 0x032F, r20
+ 66e: 80 91 7f 02 lds r24, 0x027F
+ 672: 90 91 80 02 lds r25, 0x0280
+ 676: 68 0f add r22, r24
+ 678: 79 1f adc r23, r25
+ 67a: 76 95 lsr r23
+ 67c: 67 95 ror r22
+ 67e: 70 93 80 02 sts 0x0280, r23
+ 682: 60 93 7f 02 sts 0x027F, r22
+ 686: 08 94 sec
+ 688: e1 1c adc r14, r1
+ 68a: f1 1c adc r15, r1
+ 68c: 44 c0 rjmp .+136 ; 0x716 <Task1+0x210>
+ 68e: cc 24 eor r12, r12
+ 690: dd 24 eor r13, r13
+ 692: ee 24 eor r14, r14
+ 694: ff 24 eor r15, r15
+ 696: 4d 81 ldd r20, Y+5 ; 0x05
+ 698: 5e 81 ldd r21, Y+6 ; 0x06
+ 69a: 20 91 7f 02 lds r18, 0x027F
+ 69e: 30 91 80 02 lds r19, 0x0280
+ 6a2: c9 01 movw r24, r18
+ 6a4: 0a 96 adiw r24, 0x0a ; 10
+ 6a6: 84 17 cp r24, r20
+ 6a8: 95 07 cpc r25, r21
+ 6aa: 28 f0 brcs .+10 ; 0x6b6 <Task1+0x1b0>
+ 6ac: 2a 50 subi r18, 0x0A ; 10
+ 6ae: 30 40 sbci r19, 0x00 ; 0
+ 6b0: 42 17 cp r20, r18
+ 6b2: 53 07 cpc r21, r19
+ 6b4: 80 f5 brcc .+96 ; 0x716 <Task1+0x210>
+ 6b6: 49 81 ldd r20, Y+1 ; 0x01
+ 6b8: 5a 81 ldd r21, Y+2 ; 0x02
+ 6ba: 20 91 31 03 lds r18, 0x0331
+ 6be: 30 91 32 03 lds r19, 0x0332
+ 6c2: c9 01 movw r24, r18
+ 6c4: 0a 96 adiw r24, 0x0a ; 10
+ 6c6: 84 17 cp r24, r20
+ 6c8: 95 07 cpc r25, r21
+ 6ca: 28 f0 brcs .+10 ; 0x6d6 <Task1+0x1d0>
+ 6cc: c9 01 movw r24, r18
+ 6ce: 0a 97 sbiw r24, 0x0a ; 10
+ 6d0: 48 17 cp r20, r24
+ 6d2: 59 07 cpc r21, r25
+ 6d4: 40 f4 brcc .+16 ; 0x6e6 <Task1+0x1e0>
+ 6d6: 24 17 cp r18, r20
+ 6d8: 35 07 cpc r19, r21
+ 6da: 10 f4 brcc .+4 ; 0x6e0 <Task1+0x1da>
+ 6dc: 8a 2d mov r24, r10
+ 6de: 01 c0 rjmp .+2 ; 0x6e2 <Task1+0x1dc>
+ 6e0: 89 2d mov r24, r9
+ 6e2: 0e 94 04 02 call 0x408 ; 0x408 <monome_move>
+ 6e6: 4b 81 ldd r20, Y+3 ; 0x03
+ 6e8: 5c 81 ldd r21, Y+4 ; 0x04
+ 6ea: 20 91 2f 03 lds r18, 0x032F
+ 6ee: 30 91 30 03 lds r19, 0x0330
+ 6f2: c9 01 movw r24, r18
+ 6f4: 0a 96 adiw r24, 0x0a ; 10
+ 6f6: 84 17 cp r24, r20
+ 6f8: 95 07 cpc r25, r21
+ 6fa: 28 f0 brcs .+10 ; 0x706 <Task1+0x200>
+ 6fc: c9 01 movw r24, r18
+ 6fe: 0a 97 sbiw r24, 0x0a ; 10
+ 700: 48 17 cp r20, r24
+ 702: 59 07 cpc r21, r25
+ 704: 40 f4 brcc .+16 ; 0x716 <Task1+0x210>
+ 706: 24 17 cp r18, r20
+ 708: 35 07 cpc r19, r21
+ 70a: 10 f4 brcc .+4 ; 0x710 <Task1+0x20a>
+ 70c: 80 2f mov r24, r16
+ 70e: 01 c0 rjmp .+2 ; 0x712 <Task1+0x20c>
+ 710: 8b 2d mov r24, r11
+ 712: 0e 94 04 02 call 0x408 ; 0x408 <monome_move>
+ 716: 81 2f mov r24, r17
+ 718: 0e 94 61 26 call 0x4cc2 ; 0x4cc2 <nrk_close>
+ 71c: 0e 94 db 1f call 0x3fb6 ; 0x3fb6 <nrk_wait_until_next_period>
+ 720: 48 cf rjmp .-368 ; 0x5b2 <Task1+0xac>
+
+00000722 <main>:
+ 722: cf ef ldi r28, 0xFF ; 255
+ 724: d1 e2 ldi r29, 0x21 ; 33
+ 726: de bf out 0x3e, r29 ; 62
+ 728: cd bf out 0x3d, r28 ; 61
+ 72a: 0e 94 8a 10 call 0x2114 ; 0x2114 <nrk_setup_ports>
+ 72e: e0 90 11 02 lds r14, 0x0211
+ 732: 61 e0 ldi r22, 0x01 ; 1
+ 734: 8e 2d mov r24, r14
+ 736: 0e 94 e5 12 call 0x25ca ; 0x25ca <nrk_gpio_direction>
+ 73a: 00 91 12 02 lds r16, 0x0212
+ 73e: 61 e0 ldi r22, 0x01 ; 1
+ 740: 80 2f mov r24, r16
+ 742: 0e 94 e5 12 call 0x25ca ; 0x25ca <nrk_gpio_direction>
+ 746: f0 90 0d 02 lds r15, 0x020D
+ 74a: 61 e0 ldi r22, 0x01 ; 1
+ 74c: 8f 2d mov r24, r15
+ 74e: 0e 94 e5 12 call 0x25ca ; 0x25ca <nrk_gpio_direction>
+ 752: 10 91 0e 02 lds r17, 0x020E
+ 756: 61 e0 ldi r22, 0x01 ; 1
+ 758: 81 2f mov r24, r17
+ 75a: 0e 94 e5 12 call 0x25ca ; 0x25ca <nrk_gpio_direction>
+ 75e: 60 e0 ldi r22, 0x00 ; 0
+ 760: 80 91 0b 02 lds r24, 0x020B
+ 764: 0e 94 e5 12 call 0x25ca ; 0x25ca <nrk_gpio_direction>
+ 768: 60 e0 ldi r22, 0x00 ; 0
+ 76a: 80 91 0c 02 lds r24, 0x020C
+ 76e: 0e 94 e5 12 call 0x25ca ; 0x25ca <nrk_gpio_direction>
+ 772: 4a ee ldi r20, 0xEA ; 234
+ 774: 51 e0 ldi r21, 0x01 ; 1
+ 776: 63 e0 ldi r22, 0x03 ; 3
+ 778: 80 e0 ldi r24, 0x00 ; 0
+ 77a: 0e 94 dc 28 call 0x51b8 ; 0x51b8 <nrk_ext_int_configure>
+ 77e: 40 ed ldi r20, 0xD0 ; 208
+ 780: 51 e0 ldi r21, 0x01 ; 1
+ 782: 63 e0 ldi r22, 0x03 ; 3
+ 784: 81 e0 ldi r24, 0x01 ; 1
+ 786: 0e 94 dc 28 call 0x51b8 ; 0x51b8 <nrk_ext_int_configure>
+ 78a: 80 2f mov r24, r16
+ 78c: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 790: 8e 2d mov r24, r14
+ 792: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 796: 80 91 00 02 lds r24, 0x0200
+ 79a: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 79e: 81 2f mov r24, r17
+ 7a0: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 7a4: 8f 2d mov r24, r15
+ 7a6: 0e 94 16 11 call 0x222c ; 0x222c <nrk_gpio_clr>
+ 7aa: 0e 94 1a 17 call 0x2e34 ; 0x2e34 <nrk_init>
+ 7ae: 20 e0 ldi r18, 0x00 ; 0
+ 7b0: 30 e0 ldi r19, 0x00 ; 0
+ 7b2: 40 e0 ldi r20, 0x00 ; 0
+ 7b4: 50 e0 ldi r21, 0x00 ; 0
+ 7b6: 60 e0 ldi r22, 0x00 ; 0
+ 7b8: 70 e0 ldi r23, 0x00 ; 0
+ 7ba: 80 e0 ldi r24, 0x00 ; 0
+ 7bc: 90 e0 ldi r25, 0x00 ; 0
+ 7be: 0e 94 7d 21 call 0x42fa ; 0x42fa <nrk_time_set>
+ 7c2: 0e 94 1b 02 call 0x436 ; 0x436 <nrk_register_drivers>
+ 7c6: 0e 94 27 02 call 0x44e ; 0x44e <nrk_create_taskset>
+ 7ca: 0e 94 ba 16 call 0x2d74 ; 0x2d74 <nrk_start>
+ 7ce: 80 e0 ldi r24, 0x00 ; 0
+ 7d0: 90 e0 ldi r25, 0x00 ; 0
+ 7d2: 0c 94 d3 2e jmp 0x5da6 ; 0x5da6 <_exit>
+
+000007d6 <init_adc>:
void init_adc()
{
// Initialize values here
ADC_INIT ();
- 70e: ea e7 ldi r30, 0x7A ; 122
- 710: f0 e0 ldi r31, 0x00 ; 0
- 712: 83 e0 ldi r24, 0x03 ; 3
- 714: 80 83 st Z, r24
- 716: ac e7 ldi r26, 0x7C ; 124
- 718: b0 e0 ldi r27, 0x00 ; 0
- 71a: 80 e4 ldi r24, 0x40 ; 64
- 71c: 8c 93 st X, r24
+ 7d6: ea e7 ldi r30, 0x7A ; 122
+ 7d8: f0 e0 ldi r31, 0x00 ; 0
+ 7da: 83 e0 ldi r24, 0x03 ; 3
+ 7dc: 80 83 st Z, r24
+ 7de: ac e7 ldi r26, 0x7C ; 124
+ 7e0: b0 e0 ldi r27, 0x00 ; 0
+ 7e2: 80 e4 ldi r24, 0x40 ; 64
+ 7e4: 8c 93 st X, r24
ADC_ENABLE ();
- 71e: 80 81 ld r24, Z
- 720: 80 68 ori r24, 0x80 ; 128
- 722: 80 83 st Z, r24
+ 7e6: 80 81 ld r24, Z
+ 7e8: 80 68 ori r24, 0x80 ; 128
+ 7ea: 80 83 st Z, r24
channel=0;
- 724: 10 92 af 03 sts 0x03AF, r1
+ 7ec: 10 92 b7 03 sts 0x03B7, r1
ADC_SET_CHANNEL (0);
- 728: 8c 91 ld r24, X
- 72a: 80 7e andi r24, 0xE0 ; 224
- 72c: 8c 93 st X, r24
- 72e: 9c 91 ld r25, X
- 730: 8c 91 ld r24, X
- 732: 80 7e andi r24, 0xE0 ; 224
- 734: 89 2b or r24, r25
- 736: 8c 93 st X, r24
- 738: 08 95 ret
-
-0000073a <delay>:
+ 7f0: 8c 91 ld r24, X
+ 7f2: 80 7e andi r24, 0xE0 ; 224
+ 7f4: 8c 93 st X, r24
+ 7f6: 9c 91 ld r25, X
+ 7f8: 8c 91 ld r24, X
+ 7fa: 80 7e andi r24, 0xE0 ; 224
+ 7fc: 89 2b or r24, r25
+ 7fe: 8c 93 st X, r24
+ 800: 08 95 ret
+
+00000802 <delay>:
}
uint16_t get_adc_val()
@@ -630,548 +707,548 @@
void delay()
{
nrk_spin_wait_us(ADC_SETUP_DELAY);
- 73a: 88 ec ldi r24, 0xC8 ; 200
- 73c: 90 e0 ldi r25, 0x00 ; 0
- 73e: 0e 94 20 26 call 0x4c40 ; 0x4c40 <nrk_spin_wait_us>
- 742: 08 95 ret
-
-00000744 <get_adc_val>:
- 744: 80 91 7a 00 lds r24, 0x007A
- 748: 80 64 ori r24, 0x40 ; 64
- 74a: 80 93 7a 00 sts 0x007A, r24
- 74e: 80 91 7a 00 lds r24, 0x007A
- 752: 84 ff sbrs r24, 4
- 754: fc cf rjmp .-8 ; 0x74e <get_adc_val+0xa>
- 756: 0e 94 9d 03 call 0x73a ; 0x73a <delay>
- 75a: 20 91 78 00 lds r18, 0x0078
- 75e: 33 27 eor r19, r19
- 760: 80 91 79 00 lds r24, 0x0079
- 764: 99 27 eor r25, r25
- 766: 98 2f mov r25, r24
- 768: 88 27 eor r24, r24
- 76a: 82 2b or r24, r18
- 76c: 93 2b or r25, r19
- 76e: 08 95 ret
-
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/monome/controller_basic/main.lst Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.lst Sat Dec 11 12:34:39 2010
@@ -8,9 +8,9 @@
8 .global __do_clear_bss
11 .text
12 .Ltext0:
- 135 .global monome_move
- 137 monome_move:
- 138 .stabd 46,0,0
+ 134 .global monome_erase
+ 136 monome_erase:
+ 137 .stabd 46,0,0
1:main.c ****
/******************************************************************************
2:main.c **** * Nano-RK, a real-time operating system for
sensor networks.
3:main.c **** * Copyright (C) 2007, Real-Time and Multimedia
Lab, Carnegie Mellon University
@@ -45,723 +45,895 @@
32:main.c **** #include <hal.h>
33:main.c **** #include <nrk_error.h>
34:main.c **** #include <nrk_timer.h>
- 35:main.c **** #include <nrk_driver_list.h>
- 36:main.c **** #include <nrk_driver.h>
- 37:main.c **** #include <ff_basic_sensor.h>
- 38:main.c ****
- 39:main.c **** NRK_STK Stack1[NRK_APP_STACKSIZE];
- 40:main.c **** nrk_task_type TaskOne;
- 41:main.c **** void Task1(void);
- 42:main.c ****
- 43:main.c **** #define IRQ NRK_UART0_TXD
- 44:main.c **** #define UP NRK_UART0_RXD
- 45:main.c **** #define DOWN NRK_DEBUG_0
- 46:main.c **** #define LEFT NRK_UART1_TXD
- 47:main.c **** #define RIGHT NRK_UART1_RXD
- 48:main.c ****
- 49:main.c **** #define DEVIATION 10
- 50:main.c **** uint16_t z_baseline, x_baseline, y_baseline;
- 51:main.c ****
- 52:main.c **** void nrk_create_taskset();
- 53:main.c **** void nrk_register_drivers();
- 54:main.c **** uint8_t kill_stack(uint8_t val);
- 55:main.c **** void monome_move(uint8_t direction);
- 56:main.c ****
- 57:main.c **** int
- 58:main.c **** main ()
- 59:main.c **** {
- 60:main.c **** uint8_t t;
- 61:main.c **** nrk_setup_ports();
- 62:main.c **** //nrk_setup_uart(UART_BAUDRATE_115K2);
- 63:main.c ****
- 64:main.c **** nrk_gpio_direction(NRK_UART0_RXD, NRK_PIN_OUTPUT);
- 65:main.c **** nrk_gpio_direction(NRK_UART0_TXD, NRK_PIN_OUTPUT);
- 66:main.c **** nrk_gpio_direction(NRK_UART1_RXD, NRK_PIN_OUTPUT);
- 67:main.c **** nrk_gpio_direction(NRK_UART1_TXD, NRK_PIN_OUTPUT);
- 68:main.c ****
- 69:main.c ****
- 70:main.c ****
- 71:main.c **** //printf( PSTR("starting...\r\n") );
- 72:main.c ****
- 73:main.c **** nrk_init();
- 74:main.c **** nrk_time_set(0,0);
- 75:main.c ****
- 76:main.c **** nrk_register_drivers();
- 77:main.c **** nrk_create_taskset ();
- 78:main.c **** nrk_start();
- 79:main.c ****
- 80:main.c **** return 0;
- 81:main.c **** }
- 82:main.c ****
- 83:main.c ****
- 84:main.c **** void Task1()
- 85:main.c **** {
- 86:main.c **** uint16_t cnt, calibration;
- 87:main.c **** int8_t i,fd,val;
- 88:main.c **** uint16_t x_val, y_val, z_val;
- 89:main.c ****
- 90:main.c **** //printf( "My node's address is %d\r\n",NODE_ADDR
);
- 91:main.c ****
- 92:main.c **** //printf( "Task1 PID=%d\r\n",nrk_get_pid());
- 93:main.c ****
- 94:main.c **** nrk_gpio_clr(IRQ);
- 95:main.c **** nrk_gpio_clr(UP);
- 96:main.c **** nrk_gpio_clr(DOWN);
- 97:main.c **** nrk_gpio_clr(LEFT);
- 98:main.c **** nrk_gpio_clr(RIGHT);
+ 35:main.c **** #include <nrk_ext_int.h>
+ 36:main.c **** #include <nrk_driver_list.h>
+ 37:main.c **** #include <nrk_driver.h>
+ 38:main.c **** #include <ff_basic_sensor.h>
+ 39:main.c ****
+ 40:main.c **** NRK_STK Stack1[NRK_APP_STACKSIZE];
+ 41:main.c **** nrk_task_type TaskOne;
+ 42:main.c **** void Task1(void);
+ 43:main.c ****
+ 44:main.c **** #define IRQ NRK_UART0_TXD
+ 45:main.c **** #define UP NRK_UART0_RXD
+ 46:main.c **** #define DOWN NRK_DEBUG_0
+ 47:main.c **** #define LEFT NRK_UART1_TXD
+ 48:main.c **** #define RIGHT NRK_UART1_RXD
+ 49:main.c ****
+ 50:main.c **** #define DRAW NRK_DEBUG_2
+ 51:main.c **** #define ERASE NRK_DEBUG_3
+ 52:main.c ****
+ 53:main.c **** #define DRAW_INT NRK_EXT_INT_0
+ 54:main.c **** #define ERASE_INT NRK_EXT_INT_1
+ 55:main.c ****
+ 56:main.c **** #define DEVIATION 10
+ 57:main.c **** uint16_t z_baseline, x_baseline, y_baseline;
+ 58:main.c ****
+ 59:main.c **** void nrk_create_taskset();
+ 60:main.c **** void nrk_register_drivers();
+ 61:main.c **** uint8_t kill_stack(uint8_t val);
+ 62:main.c ****
+ 63:main.c **** /* monome sketch-it functions */
+ 64:main.c **** void monome_move(uint8_t direction);
+ 65:main.c **** void monome_draw();
+ 66:main.c **** void monome_erase();
+ 67:main.c ****
+ 68:main.c **** int
+ 69:main.c **** main ()
+ 70:main.c **** {
+ 71:main.c **** uint8_t t;
+ 72:main.c **** nrk_setup_ports();
+ 73:main.c **** //nrk_setup_uart(UART_BAUDRATE_115K2);
+ 74:main.c ****
+ 75:main.c **** /* output pins */
+ 76:main.c **** nrk_gpio_direction(NRK_UART0_RXD, NRK_PIN_OUTPUT);
+ 77:main.c **** nrk_gpio_direction(NRK_UART0_TXD, NRK_PIN_OUTPUT);
+ 78:main.c **** nrk_gpio_direction(NRK_UART1_RXD, NRK_PIN_OUTPUT);
+ 79:main.c **** nrk_gpio_direction(NRK_UART1_TXD, NRK_PIN_OUTPUT);
+ 80:main.c ****
+ 81:main.c **** /* button input pins */
+ 82:main.c **** nrk_gpio_direction(NRK_DEBUG_2, NRK_PIN_INPUT);
+ 83:main.c **** nrk_gpio_direction(NRK_DEBUG_3, NRK_PIN_INPUT);
+ 84:main.c ****
+ 85:main.c **** /* configure interrupts */
+ 86:main.c **** nrk_ext_int_configure(DRAW_INT, NRK_RISING_EDGE,
monome_draw);
+ 87:main.c **** nrk_ext_int_configure(ERASE_INT, NRK_RISING_EDGE,
monome_erase);
+ 88:main.c ****
+ 89:main.c **** nrk_gpio_clr(IRQ);
+ 90:main.c **** nrk_gpio_clr(UP);
+ 91:main.c **** nrk_gpio_clr(DOWN);
+ 92:main.c **** nrk_gpio_clr(LEFT);
+ 93:main.c **** nrk_gpio_clr(RIGHT);
+ 94:main.c ****
+ 95:main.c **** //printf( PSTR("starting...\r\n") );
+ 96:main.c ****
+ 97:main.c **** nrk_init();
+ 98:main.c **** nrk_time_set(0,0);
99:main.c ****
- 100:main.c **** x_baseline = 0;
- 101:main.c **** y_baseline = 0;
- 102:main.c **** z_baseline = 0;
- 103:main.c **** cnt=0;
- 104:main.c **** calibration = 1;
- 105:main.c **** while(1) {
- 106:main.c **** // Open ADC device as read
- 107:main.c **** fd=nrk_open(FIREFLY_SENSOR_BASIC,READ);
- 108:main.c **** if(fd==NRK_ERROR) nrk_kprintf(PSTR("Failed to
open sensor driver\r\n"));
- 109:main.c **** nrk_led_toggle(BLUE_LED);
- 110:main.c **** /* read x value */
- 111:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_X);
- 112:main.c **** val=nrk_read(fd,&x_val,2);
- 113:main.c ****
- 114:main.c **** /* read y value */
- 115:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Y);
- 116:main.c **** val=nrk_read(fd,&y_val,2);
- 117:main.c ****
- 118:main.c **** /* read z value */
- 119:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Z);
- 120:main.c **** val=nrk_read(fd,&z_val,2);
- 121:main.c ****
- 122:main.c **** if(cnt > 10){
- 123:main.c **** calibration = 0;
- 124:main.c **** //printf( "z_baseline=%d\r\n",z_baseline);
- 125:main.c **** //printf( "x_baseline=%d\r\n",x_baseline);
- 126:main.c **** //printf( "y_baseline=%d\r\n",y_baseline);
- 127:main.c **** cnt = 0;
- 128:main.c **** }
- 129:main.c **** /* calibration */
- 130:main.c **** if(calibration > 0){
- 131:main.c **** if(cnt == 0){
- 132:main.c **** x_baseline = x_val;
- 133:main.c **** y_baseline = y_val;
- 134:main.c **** z_baseline = z_val;
- 135:main.c **** }
- 136:main.c **** else{
- 137:main.c **** x_baseline = (x_baseline + x_val)>>1;
- 138:main.c **** y_baseline = (y_baseline + y_val)>>1;
- 139:main.c **** z_baseline = (z_baseline + z_val)>>1;
- 140:main.c **** }
- 141:main.c ****
- 142:main.c **** cnt++;
- 143:main.c **** }
+ 100:main.c **** nrk_register_drivers();
+ 101:main.c **** nrk_create_taskset ();
+ 102:main.c **** nrk_start();
+ 103:main.c ****
+ 104:main.c **** return 0;
+ 105:main.c **** }
+ 106:main.c ****
+ 107:main.c ****
+ 108:main.c **** void Task1()
+ 109:main.c **** {
+ 110:main.c **** uint16_t cnt, calibration;
+ 111:main.c **** int8_t i,fd,val;
+ 112:main.c **** uint16_t x_val, y_val, z_val;
+ 113:main.c ****
+ 114:main.c **** //printf( "My node's address is %d\r\n",NODE_ADDR
);
+ 115:main.c ****
+ 116:main.c **** //printf( "Task1 PID=%d\r\n",nrk_get_pid());
+ 117:main.c ****
+ 118:main.c **** nrk_gpio_clr(IRQ);
+ 119:main.c **** nrk_gpio_clr(UP);
+ 120:main.c **** nrk_gpio_clr(DOWN);
+ 121:main.c **** nrk_gpio_clr(LEFT);
+ 122:main.c **** nrk_gpio_clr(RIGHT);
+ 123:main.c ****
+ 124:main.c **** nrk_ext_int_enable(DRAW_INT);
+ 125:main.c **** nrk_ext_int_enable(ERASE_INT);
+ 126:main.c ****
+ 127:main.c **** x_baseline = 0;
+ 128:main.c **** y_baseline = 0;
+ 129:main.c **** z_baseline = 0;
+ 130:main.c **** cnt=0;
+ 131:main.c **** calibration = 1;
+ 132:main.c **** while(1) {
+ 133:main.c **** // Open ADC device as read
+ 134:main.c **** fd=nrk_open(FIREFLY_SENSOR_BASIC,READ);
+ 135:main.c **** if(fd==NRK_ERROR) nrk_kprintf(PSTR("Failed to
open sensor driver\r\n"));
+ 136:main.c **** nrk_led_toggle(BLUE_LED);
+ 137:main.c **** /* read x value */
+ 138:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_X);
+ 139:main.c **** val=nrk_read(fd,&x_val,2);
+ 140:main.c ****
+ 141:main.c **** /* read y value */
+ 142:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Y);
+ 143:main.c **** val=nrk_read(fd,&y_val,2);
144:main.c ****
- 145:main.c **** else{
- 146:main.c ****
- 147:main.c **** /*
- 148:main.c **** * change in z value beyond threshold indicates
cursor move
- 149:main.c **** * determine cursor direction only on this
indicator
- 150:main.c **** */
- 151:main.c **** if((z_val > z_baseline + DEVIATION) || z_val <
z_baseline - DEVIATION){
- 152:main.c ****
- 153:main.c **** //printf( "acc_z=%d",z_val);
- 154:main.c **** //printf( " acc_x=%d",x_val);
- 155:main.c **** //printf( " acc_y=%d\r\n",y_val);
- 156:main.c **** if((x_val > (x_baseline + DEVIATION)) ||
(x_val < (x_baseline - DEVIATION))){
- 157:main.c **** if(x_val > x_baseline) //nrk_kprintf(
PSTR("move down\r\n") );
- 158:main.c **** monome_move(DOWN);
- 159:main.c **** else //nrk_kprintf( PSTR("move up\r\n") );
- 160:main.c **** monome_move(UP);
- 161:main.c **** }
- 162:main.c **** if((y_val > (y_baseline + DEVIATION)) ||
(y_val < (y_baseline - DEVIATION))){
- 163:main.c **** if(y_val > y_baseline) //nrk_kprintf(
PSTR("move right\r\n") );
- 164:main.c **** monome_move(RIGHT);
- 165:main.c **** else //nrk_kprintf( PSTR("move left\r\n") );
- 166:main.c **** monome_move(LEFT);
- 167:main.c **** }
- 168:main.c **** }
- 169:main.c **** else {
- 170:main.c **** //nrk_kprintf( PSTR("no move\r\n") );
- 171:main.c **** ;
- 172:main.c **** }
- 173:main.c **** }
- 174:main.c ****
- 175:main.c **** nrk_close(fd);
- 176:main.c **** nrk_wait_until_next_period();
- 177:main.c ****
- 178:main.c **** }
- 179:main.c **** }
- 180:main.c ****
- 181:main.c ****
- 182:main.c **** void
- 183:main.c **** nrk_create_taskset()
- 184:main.c **** {
- 185:main.c **** TaskOne.task = Task1;
- 186:main.c **** nrk_task_set_stk( &TaskOne, Stack1,
NRK_APP_STACKSIZE);
- 187:main.c **** TaskOne.prio = 1;
- 188:main.c **** TaskOne.FirstActivation = TRUE;
- 189:main.c **** TaskOne.Type = BASIC_TASK;
- 190:main.c **** TaskOne.SchType = PREEMPTIVE;
- 191:main.c **** TaskOne.period.secs = 1;
- 192:main.c **** TaskOne.period.nano_secs = 100*NANOS_PER_MS;
//*NANOS_PER_MS;
- 193:main.c **** TaskOne.cpu_reserve.secs = 1;
- 194:main.c **** TaskOne.cpu_reserve.nano_secs = 50*NANOS_PER_MS;
- 195:main.c **** TaskOne.offset.secs = 0;
- 196:main.c **** TaskOne.offset.nano_secs= 0;
- 197:main.c **** nrk_activate_task (&TaskOne);
- 198:main.c ****
- 199:main.c **** }
- 200:main.c ****
- 201:main.c **** void nrk_register_drivers()
- 202:main.c **** {
- 203:main.c **** int8_t val;
- 204:main.c ****
- 205:main.c **** // Register the Basic FireFly Sensor device driver
- 206:main.c **** // Make sure to add:
- 207:main.c **** // #define NRK_MAX_DRIVER_CNT
- 208:main.c **** // in nrk_cfg.h
- 209:main.c **** // Make sure to add:
- 210:main.c **** // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
- 211:main.c **** // in makefile
- 212:main.c **** val=nrk_register_driver(
&dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
- 213:main.c **** if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to
load my ADC driver\r\n") );
- 214:main.c ****
- 215:main.c **** }
- 216:main.c ****
- 217:main.c **** void monome_move(uint8_t direction){
- 140 .LM0:
- 141 .LFBB1:
- 142 /* prologue: frame size=0 */
- 143 0000 0F93 push r16
- 144 0002 1F93 push r17
- 145 /* prologue end (size=2) */
- 146 0004 082F mov r16,r24
- 218:main.c **** nrk_gpio_set(direction);
- 148 .LM1:
- 149 0006 0E94 0000 call nrk_gpio_set
- 219:main.c **** nrk_gpio_set(IRQ);
- 151 .LM2:
- 152 000a 1091 0000 lds r17,NRK_UART0_TXD
- 153 000e 812F mov r24,r17
- 154 0010 0E94 0000 call nrk_gpio_set
- 220:main.c **** nrk_spin_wait_us(90000);
- 156 .LM3:
- 157 0014 80E9 ldi r24,lo8(24464)
- 158 0016 9FE5 ldi r25,hi8(24464)
- 159 0018 0E94 0000 call nrk_spin_wait_us
- 221:main.c **** nrk_gpio_clr(IRQ);
- 161 .LM4:
+ 145:main.c **** /* read z value */
+ 146:main.c **** val=nrk_set_status(fd,SENSOR_SELECT,ACC_Z);
+ 147:main.c **** val=nrk_read(fd,&z_val,2);
+ 148:main.c ****
+ 149:main.c **** if(cnt > 10){
+ 150:main.c **** calibration = 0;
+ 151:main.c **** //printf( "z_baseline=%d\r\n",z_baseline);
+ 152:main.c **** //printf( "x_baseline=%d\r\n",x_baseline);
+ 153:main.c **** //printf( "y_baseline=%d\r\n",y_baseline);
+ 154:main.c **** cnt = 0;
+ 155:main.c **** }
+ 156:main.c **** /* calibration */
+ 157:main.c **** if(calibration > 0){
+ 158:main.c **** if(cnt == 0){
+ 159:main.c **** x_baseline = x_val;
+ 160:main.c **** y_baseline = y_val;
+ 161:main.c **** z_baseline = z_val;
+ 162:main.c **** }
+ 163:main.c **** else{
+ 164:main.c **** x_baseline = (x_baseline + x_val)>>1;
+ 165:main.c **** y_baseline = (y_baseline + y_val)>>1;
+ 166:main.c **** z_baseline = (z_baseline + z_val)>>1;
+ 167:main.c **** }
+ 168:main.c ****
+ 169:main.c **** cnt++;
+ 170:main.c **** }
+ 171:main.c ****
+ 172:main.c **** else{
+ 173:main.c ****
+ 174:main.c **** /*
+ 175:main.c **** * change in z value beyond threshold indicates
cursor move
+ 176:main.c **** * determine cursor direction only on this
indicator
+ 177:main.c **** */
+ 178:main.c **** if((z_val > z_baseline + DEVIATION) || z_val <
z_baseline - DEVIATION){
+ 179:main.c ****
+ 180:main.c **** //printf( "acc_z=%d",z_val);
+ 181:main.c **** //printf( " acc_x=%d",x_val);
+ 182:main.c **** //printf( " acc_y=%d\r\n",y_val);
+ 183:main.c **** if((x_val > (x_baseline + DEVIATION)) ||
(x_val < (x_baseline - DEVIATION))){
+ 184:main.c **** if(x_val > x_baseline) //nrk_kprintf(
PSTR("move down\r\n") );
+ 185:main.c **** monome_move(DOWN);
+ 186:main.c **** else //nrk_kprintf( PSTR("move up\r\n") );
+ 187:main.c **** monome_move(UP);
+ 188:main.c **** }
+ 189:main.c **** if((y_val > (y_baseline + DEVIATION)) ||
(y_val < (y_baseline - DEVIATION))){
+ 190:main.c **** if(y_val > y_baseline) //nrk_kprintf(
PSTR("move right\r\n") );
+ 191:main.c **** monome_move(RIGHT);
+ 192:main.c **** else //nrk_kprintf( PSTR("move left\r\n") );
+ 193:main.c **** monome_move(LEFT);
+ 194:main.c **** }
+ 195:main.c **** }
+ 196:main.c **** else {
+ 197:main.c **** //nrk_kprintf( PSTR("no move\r\n") );
+ 198:main.c **** ;
+ 199:main.c **** }
+ 200:main.c **** }
+ 201:main.c ****
+ 202:main.c **** nrk_close(fd);
+ 203:main.c **** nrk_wait_until_next_period();
+ 204:main.c ****
+ 205:main.c **** }
+ 206:main.c **** }
+ 207:main.c ****
+ 208:main.c ****
+ 209:main.c **** void
+ 210:main.c **** nrk_create_taskset()
+ 211:main.c **** {
+ 212:main.c **** TaskOne.task = Task1;
+ 213:main.c **** nrk_task_set_stk( &TaskOne, Stack1,
NRK_APP_STACKSIZE);
+ 214:main.c **** TaskOne.prio = 1;
+ 215:main.c **** TaskOne.FirstActivation = TRUE;
+ 216:main.c **** TaskOne.Type = BASIC_TASK;
+ 217:main.c **** TaskOne.SchType = PREEMPTIVE;
+ 218:main.c **** TaskOne.period.secs = 1;
+ 219:main.c **** TaskOne.period.nano_secs = 100*NANOS_PER_MS;
//*NANOS_PER_MS;
+ 220:main.c **** TaskOne.cpu_reserve.secs = 1;
+ 221:main.c **** TaskOne.cpu_reserve.nano_secs = 50*NANOS_PER_MS;
+ 222:main.c **** TaskOne.offset.secs = 0;
+ 223:main.c **** TaskOne.offset.nano_secs= 0;
+ 224:main.c **** nrk_activate_task (&TaskOne);
+ 225:main.c ****
+ 226:main.c **** }
+ 227:main.c ****
+ 228:main.c **** void nrk_register_drivers()
+ 229:main.c **** {
+ 230:main.c **** int8_t val;
+ 231:main.c ****
+ 232:main.c **** // Register the Basic FireFly Sensor device driver
+ 233:main.c **** // Make sure to add:
+ 234:main.c **** // #define NRK_MAX_DRIVER_CNT
+ 235:main.c **** // in nrk_cfg.h
+ 236:main.c **** // Make sure to add:
+ 237:main.c **** // SRC +=
$(ROOT_DIR)/src/drivers/platform/$(PLATFORM_TYPE)/source/ff_basic_sensor.c
+ 238:main.c **** // in makefile
+ 239:main.c **** val=nrk_register_driver(
&dev_manager_ff_sensors,FIREFLY_SENSOR_BASIC);
+ 240:main.c **** if(val==NRK_ERROR) nrk_kprintf( PSTR("Failed to
load my ADC driver\r\n") );
+ 241:main.c ****
+ 242:main.c **** }
+ 243:main.c ****
+ 244:main.c **** void monome_move(uint8_t direction){
+ 245:main.c **** nrk_gpio_set(direction);
+ 246:main.c **** nrk_gpio_set(IRQ);
+ 247:main.c **** nrk_spin_wait_us(90000);
+ 248:main.c **** nrk_gpio_clr(IRQ);
+ 249:main.c **** nrk_gpio_clr(direction);
+ 250:main.c **** }
+ 251:main.c ****
+ 252:main.c **** void monome_draw(){
+ 253:main.c **** while(nrk_gpio_get(DRAW)); //debounce
+ 254:main.c **** //nrk_kprintf( PSTR("draw\r\n") );
+ 255:main.c **** nrk_led_toggle(GREEN_LED);
+ 256:main.c **** nrk_gpio_set(IRQ);
+ 257:main.c **** nrk_spin_wait_us(90000);
+ 258:main.c **** nrk_gpio_clr(IRQ);
+ 259:main.c **** }
+ 260:main.c ****
+ 261:main.c **** void monome_erase(){
+ 139 .LM0:
+ 140 .LFBB1:
+ 141 /* prologue: frame size=0 */
+ 142 0000 1F93 push r17
+ 143 /* prologue end (size=1) */
+ 262:main.c **** while(nrk_gpio_get(ERASE)); //debounce
+ 145 .LM1:
+ 146 0002 1091 0000 lds r17,NRK_DEBUG_3
+ 147 .L3:
+ 149 .LM2:
+ 150 0006 812F mov r24,r17
+ 151 0008 0E94 0000 call nrk_gpio_get
+ 152 000c 8823 tst r24
+ 153 000e 01F4 brne .L3
+ 263:main.c **** //nrk_kprintf( PSTR("erase\r\n") );
+ 264:main.c **** nrk_led_toggle(RED_LED);
+ 155 .LM3:
+ 156 0010 83E0 ldi r24,lo8(3)
+ 157 0012 90E0 ldi r25,hi8(3)
+ 158 0014 0E94 0000 call nrk_led_toggle
+ 265:main.c **** nrk_gpio_set(IRQ);
+ 160 .LM4:
+ 161 0018 1091 0000 lds r17,NRK_UART0_TXD
162 001c 812F mov r24,r17
- 163 001e 0E94 0000 call nrk_gpio_clr
- 222:main.c **** nrk_gpio_clr(direction);
+ 163 001e 0E94 0000 call nrk_gpio_set
+ 266:main.c **** nrk_spin_wait_us(90000);
165 .LM5:
- 166 0022 802F mov r24,r16
- 167 0024 0E94 0000 call nrk_gpio_clr
- 168 /* epilogue: frame size=0 */
- 169 0028 1F91 pop r17
- 170 002a 0F91 pop r16
- 171 002c 0895 ret
- 172 /* epilogue end (size=3) */
- 173 /* function monome_move size 23 (18) */
- 175 .Lscope1:
- 177 .stabd 78,0,0
- 179 .global nrk_register_drivers
- 181 nrk_register_drivers:
- 182 .stabd 46,0,0
- 184 .LM6:
- 185 .LFBB2:
- 186 /* prologue: frame size=0 */
- 187 /* prologue end (size=0) */
- 189 .LM7:
- 190 002e 61E0 ldi r22,lo8(1)
- 191 0030 80E0 ldi r24,lo8(pm(dev_manager_ff_sensors))
- 192 0032 90E0 ldi r25,hi8(pm(dev_manager_ff_sensors))
- 193 0034 0E94 0000 call nrk_register_driver
- 195 .LM8:
- 196 0038 8F3F cpi r24,lo8(-1)
- 197 003a 01F4 brne .L6
- 199 .LM9:
- 200 003c 80E0 ldi r24,lo8(__c.2406)
- 201 003e 90E0 ldi r25,hi8(__c.2406)
- 202 0040 0E94 0000 call nrk_kprintf
- 203 .L6:
- 204 0044 0895 ret
- 205 /* epilogue: frame size=0 */
- 206 /* epilogue: noreturn */
- 207 /* epilogue end (size=0) */
- 208 /* function nrk_register_drivers size 12 (12) */
- 210 .Lscope2:
- 212 .stabd 78,0,0
- 214 .global nrk_create_taskset
- 216 nrk_create_taskset:
- 217 .stabd 46,0,0
- 219 .LM10:
- 220 .LFBB3:
- 221 /* prologue: frame size=0 */
- 222 0046 0F93 push r16
- 223 0048 1F93 push r17
- 224 /* prologue end (size=2) */
- 226 .LM11:
- 227 004a 80E0 ldi r24,lo8(pm(Task1))
- 228 004c 90E0 ldi r25,hi8(pm(Task1))
- 229 004e 9093 0000 sts (TaskOne+5)+1,r25
- 230 0052 8093 0000 sts TaskOne+5,r24
- 232 .LM12:
- 233 0056 00E0 ldi r16,lo8(TaskOne)
- 234 0058 10E0 ldi r17,hi8(TaskOne)
- 235 005a 40E8 ldi r20,lo8(128)
- 236 005c 50E0 ldi r21,hi8(128)
- 237 005e 60E0 ldi r22,lo8(Stack1)
- 238 0060 70E0 ldi r23,hi8(Stack1)
- 239 0062 C801 movw r24,r16
- 240 0064 0E94 0000 call nrk_task_set_stk
- 242 .LM13:
- 243 0068 81E0 ldi r24,lo8(1)
- 244 006a 8093 0000 sts TaskOne+8,r24
- 246 .LM14:
- 247 006e 8093 0000 sts TaskOne+7,r24
- 249 .LM15:
- 250 0072 8093 0000 sts TaskOne+9,r24
- 252 .LM16:
- 253 0076 8093 0000 sts TaskOne+10,r24
- 255 .LM17:
- 256 007a 21E0 ldi r18,lo8(1)
- 257 007c 30E0 ldi r19,hi8(1)
- 258 007e 40E0 ldi r20,hlo8(1)
- 259 0080 50E0 ldi r21,hhi8(1)
- 260 0082 2093 0000 sts TaskOne+11,r18
- 261 0086 3093 0000 sts (TaskOne+11)+1,r19
- 262 008a 4093 0000 sts (TaskOne+11)+2,r20
- 263 008e 5093 0000 sts (TaskOne+11)+3,r21
- 265 .LM18:
- 266 0092 80E0 ldi r24,lo8(100000000)
- 267 0094 91EE ldi r25,hi8(100000000)
- 268 0096 A5EF ldi r26,hlo8(100000000)
- 269 0098 B5E0 ldi r27,hhi8(100000000)
- 270 009a 8093 0000 sts TaskOne+15,r24
- 271 009e 9093 0000 sts (TaskOne+15)+1,r25
- 272 00a2 A093 0000 sts (TaskOne+15)+2,r26
- 273 00a6 B093 0000 sts (TaskOne+15)+3,r27
- 275 .LM19:
- 276 00aa 2093 0000 sts TaskOne+19,r18
- 277 00ae 3093 0000 sts (TaskOne+19)+1,r19
- 278 00b2 4093 0000 sts (TaskOne+19)+2,r20
- 279 00b6 5093 0000 sts (TaskOne+19)+3,r21
- 281 .LM20:
- 282 00ba 80E8 ldi r24,lo8(50000000)
- 283 00bc 90EF ldi r25,hi8(50000000)
- 284 00be AAEF ldi r26,hlo8(50000000)
- 285 00c0 B2E0 ldi r27,hhi8(50000000)
- 286 00c2 8093 0000 sts TaskOne+23,r24
- 287 00c6 9093 0000 sts (TaskOne+23)+1,r25
- 288 00ca A093 0000 sts (TaskOne+23)+2,r26
- 289 00ce B093 0000 sts (TaskOne+23)+3,r27
- 291 .LM21:
- 292 00d2 1092 0000 sts TaskOne+27,__zero_reg__
- 293 00d6 1092 0000 sts (TaskOne+27)+1,__zero_reg__
- 294 00da 1092 0000 sts (TaskOne+27)+2,__zero_reg__
- 295 00de 1092 0000 sts (TaskOne+27)+3,__zero_reg__
- 297 .LM22:
- 298 00e2 1092 0000 sts TaskOne+31,__zero_reg__
- 299 00e6 1092 0000 sts (TaskOne+31)+1,__zero_reg__
- 300 00ea 1092 0000 sts (TaskOne+31)+2,__zero_reg__
- 301 00ee 1092 0000 sts (TaskOne+31)+3,__zero_reg__
- 303 .LM23:
- 304 00f2 C801 movw r24,r16
- 305 00f4 0E94 0000 call nrk_activate_task
- 306 /* epilogue: frame size=0 */
- 307 00f8 1F91 pop r17
- 308 00fa 0F91 pop r16
- 309 00fc 0895 ret
- 310 /* epilogue end (size=3) */
- 311 /* function nrk_create_taskset size 92 (87) */
- 313 .Lscope3:
- 315 .stabd 78,0,0
- 317 .global Task1
- 319 Task1:
- 320 .stabd 46,0,0
- 322 .LM24:
- 323 .LFBB4:
- 324 /* prologue: frame size=6 */
- 325 00fe 2F92 push r2
- 326 0100 3F92 push r3
- 327 0102 4F92 push r4
- 328 0104 5F92 push r5
- 329 0106 6F92 push r6
- 330 0108 7F92 push r7
- 331 010a 9F92 push r9
- 332 010c AF92 push r10
- 333 010e BF92 push r11
- 334 0110 CF92 push r12
- 335 0112 DF92 push r13
- 336 0114 EF92 push r14
- 337 0116 FF92 push r15
- 338 0118 0F93 push r16
- 339 011a 1F93 push r17
- 340 011c CF93 push r28
- 341 011e DF93 push r29
- 342 0120 CDB7 in r28,__SP_L__
- 343 0122 DEB7 in r29,__SP_H__
- 344 0124 2697 sbiw r28,6
- 345 0126 0FB6 in __tmp_reg__,__SREG__
- 346 0128 F894 cli
- 347 012a DEBF out __SP_H__,r29
- 348 012c 0FBE out __SREG__,__tmp_reg__
- 349 012e CDBF out __SP_L__,r28
- 350 /* prologue end (size=25) */
- 352 .LM25:
- 353 0130 8091 0000 lds r24,NRK_UART0_TXD
- 354 0134 0E94 0000 call nrk_gpio_clr
- 356 .LM26:
- 357 0138 9090 0000 lds r9,NRK_UART0_RXD
- 358 013c 892D mov r24,r9
- 359 013e 0E94 0000 call nrk_gpio_clr
- 361 .LM27:
- 362 0142 A090 0000 lds r10,NRK_DEBUG_0
- 363 0146 8A2D mov r24,r10
- 364 0148 0E94 0000 call nrk_gpio_clr
- 366 .LM28:
- 367 014c B090 0000 lds r11,NRK_UART1_TXD
- 368 0150 8B2D mov r24,r11
- 369 0152 0E94 0000 call nrk_gpio_clr
- 371 .LM29:
- 372 0156 0091 0000 lds r16,NRK_UART1_RXD
- 373 015a 802F mov r24,r16
- 374 015c 0E94 0000 call nrk_gpio_clr
- 376 .LM30:
- 377 0160 1092 0000 sts (x_baseline)+1,__zero_reg__
- 378 0164 1092 0000 sts x_baseline,__zero_reg__
- 380 .LM31:
- 381 0168 1092 0000 sts (y_baseline)+1,__zero_reg__
- 382 016c 1092 0000 sts y_baseline,__zero_reg__
- 384 .LM32:
- 385 0170 1092 0000 sts (z_baseline)+1,__zero_reg__
- 386 0174 1092 0000 sts z_baseline,__zero_reg__
- 387 0178 EE24 clr r14
- 388 017a FF24 clr r15
- 389 017c B1E0 ldi r27,lo8(1)
- 390 017e CB2E mov r12,r27
- 391 0180 D12C mov r13,__zero_reg__
- 393 .LM33:
- 394 0182 1E01 movw r2,r28
- 395 0184 0894 sec
- 396 0186 211C adc r2,__zero_reg__
- 397 0188 311C adc r3,__zero_reg__
- 399 .LM34:
- 400 018a A3E0 ldi r26,lo8(3)
- 401 018c 4A2E mov r4,r26
- 402 018e 512C mov r5,__zero_reg__
- 403 0190 4C0E add r4,r28
- 404 0192 5D1E adc r5,r29
- 406 .LM35:
- 407 0194 F5E0 ldi r31,lo8(5)
- 408 0196 6F2E mov r6,r31
- 409 0198 712C mov r7,__zero_reg__
- 410 019a 6C0E add r6,r28
- 411 019c 7D1E adc r7,r29
- 412 .L10:
- 414 .LM36:
- 415 019e 65E0 ldi r22,lo8(5)
- 416 01a0 81E0 ldi r24,lo8(1)
- 417 01a2 0E94 0000 call nrk_open
- 418 01a6 182F mov r17,r24
- 420 .LM37:
- 421 01a8 8F3F cpi r24,lo8(-1)
- 422 01aa 01F4 brne .L11
- 423 01ac 80E0 ldi r24,lo8(__c.2358)
- 424 01ae 90E0 ldi r25,hi8(__c.2358)
- 425 01b0 0E94 0000 call nrk_kprintf
- 426 .L11:
- 428 .LM38:
- 429 01b4 81E0 ldi r24,lo8(1)
- 430 01b6 90E0 ldi r25,hi8(1)
- 431 01b8 0E94 0000 call nrk_led_toggle
- 433 .LM39:
- 434 01bc 42E0 ldi r20,lo8(2)
- 435 01be 61E0 ldi r22,lo8(1)
- 436 01c0 812F mov r24,r17
- 437 01c2 0E94 0000 call nrk_set_status
- 439 .LM40:
- 440 01c6 42E0 ldi r20,lo8(2)
- 441 01c8 B101 movw r22,r2
- 442 01ca 812F mov r24,r17
- 443 01cc 0E94 0000 call nrk_read
- 445 .LM41:
- 446 01d0 45E0 ldi r20,lo8(5)
- 447 01d2 61E0 ldi r22,lo8(1)
- 448 01d4 812F mov r24,r17
- 449 01d6 0E94 0000 call nrk_set_status
- 451 .LM42:
- 452 01da 42E0 ldi r20,lo8(2)
- 453 01dc B201 movw r22,r4
- 454 01de 812F mov r24,r17
- 455 01e0 0E94 0000 call nrk_read
- 457 .LM43:
- 458 01e4 46E0 ldi r20,lo8(6)
- 459 01e6 61E0 ldi r22,lo8(1)
- 460 01e8 812F mov r24,r17
- 461 01ea 0E94 0000 call nrk_set_status
- 463 .LM44:
- 464 01ee 42E0 ldi r20,lo8(2)
- 465 01f0 B301 movw r22,r6
- 466 01f2 812F mov r24,r17
- 467 01f4 0E94 0000 call nrk_read
- 469 .LM45:
- 470 01f8 8BE0 ldi r24,lo8(11)
- 471 01fa E816 cp r14,r24
- 472 01fc F104 cpc r15,__zero_reg__
- 473 01fe 00F4 brsh .L13
- 475 .LM46:
- 476 0200 C114 cp r12,__zero_reg__
- 477 0202 D104 cpc r13,__zero_reg__
- 478 0204 01F0 breq .L15
- 479 0206 2981 ldd r18,Y+1
- 480 0208 3A81 ldd r19,Y+2
- 481 020a 4B81 ldd r20,Y+3
- 482 020c 5C81 ldd r21,Y+4
- 483 020e 6D81 ldd r22,Y+5
- 484 0210 7E81 ldd r23,Y+6
+ 166 0022 80E9 ldi r24,lo8(24464)
+ 167 0024 9FE5 ldi r25,hi8(24464)
+ 168 0026 0E94 0000 call nrk_spin_wait_us
+ 267:main.c **** nrk_gpio_clr(IRQ);
+ 170 .LM6:
+ 171 002a 812F mov r24,r17
+ 172 002c 0E94 0000 call nrk_gpio_clr
+ 173 /* epilogue: frame size=0 */
+ 174 0030 1F91 pop r17
+ 175 0032 0895 ret
+ 176 /* epilogue end (size=2) */
+ 177 /* function monome_erase size 26 (23) */
+ 179 .Lscope1:
+ 181 .stabd 78,0,0
+ 183 .global monome_draw
+ 185 monome_draw:
+ 186 .stabd 46,0,0
+ 188 .LM7:
+ 189 .LFBB2:
+ 190 /* prologue: frame size=0 */
+ 191 0034 1F93 push r17
+ 192 /* prologue end (size=1) */
+ 194 .LM8:
+ 195 0036 1091 0000 lds r17,NRK_DEBUG_2
+ 196 .L10:
+ 198 .LM9:
+ 199 003a 812F mov r24,r17
+ 200 003c 0E94 0000 call nrk_gpio_get
+ 201 0040 8823 tst r24
+ 202 0042 01F4 brne .L10
+ 204 .LM10:
+ 205 0044 82E0 ldi r24,lo8(2)
+ 206 0046 90E0 ldi r25,hi8(2)
+ 207 0048 0E94 0000 call nrk_led_toggle
+ 209 .LM11:
+ 210 004c 1091 0000 lds r17,NRK_UART0_TXD
+ 211 0050 812F mov r24,r17
+ 212 0052 0E94 0000 call nrk_gpio_set
+ 214 .LM12:
+ 215 0056 80E9 ldi r24,lo8(24464)
+ 216 0058 9FE5 ldi r25,hi8(24464)
+ 217 005a 0E94 0000 call nrk_spin_wait_us
+ 219 .LM13:
+ 220 005e 812F mov r24,r17
+ 221 0060 0E94 0000 call nrk_gpio_clr
+ 222 /* epilogue: frame size=0 */
+ 223 0064 1F91 pop r17
+ 224 0066 0895 ret
+ 225 /* epilogue end (size=2) */
+ 226 /* function monome_draw size 26 (23) */
+ 228 .Lscope2:
+ 230 .stabd 78,0,0
+ 233 .global monome_move
+ 235 monome_move:
+ 236 .stabd 46,0,0
+ 238 .LM14:
+ 239 .LFBB3:
+ 240 /* prologue: frame size=0 */
+ 241 0068 0F93 push r16
+ 242 006a 1F93 push r17
+ 243 /* prologue end (size=2) */
+ 244 006c 082F mov r16,r24
+ 246 .LM15:
+ 247 006e 0E94 0000 call nrk_gpio_set
+ 249 .LM16:
+ 250 0072 1091 0000 lds r17,NRK_UART0_TXD
+ 251 0076 812F mov r24,r17
+ 252 0078 0E94 0000 call nrk_gpio_set
+ 254 .LM17:
+ 255 007c 80E9 ldi r24,lo8(24464)
+ 256 007e 9FE5 ldi r25,hi8(24464)
+ 257 0080 0E94 0000 call nrk_spin_wait_us
+ 259 .LM18:
+ 260 0084 812F mov r24,r17
+ 261 0086 0E94 0000 call nrk_gpio_clr
+ 263 .LM19:
+ 264 008a 802F mov r24,r16
+ 265 008c 0E94 0000 call nrk_gpio_clr
+ 266 /* epilogue: frame size=0 */
+ 267 0090 1F91 pop r17
+ 268 0092 0F91 pop r16
+ 269 0094 0895 ret
+ 270 /* epilogue end (size=3) */
+ 271 /* function monome_move size 23 (18) */
+ 273 .Lscope3:
+ 275 .stabd 78,0,0
+ 277 .global nrk_register_drivers
+ 279 nrk_register_drivers:
+ 280 .stabd 46,0,0
+ 282 .LM20:
+ 283 .LFBB4:
+ 284 /* prologue: frame size=0 */
+ 285 /* prologue end (size=0) */
+ 287 .LM21:
+ 288 0096 61E0 ldi r22,lo8(1)
+ 289 0098 80E0 ldi r24,lo8(pm(dev_manager_ff_sensors))
+ 290 009a 90E0 ldi r25,hi8(pm(dev_manager_ff_sensors))
+ 291 009c 0E94 0000 call nrk_register_driver
+ 293 .LM22:
+ 294 00a0 8F3F cpi r24,lo8(-1)
+ 295 00a2 01F4 brne .L20
+ 297 .LM23:
+ 298 00a4 80E0 ldi r24,lo8(__c.2427)
+ 299 00a6 90E0 ldi r25,hi8(__c.2427)
+ 300 00a8 0E94 0000 call nrk_kprintf
+ 301 .L20:
+ 302 00ac 0895 ret
+ 303 /* epilogue: frame size=0 */
+ 304 /* epilogue: noreturn */
+ 305 /* epilogue end (size=0) */
+ 306 /* function nrk_register_drivers size 12 (12) */
+ 308 .Lscope4:
+ 310 .stabd 78,0,0
+ 312 .global nrk_create_taskset
+ 314 nrk_create_taskset:
+ 315 .stabd 46,0,0
+ 317 .LM24:
+ 318 .LFBB5:
+ 319 /* prologue: frame size=0 */
+ 320 00ae 0F93 push r16
+ 321 00b0 1F93 push r17
+ 322 /* prologue end (size=2) */
+ 324 .LM25:
+ 325 00b2 80E0 ldi r24,lo8(pm(Task1))
+ 326 00b4 90E0 ldi r25,hi8(pm(Task1))
+ 327 00b6 9093 0000 sts (TaskOne+5)+1,r25
+ 328 00ba 8093 0000 sts TaskOne+5,r24
+ 330 .LM26:
+ 331 00be 00E0 ldi r16,lo8(TaskOne)
+ 332 00c0 10E0 ldi r17,hi8(TaskOne)
+ 333 00c2 40E8 ldi r20,lo8(128)
+ 334 00c4 50E0 ldi r21,hi8(128)
+ 335 00c6 60E0 ldi r22,lo8(Stack1)
+ 336 00c8 70E0 ldi r23,hi8(Stack1)
+ 337 00ca C801 movw r24,r16
+ 338 00cc 0E94 0000 call nrk_task_set_stk
+ 340 .LM27:
+ 341 00d0 81E0 ldi r24,lo8(1)
+ 342 00d2 8093 0000 sts TaskOne+8,r24
+ 344 .LM28:
+ 345 00d6 8093 0000 sts TaskOne+7,r24
+ 347 .LM29:
+ 348 00da 8093 0000 sts TaskOne+9,r24
+ 350 .LM30:
+ 351 00de 8093 0000 sts TaskOne+10,r24
+ 353 .LM31:
+ 354 00e2 21E0 ldi r18,lo8(1)
+ 355 00e4 30E0 ldi r19,hi8(1)
+ 356 00e6 40E0 ldi r20,hlo8(1)
+ 357 00e8 50E0 ldi r21,hhi8(1)
+ 358 00ea 2093 0000 sts TaskOne+11,r18
+ 359 00ee 3093 0000 sts (TaskOne+11)+1,r19
+ 360 00f2 4093 0000 sts (TaskOne+11)+2,r20
+ 361 00f6 5093 0000 sts (TaskOne+11)+3,r21
+ 363 .LM32:
+ 364 00fa 80E0 ldi r24,lo8(100000000)
+ 365 00fc 91EE ldi r25,hi8(100000000)
+ 366 00fe A5EF ldi r26,hlo8(100000000)
+ 367 0100 B5E0 ldi r27,hhi8(100000000)
+ 368 0102 8093 0000 sts TaskOne+15,r24
+ 369 0106 9093 0000 sts (TaskOne+15)+1,r25
+ 370 010a A093 0000 sts (TaskOne+15)+2,r26
+ 371 010e B093 0000 sts (TaskOne+15)+3,r27
+ 373 .LM33:
+ 374 0112 2093 0000 sts TaskOne+19,r18
+ 375 0116 3093 0000 sts (TaskOne+19)+1,r19
+ 376 011a 4093 0000 sts (TaskOne+19)+2,r20
+ 377 011e 5093 0000 sts (TaskOne+19)+3,r21
+ 379 .LM34:
+ 380 0122 80E8 ldi r24,lo8(50000000)
+ 381 0124 90EF ldi r25,hi8(50000000)
+ 382 0126 AAEF ldi r26,hlo8(50000000)
+ 383 0128 B2E0 ldi r27,hhi8(50000000)
+ 384 012a 8093 0000 sts TaskOne+23,r24
+ 385 012e 9093 0000 sts (TaskOne+23)+1,r25
+ 386 0132 A093 0000 sts (TaskOne+23)+2,r26
+ 387 0136 B093 0000 sts (TaskOne+23)+3,r27
+ 389 .LM35:
+ 390 013a 1092 0000 sts TaskOne+27,__zero_reg__
+ 391 013e 1092 0000 sts (TaskOne+27)+1,__zero_reg__
+ 392 0142 1092 0000 sts (TaskOne+27)+2,__zero_reg__
+ 393 0146 1092 0000 sts (TaskOne+27)+3,__zero_reg__
+ 395 .LM36:
+ 396 014a 1092 0000 sts TaskOne+31,__zero_reg__
+ 397 014e 1092 0000 sts (TaskOne+31)+1,__zero_reg__
+ 398 0152 1092 0000 sts (TaskOne+31)+2,__zero_reg__
+ 399 0156 1092 0000 sts (TaskOne+31)+3,__zero_reg__
+ 401 .LM37:
+ 402 015a C801 movw r24,r16
+ 403 015c 0E94 0000 call nrk_activate_task
+ 404 /* epilogue: frame size=0 */
+ 405 0160 1F91 pop r17
+ 406 0162 0F91 pop r16
+ 407 0164 0895 ret
+ 408 /* epilogue end (size=3) */
+ 409 /* function nrk_create_taskset size 92 (87) */
+ 411 .Lscope5:
+ 413 .stabd 78,0,0
+ 415 .global Task1
+ 417 Task1:
+ 418 .stabd 46,0,0
+ 420 .LM38:
+ 421 .LFBB6:
+ 422 /* prologue: frame size=6 */
+ 423 0166 2F92 push r2
+ 424 0168 3F92 push r3
+ 425 016a 4F92 push r4
+ 426 016c 5F92 push r5
+ 427 016e 6F92 push r6
+ 428 0170 7F92 push r7
+ 429 0172 9F92 push r9
+ 430 0174 AF92 push r10
+ 431 0176 BF92 push r11
+ 432 0178 CF92 push r12
+ 433 017a DF92 push r13
+ 434 017c EF92 push r14
+ 435 017e FF92 push r15
+ 436 0180 0F93 push r16
+ 437 0182 1F93 push r17
+ 438 0184 CF93 push r28
+ 439 0186 DF93 push r29
+ 440 0188 CDB7 in r28,__SP_L__
+ 441 018a DEB7 in r29,__SP_H__
+ 442 018c 2697 sbiw r28,6
+ 443 018e 0FB6 in __tmp_reg__,__SREG__
+ 444 0190 F894 cli
+ 445 0192 DEBF out __SP_H__,r29
+ 446 0194 0FBE out __SREG__,__tmp_reg__
+ 447 0196 CDBF out __SP_L__,r28
+ 448 /* prologue end (size=25) */
+ 450 .LM39:
+ 451 0198 8091 0000 lds r24,NRK_UART0_TXD
+ 452 019c 0E94 0000 call nrk_gpio_clr
+ 454 .LM40:
+ 455 01a0 9090 0000 lds r9,NRK_UART0_RXD
+ 456 01a4 892D mov r24,r9
+ 457 01a6 0E94 0000 call nrk_gpio_clr
+ 459 .LM41:
+ 460 01aa A090 0000 lds r10,NRK_DEBUG_0
+ 461 01ae 8A2D mov r24,r10
+ 462 01b0 0E94 0000 call nrk_gpio_clr
+ 464 .LM42:
+ 465 01b4 B090 0000 lds r11,NRK_UART1_TXD
+ 466 01b8 8B2D mov r24,r11
+ 467 01ba 0E94 0000 call nrk_gpio_clr
+ 469 .LM43:
+ 470 01be 0091 0000 lds r16,NRK_UART1_RXD
+ 471 01c2 802F mov r24,r16
+ 472 01c4 0E94 0000 call nrk_gpio_clr
+ 474 .LM44:
+ 475 01c8 80E0 ldi r24,lo8(0)
+ 476 01ca 0E94 0000 call nrk_ext_int_enable
+ 478 .LM45:
+ 479 01ce 81E0 ldi r24,lo8(1)
+ 480 01d0 0E94 0000 call nrk_ext_int_enable
+ 482 .LM46:
+ 483 01d4 1092 0000 sts (x_baseline)+1,__zero_reg__
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/monome/controller_basic/main.map Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.map Sat Dec 11 12:34:39 2010
@@ -44,9 +44,9 @@
0x2 main.o
nrk_task_TCB 0x42 ../../../../src/kernel/source/nrk.o
next_next_wakeup 0x2 ../../../../src/kernel/source/nrk.o
-ext_int1_callback
0x2 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ext_int1_callback 0x2 main.o
radio_sem
0x2 ../../../../src/radio/cc2420/source/basic_rf.o
-ext_int0_callback
0x2 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ext_int0_callback 0x2 main.o
nrk_sem_list 0x6 ../../../../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
@@ -55,12 +55,12 @@
mdmctrl0
0x2 ../../../../src/radio/cc2420/source/basic_rf.o
rfSettings
0x9 ../../../../src/radio/cc2420/source/basic_rf.o
_nrk_time_trigger 0x1 main.o
-ext_int2_callback
0x2 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ext_int2_callback 0x2 main.o
TaskOne 0x23 main.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
nrk_high_ready_TCB 0x2 ../../../../src/kernel/source/nrk.o
-pc_int0_callback
0x2 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+pc_int0_callback 0x2 main.o
tmp_blah
0x2 ../../../../src/radio/cc2420/source/basic_rf.o
nrk_cur_task_prio 0x1 ../../../../src/kernel/source/nrk.o
_nrk_cpu_state 0x1 ../../../../src/kernel/source/nrk.o
@@ -255,7 +255,7 @@
.rela.plt
*(.rela.plt)
-.text 0x00000000 0x5c84
+.text 0x00000000 0x5da8
*(.vectors)
.vectors 0x00000000 0xcc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
0x00000000 __vectors
@@ -341,7 +341,6 @@
0x0000039c __vector_37
0x0000039c __vector_4
0x0000039c __vector_44
- 0x0000039c __vector_2
0x0000039c __vector_21
0x0000039c __vector_36
0x0000039c __vector_29
@@ -356,263 +355,266 @@
0x0000039c __vector_18
0x0000039c __vector_20
0x0000039c __vector_42
- .text 0x000003a0 0x36e main.o
- 0x000003ce nrk_register_drivers
- 0x000003a0 monome_move
- 0x0000049e Task1
- 0x000003e6 nrk_create_taskset
- 0x000006ae main
- .text 0x0000070e
0x382 ../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
- 0x0000089e dev_manager_ff_sensors
- 0x00000770 read_voltage_status
- 0x0000070e init_adc
- 0x00000744 get_adc_val
- 0x0000073a delay
- .text 0x00000a90
0x3e ../../../../src/radio/cc2420/source/hal_rf_set_channel.o
- 0x00000a90 halRfSetChannel
- .text 0x00000ace
0x18 ../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
- 0x00000ace halRfWaitForCrystalOscillator
- .text 0x00000ae6
0x14e6 ../../../../src/radio/cc2420/source/basic_rf.o
- 0x00001daa rf_set_channel
- 0x000013ea rf_rx_on
- 0x00000c66 rf_auto_ack_enable
- 0x0000142a rf_tx_power
- 0x00001d56 rf_set_rx
- 0x00000c30 rf_addr_decode_disable
- 0x00000da2 rf_data_mode
- 0x00000cf0 rf_rx_check_fifop
- 0x00001478 rf_tx_packet
- 0x00000d02 rf_rx_check_sfd
- 0x00000b7c rf_security_enable
- 0x00000d16 rf_rx_packet
- 0x00000d52 rf_carrier_off
- 0x00000cdc rf_busy
- 0x000013aa rf_polling_rx_on
- 0x00000ecc rf_polling_rx_packet
- 0x00000d7a rf_carrier_on
- 0x00000bf0 rf_get_sem
- 0x0000137a rf_rx_off
- 0x00000d34 rf_flush_rx_fifo
- 0x00001dd0 rf_init
- 0x00000bfa rf_addr_decode_enable
- 0x00001b7c rf_security_set_key
- 0x000017d6 rf_tx_tdma_packet
- 0x00000aee rf_security_set_ctr_counter
- 0x00000e7a rf_set_cca_thresh
- 0x00001b06 rf_addr_decode_set_my_mac
- 0x00000bc8 rf_security_disable
- 0x00000ca2 rf_auto_ack_disable
- 0x00000e0c rf_test_mode
- 0x00000ae6 rf_security_last_pkt_status
- .text 0x00001fcc
0x952 ../../../../src/platform/firefly2_2/source/ulib.o
- 0x0000205a nrk_gpio_set
- 0x00002732 nrk_get_button
- 0x000028f8 nrk_kprintf
- 0x00001fd2 nrk_uart_data_ready
- 0x00002502 nrk_gpio_direction
- 0x0000289c getc0
- 0x000027c6 nrk_led_set
- 0x00002008 getc1
- 0x000022f0 nrk_gpio_toggle
- 0x00002164 nrk_gpio_clr
- 0x00002816 putc0
- 0x000028b6 nrk_setup_uart
- 0x00002800 nrk_gpio_pullups
- 0x0000286e setup_uart1
- 0x0000204c nrk_setup_ports
- 0x00002830 putc1
- 0x0000278c nrk_led_clr
- 0x0000227c nrk_gpio_get
- 0x00002022 PORT_INIT
- 0x00002840 setup_uart0
- 0x00002752 nrk_led_toggle
- 0x00001fcc nrk_uart_rx_signal_get
- .text 0x0000291e
0xe ../../../../src/platform/firefly2_2/source/hal_wait.o
- 0x0000291e halWait
- .text 0x0000292c
0x11c ../../../../src/platform/firefly2_2/source/nrk_eeprom.o
- 0x000029c6 read_eeprom_load_img_pages
- 0x00002954 nrk_eeprom_read_byte
- 0x00002940
write_eeprom_current_image_checksum
- 0x00002a0c write_eeprom_load_img_pages
- 0x00002960 read_eeprom_mac_address
- 0x00002a02 nrk_eeprom_write_byte
- 0x00002a20 write_eeprom_aes_key
- 0x000029b2 read_eeprom_channel
- 0x000029da read_eeprom_aes_key
- 0x0000292c
read_eeprom_current_image_checksum
- .text 0x00002a48 0x456 ../../../../src/kernel/source/nrk.o
- 0x00002a50 nrk_version
- 0x00002d6c nrk_init
- 0x00002a5c nrk_TCB_init
- 0x00002e9a nrk_halt
- 0x00002a56 _nrk_timer_tick
- 0x00002a4c nrk_int_enable
- 0x00002cac nrk_start
- 0x00002a48 nrk_int_disable
- .text 0x00002e9e
0x0 ../../../../src/kernel/source/nrk_stats.o
- .text 0x00002e9e
0x1b0 ../../../../src/kernel/source/nrk_error.o
- 0x00003036 nrk_error_add
- 0x00003028 nrk_kernel_error_add
- 0x00002eb8 nrk_error_get
- 0x00002eaa nrk_errno_get
- 0x00002e9e _nrk_errno_set
- 0x00002ed8 nrk_error_print
- .text 0x0000304e
0x1e8 ../../../../src/kernel/source/nrk_stack_check.o
- 0x00003098 dump_stack_info
- 0x0000304e nrk_stack_check_pid
- 0x000031f0 nrk_stack_check
- .text 0x00003236
0x762 ../../../../src/kernel/source/nrk_events.o
- 0x00003696 nrk_signal_delete
- 0x000035b6 nrk_event_signal
- 0x000034b0 nrk_sem_post
- 0x000033ba nrk_sem_create
- 0x00003922 nrk_event_wait
- 0x00003478 nrk_sem_query
- 0x00003236 nrk_signal_create
- 0x00003348 nrk_signal_register
- 0x0000387a nrk_sem_pend
- 0x00003432 nrk_sem_delete
- 0x000032b0 nrk_signal_get_registered_mask
- 0x00003410 nrk_get_resource_index
- 0x000032c2 nrk_signal_unregister
- .text 0x00003998
0x67e ../../../../src/kernel/source/nrk_task.o
- 0x00003b7c _nrk_wait_for_scheduler
- 0x00003b6e nrk_get_pid
- 0x00003eee nrk_wait_until_next_period
- 0x00003e1a nrk_wait_ticks
- 0x00003c4a nrk_wait_until
- 0x00003d48 nrk_set_next_wakeup
- 0x000039bc nrk_add_to_readyQ
- 0x00003cfa nrk_wait_until_nw
- 0x000039a6 nrk_print_readyQ
- 0x00003f6a nrk_activate_task
- 0x00003dc4 nrk_wait_until_ticks
- 0x00003b90 nrk_wait
- 0x00003f46 nrk_terminate_task
- 0x00003998 nrk_get_high_ready_task_ID
- 0x00003e88 nrk_wait_until_next_n_periods
- 0x00003aca nrk_rem_from_readyQ
- .text 0x00004016
0x5c0 ../../../../src/kernel/source/nrk_time.o
- 0x00004232 nrk_time_set
- 0x00004520 nrk_time_get
- 0x00004254 _nrk_time_to_ticks
- 0x00004410 _nrk_time_to_ticks_long
- 0x00004134 nrk_time_compact_nanos
- 0x00004178 nrk_time_add
- 0x00004016 nrk_time_sub
- 0x00004358 _nrk_ticks_to_time
- .text 0x000045d6
0x48 ../../../../src/kernel/source/nrk_idle_task.o
- 0x000045d6 nrk_idle_task
- .text 0x0000461e
0x3f0 ../../../../src/kernel/source/nrk_scheduler.o
- 0x0000461e _nrk_scheduler
- .text 0x00004a0e
0x232 ../../../../src/kernel/source/nrk_driver.o
- 0x00004bb6 nrk_write
- 0x00004a48 nrk_open
- 0x00004aea nrk_get_status
- 0x00004b2e nrk_set_status
- 0x00004a0e nrk_register_driver
- 0x00004b72 nrk_read
- 0x00004bfa nrk_close
- .text 0x00004c40
0x0 ../../../../src/kernel/source/nrk_reserve.o
- .text 0x00004c40
0x398 ../../../../src/kernel/hal/atmega1281/nrk_timer.o
- 0x00004ed6 nrk_high_speed_timer_wait
- 0x00004e4e __vector_32
- 0x00004d04 nrk_timer_int_reset
- 0x00004cd0 _nrk_os_timer_reset
- 0x00004dcc _nrk_os_timer_get
- 0x00004cf6 nrk_timer_int_stop
- 0x00004c40 nrk_spin_wait_us
- 0x00004dd4 __vector_13
- 0x00004c5c _nrk_high_speed_timer_reset
- 0x00004e3a __vector_17
- 0x00004f62 _nrk_setup_timer
- 0x00004eaa __vector_default
- 0x00004cee _nrk_set_next_wakeup
- 0x00004d1c nrk_timer_int_read
- 0x00004c4e _nrk_high_speed_timer_stop
- 0x00004c54 _nrk_high_speed_timer_start
- 0x00004d30 nrk_timer_int_start
- 0x00004dd4 __vector_15
- 0x00004d46 nrk_timer_int_configure
- 0x00004cb8 _nrk_os_timer_set
- 0x00004c6c _nrk_high_speed_timer_get
- 0x00004ca2 _nrk_os_timer_stop
- 0x00004cbe _nrk_os_timer_start
- 0x00004ce4 _nrk_get_next_wakeup
- .text 0x00004fd8
0x2f2 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
- 0x00004fd8 nrk_ext_int_enable
- 0x00005212 __vector_1
- 0x000050f0 nrk_ext_int_configure
- 0x0000526e __vector_9
- 0x00005066 nrk_ext_int_disable
- .text 0x000052ca
0x16 ../../../../src/kernel/hal/atmega1281/nrk_status.o
- 0x000052de update_watchdog
- 0x000052ca _nrk_startup_ok
- .text 0x000052e0
0x54 ../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
- 0x000052f6 nrk_watchdog_disable
- 0x00005314 nrk_watchdog_enable
- 0x000052e0 nrk_watchdog_check
- 0x000052f2 nrk_watchdog_reset
- .text 0x00005334
0x130 ../../../../src/kernel/hal/atmega1281/nrk_cpu.o
- 0x000053e8 nrk_stack_pointer_init
- 0x00005426 nrk_task_set_stk
- 0x0000534e nrk_idle
- 0x00005334 nrk_battery_save
- 0x00005364 nrk_task_set_entry_function
- 0x0000541c nrk_target_start
- 0x0000540a nrk_stack_pointer_restore
- 0x0000536c nrk_task_stk_init
- 0x00005336 nrk_sleep
- .text 0x00005464
0x56 ../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
- 0x00005464 nrk_start_high_ready_task
- .text 0x000054ba 0x34c
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
- 0x000054ba vfprintf
- .text 0x00005806 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
- .text 0x00005806 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text 0x00005806 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
- .text 0x00005806 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .text 0x00005806 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
- .text 0x00005806 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
- .text 0x00005806 0x12
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
- 0x00005806 strlen_P
- .text 0x00005818 0xa0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
- 0x00005818 fdevopen
- .text 0x000058b8 0x5a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
- 0x000058b8 fputc
- .text 0x00005912 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
- .text 0x00005912 0x40
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
- 0x00005912 printf
- .text 0x00005952 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
- .text 0x00005952 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
- .text 0x00005952 0x38
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
- 0x00005952 calloc
- .text 0x0000598a 0x1f2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
- 0x0000598a malloc
- 0x00005ad0 free
- .text 0x00005b7c 0xe
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
- 0x00005b7c memset
- 0x00005b8a . = ALIGN (0x2)
+ .text 0x000003a0 0x436 main.o
+ 0x00000436 nrk_register_drivers
+ 0x00000408 monome_move
+ 0x000003d4 monome_draw
+ 0x000003a0 monome_erase
+ 0x00000506 Task1
+ 0x0000044e nrk_create_taskset
+ 0x00000722 main
+ .text 0x000007d6
0x382 ../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ 0x00000966 dev_manager_ff_sensors
+ 0x00000838 read_voltage_status
+ 0x000007d6 init_adc
+ 0x0000080c get_adc_val
+ 0x00000802 delay
+ .text 0x00000b58
0x3e ../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ 0x00000b58 halRfSetChannel
+ .text 0x00000b96
0x18 ../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ 0x00000b96 halRfWaitForCrystalOscillator
+ .text 0x00000bae
0x14e6 ../../../../src/radio/cc2420/source/basic_rf.o
+ 0x00001e72 rf_set_channel
+ 0x000014b2 rf_rx_on
+ 0x00000d2e rf_auto_ack_enable
+ 0x000014f2 rf_tx_power
+ 0x00001e1e rf_set_rx
+ 0x00000cf8 rf_addr_decode_disable
+ 0x00000e6a rf_data_mode
+ 0x00000db8 rf_rx_check_fifop
+ 0x00001540 rf_tx_packet
+ 0x00000dca rf_rx_check_sfd
+ 0x00000c44 rf_security_enable
+ 0x00000dde rf_rx_packet
+ 0x00000e1a rf_carrier_off
+ 0x00000da4 rf_busy
+ 0x00001472 rf_polling_rx_on
+ 0x00000f94 rf_polling_rx_packet
+ 0x00000e42 rf_carrier_on
+ 0x00000cb8 rf_get_sem
+ 0x00001442 rf_rx_off
+ 0x00000dfc rf_flush_rx_fifo
+ 0x00001e98 rf_init
+ 0x00000cc2 rf_addr_decode_enable
+ 0x00001c44 rf_security_set_key
+ 0x0000189e rf_tx_tdma_packet
+ 0x00000bb6 rf_security_set_ctr_counter
+ 0x00000f42 rf_set_cca_thresh
+ 0x00001bce rf_addr_decode_set_my_mac
+ 0x00000c90 rf_security_disable
+ 0x00000d6a rf_auto_ack_disable
+ 0x00000ed4 rf_test_mode
+ 0x00000bae rf_security_last_pkt_status
+ .text 0x00002094
0x952 ../../../../src/platform/firefly2_2/source/ulib.o
+ 0x00002122 nrk_gpio_set
+ 0x000027fa nrk_get_button
+ 0x000029c0 nrk_kprintf
+ 0x0000209a nrk_uart_data_ready
+ 0x000025ca nrk_gpio_direction
+ 0x00002964 getc0
+ 0x0000288e nrk_led_set
+ 0x000020d0 getc1
+ 0x000023b8 nrk_gpio_toggle
+ 0x0000222c nrk_gpio_clr
+ 0x000028de putc0
+ 0x0000297e nrk_setup_uart
+ 0x000028c8 nrk_gpio_pullups
+ 0x00002936 setup_uart1
+ 0x00002114 nrk_setup_ports
+ 0x000028f8 putc1
+ 0x00002854 nrk_led_clr
+ 0x00002344 nrk_gpio_get
+ 0x000020ea PORT_INIT
+ 0x00002908 setup_uart0
+ 0x0000281a nrk_led_toggle
+ 0x00002094 nrk_uart_rx_signal_get
+ .text 0x000029e6
0xe ../../../../src/platform/firefly2_2/source/hal_wait.o
+ 0x000029e6 halWait
+ .text 0x000029f4
0x11c ../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ 0x00002a8e read_eeprom_load_img_pages
+ 0x00002a1c nrk_eeprom_read_byte
+ 0x00002a08
write_eeprom_current_image_checksum
+ 0x00002ad4 write_eeprom_load_img_pages
+ 0x00002a28 read_eeprom_mac_address
+ 0x00002aca nrk_eeprom_write_byte
+ 0x00002ae8 write_eeprom_aes_key
+ 0x00002a7a read_eeprom_channel
+ 0x00002aa2 read_eeprom_aes_key
+ 0x000029f4
read_eeprom_current_image_checksum
+ .text 0x00002b10 0x456 ../../../../src/kernel/source/nrk.o
+ 0x00002b18 nrk_version
+ 0x00002e34 nrk_init
+ 0x00002b24 nrk_TCB_init
+ 0x00002f62 nrk_halt
+ 0x00002b1e _nrk_timer_tick
+ 0x00002b14 nrk_int_enable
+ 0x00002d74 nrk_start
+ 0x00002b10 nrk_int_disable
+ .text 0x00002f66
0x0 ../../../../src/kernel/source/nrk_stats.o
+ .text 0x00002f66
0x1b0 ../../../../src/kernel/source/nrk_error.o
+ 0x000030fe nrk_error_add
+ 0x000030f0 nrk_kernel_error_add
+ 0x00002f80 nrk_error_get
+ 0x00002f72 nrk_errno_get
+ 0x00002f66 _nrk_errno_set
+ 0x00002fa0 nrk_error_print
+ .text 0x00003116
0x1e8 ../../../../src/kernel/source/nrk_stack_check.o
+ 0x00003160 dump_stack_info
+ 0x00003116 nrk_stack_check_pid
+ 0x000032b8 nrk_stack_check
+ .text 0x000032fe
0x762 ../../../../src/kernel/source/nrk_events.o
+ 0x0000375e nrk_signal_delete
+ 0x0000367e nrk_event_signal
+ 0x00003578 nrk_sem_post
+ 0x00003482 nrk_sem_create
+ 0x000039ea nrk_event_wait
+ 0x00003540 nrk_sem_query
+ 0x000032fe nrk_signal_create
+ 0x00003410 nrk_signal_register
+ 0x00003942 nrk_sem_pend
+ 0x000034fa nrk_sem_delete
+ 0x00003378 nrk_signal_get_registered_mask
+ 0x000034d8 nrk_get_resource_index
+ 0x0000338a nrk_signal_unregister
+ .text 0x00003a60
0x67e ../../../../src/kernel/source/nrk_task.o
+ 0x00003c44 _nrk_wait_for_scheduler
+ 0x00003c36 nrk_get_pid
+ 0x00003fb6 nrk_wait_until_next_period
+ 0x00003ee2 nrk_wait_ticks
+ 0x00003d12 nrk_wait_until
+ 0x00003e10 nrk_set_next_wakeup
+ 0x00003a84 nrk_add_to_readyQ
+ 0x00003dc2 nrk_wait_until_nw
+ 0x00003a6e nrk_print_readyQ
+ 0x00004032 nrk_activate_task
+ 0x00003e8c nrk_wait_until_ticks
+ 0x00003c58 nrk_wait
+ 0x0000400e nrk_terminate_task
+ 0x00003a60 nrk_get_high_ready_task_ID
+ 0x00003f50 nrk_wait_until_next_n_periods
+ 0x00003b92 nrk_rem_from_readyQ
+ .text 0x000040de
0x5c0 ../../../../src/kernel/source/nrk_time.o
+ 0x000042fa nrk_time_set
+ 0x000045e8 nrk_time_get
+ 0x0000431c _nrk_time_to_ticks
+ 0x000044d8 _nrk_time_to_ticks_long
+ 0x000041fc nrk_time_compact_nanos
+ 0x00004240 nrk_time_add
+ 0x000040de nrk_time_sub
+ 0x00004420 _nrk_ticks_to_time
+ .text 0x0000469e
0x48 ../../../../src/kernel/source/nrk_idle_task.o
+ 0x0000469e nrk_idle_task
+ .text 0x000046e6
0x3f0 ../../../../src/kernel/source/nrk_scheduler.o
+ 0x000046e6 _nrk_scheduler
+ .text 0x00004ad6
0x232 ../../../../src/kernel/source/nrk_driver.o
+ 0x00004c7e nrk_write
+ 0x00004b10 nrk_open
+ 0x00004bb2 nrk_get_status
+ 0x00004bf6 nrk_set_status
+ 0x00004ad6 nrk_register_driver
+ 0x00004c3a nrk_read
+ 0x00004cc2 nrk_close
+ .text 0x00004d08
0x0 ../../../../src/kernel/source/nrk_reserve.o
+ .text 0x00004d08
0x398 ../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ 0x00004f9e nrk_high_speed_timer_wait
+ 0x00004f16 __vector_32
+ 0x00004dcc nrk_timer_int_reset
+ 0x00004d98 _nrk_os_timer_reset
+ 0x00004e94 _nrk_os_timer_get
+ 0x00004dbe nrk_timer_int_stop
+ 0x00004d08 nrk_spin_wait_us
+ 0x00004e9c __vector_13
+ 0x00004d24 _nrk_high_speed_timer_reset
+ 0x00004f02 __vector_17
+ 0x0000502a _nrk_setup_timer
+ 0x00004f72 __vector_default
+ 0x00004db6 _nrk_set_next_wakeup
+ 0x00004de4 nrk_timer_int_read
+ 0x00004d16 _nrk_high_speed_timer_stop
+ 0x00004d1c _nrk_high_speed_timer_start
+ 0x00004df8 nrk_timer_int_start
+ 0x00004e9c __vector_15
+ 0x00004e0e nrk_timer_int_configure
+ 0x00004d80 _nrk_os_timer_set
+ 0x00004d34 _nrk_high_speed_timer_get
+ 0x00004d6a _nrk_os_timer_stop
+ 0x00004d86 _nrk_os_timer_start
+ 0x00004dac _nrk_get_next_wakeup
+ .text 0x000050a0
0x34e ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x000050a0 nrk_ext_int_enable
+ 0x00005336 __vector_1
+ 0x000051b8 nrk_ext_int_configure
+ 0x00005392 __vector_9
+ 0x000052da __vector_2
+ 0x0000512e nrk_ext_int_disable
+ .text 0x000053ee
0x16 ../../../../src/kernel/hal/atmega1281/nrk_status.o
+ 0x00005402 update_watchdog
+ 0x000053ee _nrk_startup_ok
+ .text 0x00005404
0x54 ../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ 0x0000541a nrk_watchdog_disable
+ 0x00005438 nrk_watchdog_enable
+ 0x00005404 nrk_watchdog_check
+ 0x00005416 nrk_watchdog_reset
+ .text 0x00005458
0x130 ../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ 0x0000550c nrk_stack_pointer_init
+ 0x0000554a nrk_task_set_stk
+ 0x00005472 nrk_idle
+ 0x00005458 nrk_battery_save
+ 0x00005488 nrk_task_set_entry_function
+ 0x00005540 nrk_target_start
+ 0x0000552e nrk_stack_pointer_restore
+ 0x00005490 nrk_task_stk_init
+ 0x0000545a nrk_sleep
+ .text 0x00005588
0x56 ../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ 0x00005588 nrk_start_high_ready_task
+ .text 0x000055de 0x34c
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libprintf_min.a(vfprintf_min.o)
+ 0x000055de vfprintf
+ .text 0x0000592a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x0000592a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x0000592a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x0000592a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x0000592a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text 0x0000592a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text 0x0000592a 0x12
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(strlen_P.o)
+ 0x0000592a strlen_P
+ .text 0x0000593c 0xa0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
+ 0x0000593c fdevopen
+ .text 0x000059dc 0x5a
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ 0x000059dc fputc
+ .text 0x00005a36 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
+ .text 0x00005a36 0x40
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
+ 0x00005a36 printf
+ .text 0x00005a76 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ .text 0x00005a76 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ .text 0x00005a76 0x38
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(calloc.o)
+ 0x00005a76 calloc
+ .text 0x00005aae 0x1f2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x00005aae malloc
+ 0x00005bf4 free
+ .text 0x00005ca0 0xe
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ 0x00005ca0 memset
+ 0x00005cae . = ALIGN (0x2)
*(.text.*)
- .text.libgcc 0x00005b8a 0x3e
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
- 0x00005b8a __mulsi3
- .text.libgcc 0x00005bc8 0x28
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
- 0x00005bc8 __udivmodhi4
- .text.libgcc 0x00005bf0 0x26
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
- 0x00005bf0 __divmodhi4
- 0x00005bf0 _div
- .text.libgcc 0x00005c16 0x44
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
- 0x00005c16 __udivmodsi4
- .text.libgcc 0x00005c5a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
- .text.libgcc 0x00005c5a 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
- .text.eeprom 0x00005c5a 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
- 0x00005c5a __eeprom_read_byte_1F2021
- .text.eeprom 0x00005c6a 0x18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
- 0x00005c6a __eeprom_write_byte_1F2021
- 0x00005c82 . = ALIGN (0x2)
+ .text.libgcc 0x00005cae 0x3e
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_mulsi3.o)
+ 0x00005cae __mulsi3
+ .text.libgcc 0x00005cec 0x28
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00005cec __udivmodhi4
+ .text.libgcc 0x00005d14 0x26
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x00005d14 __divmodhi4
+ 0x00005d14 _div
+ .text.libgcc 0x00005d3a 0x44
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00005d3a __udivmodsi4
+ .text.libgcc 0x00005d7e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00005d7e 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_clear_bss.o)
+ .text.eeprom 0x00005d7e 0x10
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_rb.1F2021.o)
+ 0x00005d7e __eeprom_read_byte_1F2021
+ .text.eeprom 0x00005d8e 0x18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(ee_wb.1F2021.o)
+ 0x00005d8e __eeprom_write_byte_1F2021
+ 0x00005da6 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x00005c82 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
- 0x00005c82 exit
- 0x00005c82 _exit
+ .fini9 0x00005da6 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ 0x00005da6 exit
+ 0x00005da6 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -631,11 +633,11 @@
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x00005c82 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
+ .fini0 0x00005da6 0x2
/sw/share/avr/lib/gcc/avr/4.2.0/avr5/libgcc.a(_exit.o)
*(.fini0)
- 0x00005c84 _etext = .
-
-.data 0x00800200 0x78 load address 0x00005c84
+ 0x00005da8 _etext = .
+
+.data 0x00800200 0x78 load address 0x00005da8
0x00800200 PROVIDE (__data_start, .)
*(.data)
.data 0x00800200 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
@@ -773,68 +775,67 @@
.bss 0x00800278 0x0
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
*(.bss*)
*(COMMON)
- COMMON 0x00800278 0x136 main.o
+ COMMON 0x00800278 0x13e main.o
0x00800278 app_timer0_callback
- 0x0080027a error_task
- 0x0080027b z_baseline
- 0x0080027d _nrk_time_trigger
- 0x0080027e TaskOne
- 0x008002a1 _nrk_signal_list
- 0x008002a5 Stack1
- 0x00800325 nrk_kernel_stk_ptr
- 0x00800327 y_baseline
- 0x00800329 x_baseline
- 0x0080032b app_timer0_prescale
- 0x0080032c _nrk_prev_timer_val
- 0x0080032d error_num
- 0x0080032e nrk_idle_task_stk
- COMMON 0x008003ae
0x2 ../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
- 0x008003ae is_open
- 0x008003af channel
- COMMON 0x008003b0
0x1b ../../../../src/radio/cc2420/source/basic_rf.o
- 0x008003b0 rx_ctr
- 0x008003b4 radio_sem
- 0x008003b6 security_enable
- 0x008003b7 mdmctrl0
- 0x008003b9 rfSettings
- 0x008003c2 tmp_blah
- 0x008003c4 auto_ack_enable
- 0x008003c5 last_pkt_encrypted
- 0x008003c6 tx_ctr
- 0x008003ca rx_ready
- COMMON 0x008003cb 0x6f ../../../../src/kernel/source/nrk.o
- 0x008003cb _free_node
- 0x008003cd nrk_task_TCB
- 0x0080040f next_next_wakeup
- 0x00800411 nrk_sem_list
- 0x00800417 nrk_task_init_cnt
- 0x00800418 nrk_wakeup_signal
- 0x00800419 nrk_high_ready_TCB
- 0x0080041b nrk_cur_task_prio
- 0x0080041c _nrk_cpu_state
- 0x0080041d _head_node
- 0x0080041f nrk_system_time
- 0x00800427 _nrk_resource_cnt
- 0x00800428 nrk_cur_task_TCB
- 0x0080042a nrk_high_ready_prio
- 0x0080042b _nrk_readyQ
- COMMON 0x0080043a
0x6 ../../../../src/kernel/source/nrk_driver.o
- 0x0080043a _nrk_driver_count
- 0x0080043b nrk_drivers
- 0x0080043f nrk_driver_init
- COMMON 0x00800440
0x8 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
- 0x00800440 ext_int1_callback
- 0x00800442 ext_int0_callback
- 0x00800444 ext_int2_callback
- 0x00800446 pc_int0_callback
+ 0x0080027a ext_int1_callback
+ 0x0080027c ext_int0_callback
+ 0x0080027e error_task
+ 0x0080027f z_baseline
+ 0x00800281 _nrk_time_trigger
+ 0x00800282 ext_int2_callback
+ 0x00800284 TaskOne
+ 0x008002a7 pc_int0_callback
+ 0x008002a9 _nrk_signal_list
+ 0x008002ad Stack1
+ 0x0080032d nrk_kernel_stk_ptr
+ 0x0080032f y_baseline
+ 0x00800331 x_baseline
+ 0x00800333 app_timer0_prescale
+ 0x00800334 _nrk_prev_timer_val
+ 0x00800335 error_num
+ 0x00800336 nrk_idle_task_stk
+ COMMON 0x008003b6
0x2 ../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ 0x008003b6 is_open
+ 0x008003b7 channel
+ COMMON 0x008003b8
0x1b ../../../../src/radio/cc2420/source/basic_rf.o
+ 0x008003b8 rx_ctr
+ 0x008003bc radio_sem
+ 0x008003be security_enable
+ 0x008003bf mdmctrl0
+ 0x008003c1 rfSettings
+ 0x008003ca tmp_blah
+ 0x008003cc auto_ack_enable
+ 0x008003cd last_pkt_encrypted
+ 0x008003ce tx_ctr
+ 0x008003d2 rx_ready
+ COMMON 0x008003d3 0x6f ../../../../src/kernel/source/nrk.o
+ 0x008003d3 _free_node
+ 0x008003d5 nrk_task_TCB
+ 0x00800417 next_next_wakeup
+ 0x00800419 nrk_sem_list
+ 0x0080041f nrk_task_init_cnt
+ 0x00800420 nrk_wakeup_signal
+ 0x00800421 nrk_high_ready_TCB
+ 0x00800423 nrk_cur_task_prio
+ 0x00800424 _nrk_cpu_state
+ 0x00800425 _head_node
+ 0x00800427 nrk_system_time
+ 0x0080042f _nrk_resource_cnt
+ 0x00800430 nrk_cur_task_TCB
+ 0x00800432 nrk_high_ready_prio
+ 0x00800433 _nrk_readyQ
+ COMMON 0x00800442
0x6 ../../../../src/kernel/source/nrk_driver.o
+ 0x00800442 _nrk_driver_count
+ 0x00800443 nrk_drivers
+ 0x00800447 nrk_driver_init
COMMON 0x00800448 0x6
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(iob.o)
0x00800448 __iob
COMMON 0x0080044e 0x4
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
0x0080044e __brkval
0x00800450 __flp
0x00800452 PROVIDE (__bss_end, .)
- 0x00005c84 __data_load_start = LOADADDR
(.data)
- 0x00005cfc __data_load_end =
(__data_load_start + SIZEOF (.data))
+ 0x00005da8 __data_load_start = LOADADDR
(.data)
+ 0x00005e20 __data_load_end =
(__data_load_start + SIZEOF (.data))
.noinit 0x00800452 0x0
0x00800452 PROVIDE (__noinit_start, .)
@@ -847,61 +848,61 @@
*(.eeprom*)
0x00810000 __eeprom_end = .
-.stab 0x00000000 0xbe20
+.stab 0x00000000 0xc03c
*(.stab)
- .stab 0x00000000 0xb88 main.o
- .stab 0x00000b88
0x8e8 ../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
+ .stab 0x00000000 0xd44 main.o
+ .stab 0x00000d44
0x8e8 ../../../../src/drivers/platform/firefly2_2/source/ff_basic_sensor.o
0xc54 (size before relaxing)
- .stab 0x00001470
0x210 ../../../../src/radio/cc2420/source/hal_rf_set_channel.o
+ .stab 0x0000162c
0x210 ../../../../src/radio/cc2420/source/hal_rf_set_channel.o
0x510 (size before relaxing)
- .stab 0x00001680
0x210 ../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
+ .stab 0x0000183c
0x210 ../../../../src/radio/cc2420/source/hal_rf_wait_for_crystal_oscillator.o
0x510 (size before relaxing)
- .stab 0x00001890
0x1c74 ../../../../src/radio/cc2420/source/basic_rf.o
+ .stab 0x00001a4c
0x1c74 ../../../../src/radio/cc2420/source/basic_rf.o
0x2028 (size before relaxing)
- .stab 0x00003504
0xfc0 ../../../../src/platform/firefly2_2/source/ulib.o
+ .stab 0x000036c0
0xfc0 ../../../../src/platform/firefly2_2/source/ulib.o
0x1314 (size before relaxing)
- .stab 0x000044c4
0x1f8 ../../../../src/platform/firefly2_2/source/hal_wait.o
+ .stab 0x00004680
0x1f8 ../../../../src/platform/firefly2_2/source/hal_wait.o
0x4f8 (size before relaxing)
- .stab 0x000046bc
0xb10 ../../../../src/platform/firefly2_2/source/nrk_eeprom.o
+ .stab 0x00004878
0xb10 ../../../../src/platform/firefly2_2/source/nrk_eeprom.o
0xe10 (size before relaxing)
- .stab 0x000051cc 0x8ac ../../../../src/kernel/source/nrk.o
+ .stab 0x00005388 0x8ac ../../../../src/kernel/source/nrk.o
0xc6c (size before relaxing)
- .stab 0x00005a78
0x270 ../../../../src/kernel/source/nrk_stats.o
+ .stab 0x00005c34
0x270 ../../../../src/kernel/source/nrk_stats.o
0x648 (size before relaxing)
- .stab 0x00005ce8
0x75c ../../../../src/kernel/source/nrk_error.o
+ .stab 0x00005ea4
0x75c ../../../../src/kernel/source/nrk_error.o
0xb4c (size before relaxing)
- .stab 0x00006444
0x420 ../../../../src/kernel/source/nrk_stack_check.o
+ .stab 0x00006600
0x420 ../../../../src/kernel/source/nrk_stack_check.o
0x7f8 (size before relaxing)
- .stab 0x00006864
0xdb0 ../../../../src/kernel/source/nrk_events.o
+ .stab 0x00006a20
0xdb0 ../../../../src/kernel/source/nrk_events.o
0x1164 (size before relaxing)
- .stab 0x00007614
0xf30 ../../../../src/kernel/source/nrk_task.o
+ .stab 0x000077d0
0xf30 ../../../../src/kernel/source/nrk_task.o
0x12e4 (size before relaxing)
- .stab 0x00008544
0x6c0 ../../../../src/kernel/source/nrk_time.o
+ .stab 0x00008700
0x6c0 ../../../../src/kernel/source/nrk_time.o
0xa5c (size before relaxing)
- .stab 0x00008c04
0x2dc ../../../../src/kernel/source/nrk_idle_task.o
+ .stab 0x00008dc0
0x2dc ../../../../src/kernel/source/nrk_idle_task.o
0x6cc (size before relaxing)
- .stab 0x00008ee0
0x6b4 ../../../../src/kernel/source/nrk_scheduler.o
+ .stab 0x0000909c
0x6b4 ../../../../src/kernel/source/nrk_scheduler.o
0xa68 (size before relaxing)
- .stab 0x00009594
0x690 ../../../../src/kernel/source/nrk_driver.o
+ .stab 0x00009750
0x690 ../../../../src/kernel/source/nrk_driver.o
0xa68 (size before relaxing)
- .stab 0x00009c24
0xe4 ../../../../src/kernel/source/nrk_reserve.o
+ .stab 0x00009de0
0xe4 ../../../../src/kernel/source/nrk_reserve.o
0xf0 (size before relaxing)
- .stab 0x00009d08
0xc9c ../../../../src/kernel/hal/atmega1281/nrk_timer.o
+ .stab 0x00009ec4
0xc9c ../../../../src/kernel/hal/atmega1281/nrk_timer.o
0xfcc (size before relaxing)
- .stab 0x0000a9a4
0x60c ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
- 0x924 (size before relaxing)
- .stab 0x0000afb0
0x210 ../../../../src/kernel/hal/atmega1281/nrk_status.o
+ .stab 0x0000ab60
0x66c ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ 0x984 (size before relaxing)
+ .stab 0x0000b1cc
0x210 ../../../../src/kernel/hal/atmega1281/nrk_status.o
0x510 (size before relaxing)
- .stab 0x0000b1c0
0x378 ../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
+ .stab 0x0000b3dc
0x378 ../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
0x714 (size before relaxing)
- .stab 0x0000b538
0x6e4 ../../../../src/kernel/hal/atmega1281/nrk_cpu.o
+ .stab 0x0000b754
0x6e4 ../../../../src/kernel/hal/atmega1281/nrk_cpu.o
0xa98 (size before relaxing)
- .stab 0x0000bc1c
0x204 ../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
+ .stab 0x0000be38
0x204 ../../../../src/kernel/hal/atmega1281/atmel_hw_specific.o
0x210 (size before relaxing)
-.stabstr 0x00000000 0x4bba
+.stabstr 0x00000000 0x4c59
*(.stabstr)
- .stabstr 0x00000000 0x4bba main.o
+ .stabstr 0x00000000 0x4c59 main.o
.stab.excl
*(.stab.excl)
@@ -976,7 +977,9 @@
main.o
NRK_DEBUG_1 ../../../../src/platform/firefly2_2/source/ulib.o
NRK_DEBUG_2 ../../../../src/platform/firefly2_2/source/ulib.o
+ main.o
NRK_DEBUG_3 ../../../../src/platform/firefly2_2/source/ulib.o
+ main.o
NRK_FIFOP ../../../../src/platform/firefly2_2/source/ulib.o
NRK_GPIO26 ../../../../src/platform/firefly2_2/source/ulib.o
NRK_GPIO34 ../../../../src/platform/firefly2_2/source/ulib.o
@@ -1121,7 +1124,8 @@
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
__vector_18
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
__vector_19
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
-__vector_2
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
+__vector_2 ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
__vector_20
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
__vector_21
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
__vector_22
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
@@ -1355,8 +1359,11 @@
main.o
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/crtm1281.o
ext_int0_callback ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ main.o
ext_int1_callback ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ main.o
ext_int2_callback ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ main.o
fdevopen
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fdevopen.o)
../../../../src/platform/firefly2_2/source/ulib.o
fputc
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
@@ -1383,6 +1390,8 @@
mdmctrl0 ../../../../src/radio/cc2420/source/basic_rf.o
memset
/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)
+monome_draw main.o
+monome_erase main.o
monome_move main.o
next_next_wakeup ../../../../src/kernel/source/nrk_driver.o
../../../../src/kernel/source/nrk_scheduler.o
@@ -1429,8 +1438,10 @@
nrk_event_signal ../../../../src/kernel/source/nrk_events.o
nrk_event_wait ../../../../src/kernel/source/nrk_events.o
nrk_ext_int_configure ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ main.o
nrk_ext_int_disable ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
nrk_ext_int_enable ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ main.o
nrk_get_button ../../../../src/platform/firefly2_2/source/ulib.o
nrk_get_high_ready_task_ID ../../../../src/kernel/source/nrk_task.o
../../../../src/kernel/source/nrk_scheduler.o
@@ -1444,6 +1455,7 @@
nrk_gpio_direction ../../../../src/platform/firefly2_2/source/ulib.o
main.o
nrk_gpio_get ../../../../src/platform/firefly2_2/source/ulib.o
+ main.o
nrk_gpio_pullups ../../../../src/platform/firefly2_2/source/ulib.o
nrk_gpio_set ../../../../src/platform/firefly2_2/source/ulib.o
main.o
@@ -1649,6 +1661,7 @@
nrk_watchdog_reset ../../../../src/kernel/hal/atmega1281/nrk_watchdog.o
nrk_write ../../../../src/kernel/source/nrk_driver.o
pc_int0_callback ../../../../src/kernel/hal/atmega1281/nrk_ext_int.o
+ main.o
printf
/sw/share/avr/lib/gcc/avr/4.2.0/../../../../avr/lib/avr5/libc.a(printf.o)
../../../../src/kernel/source/nrk_stack_check.o
../../../../src/kernel/source/nrk_error.o
=======================================
--- /trunk/monome/controller_basic/main.sym Sun Dec 5 11:03:55 2010
+++ /trunk/monome/controller_basic/main.sym Sat Dec 11 12:34:39 2010
@@ -159,8 +159,8 @@
000000cc T __ctors_start
000000cc T __dtors_end
000000cc T __dtors_start
-000000f0 t __c.2406
-0000010f t __c.2358
+000000f0 t __c.2427
+0000010f t __c.2379
0000012e t __c.2728
0000015b t __c.2666
00000187 t __c.2376
@@ -198,7 +198,6 @@
0000039c W __vector_16
0000039c W __vector_18
0000039c W __vector_19
-0000039c W __vector_2
0000039c W __vector_20
0000039c W __vector_21
0000039c W __vector_22
@@ -235,220 +234,223 @@
0000039c W __vector_6
0000039c W __vector_7
0000039c W __vector_8
-000003a0 T monome_move
-000003ce T nrk_register_drivers
-000003e6 T nrk_create_taskset
-0000049e T Task1
-000006ae T main
-0000070e T init_adc
-0000073a T delay
-00000744 T get_adc_val
-00000770 T read_voltage_status
-0000089e T dev_manager_ff_sensors
-00000a90 T halRfSetChannel
-00000ace T halRfWaitForCrystalOscillator
-00000ae6 T rf_security_last_pkt_status
-00000aee T rf_security_set_ctr_counter
-00000b7c T rf_security_enable
-00000bc8 T rf_security_disable
-00000bf0 T rf_get_sem
-00000bfa T rf_addr_decode_enable
-00000c30 T rf_addr_decode_disable
-00000c66 T rf_auto_ack_enable
-00000ca2 T rf_auto_ack_disable
-00000cdc T rf_busy
-00000cf0 T rf_rx_check_fifop
-00000d02 T rf_rx_check_sfd
-00000d16 T rf_rx_packet
-00000d34 T rf_flush_rx_fifo
-00000d52 T rf_carrier_off
-00000d7a T rf_carrier_on
-00000da2 T rf_data_mode
-00000e0c T rf_test_mode
-00000e7a T rf_set_cca_thresh
-00000ecc T rf_polling_rx_packet
-0000137a T rf_rx_off
-000013aa T rf_polling_rx_on
-000013ea T rf_rx_on
-0000142a T rf_tx_power
-00001478 T rf_tx_packet
-000017d6 T rf_tx_tdma_packet
-00001b06 T rf_addr_decode_set_my_mac
-00001b7c T rf_security_set_key
-00001d56 T rf_set_rx
-00001daa T rf_set_channel
-00001dd0 T rf_init
-00001fcc T nrk_uart_rx_signal_get
-00001fd2 T nrk_uart_data_ready
-00002008 T getc1
-00002022 T PORT_INIT
-0000204c T nrk_setup_ports
-0000205a T nrk_gpio_set
-00002164 T nrk_gpio_clr
+000003a0 T monome_erase
+000003d4 T monome_draw
+00000408 T monome_move
+00000436 T nrk_register_drivers
+0000044e T nrk_create_taskset
+00000506 T Task1
+00000722 T main
+000007d6 T init_adc
+00000802 T delay
+0000080c T get_adc_val
+00000838 T read_voltage_status
+00000966 T dev_manager_ff_sensors
+00000b58 T halRfSetChannel
+00000b96 T halRfWaitForCrystalOscillator
+00000bae T rf_security_last_pkt_status
+00000bb6 T rf_security_set_ctr_counter
+00000c44 T rf_security_enable
+00000c90 T rf_security_disable
+00000cb8 T rf_get_sem
+00000cc2 T rf_addr_decode_enable
+00000cf8 T rf_addr_decode_disable
+00000d2e T rf_auto_ack_enable
+00000d6a T rf_auto_ack_disable
+00000da4 T rf_busy
+00000db8 T rf_rx_check_fifop
+00000dca T rf_rx_check_sfd
+00000dde T rf_rx_packet
+00000dfc T rf_flush_rx_fifo
+00000e1a T rf_carrier_off
+00000e42 T rf_carrier_on
+00000e6a T rf_data_mode
+00000ed4 T rf_test_mode
+00000f42 T rf_set_cca_thresh
+00000f94 T rf_polling_rx_packet
+00001442 T rf_rx_off
+00001472 T rf_polling_rx_on
+000014b2 T rf_rx_on
+000014f2 T rf_tx_power
+00001540 T rf_tx_packet
+0000189e T rf_tx_tdma_packet
+00001bce T rf_addr_decode_set_my_mac
+00001c44 T rf_security_set_key
+00001e1e T rf_set_rx
+00001e72 T rf_set_channel
+00001e98 T rf_init
+00002094 T nrk_uart_rx_signal_get
+0000209a T nrk_uart_data_ready
+000020d0 T getc1
+000020ea T PORT_INIT
+00002114 T nrk_setup_ports
+00002122 T nrk_gpio_set
000021ff W __stack
-0000227c T nrk_gpio_get
-000022f0 T nrk_gpio_toggle
-00002502 T nrk_gpio_direction
-00002732 T nrk_get_button
-00002752 T nrk_led_toggle
-0000278c T nrk_led_clr
-000027c6 T nrk_led_set
-00002800 T nrk_gpio_pullups
-00002816 T putc0
-00002830 T putc1
-00002840 T setup_uart0
-0000286e T setup_uart1
-0000289c T getc0
-000028b6 T nrk_setup_uart
-000028f8 T nrk_kprintf
-0000291e T halWait
-0000292c T read_eeprom_current_image_checksum
-00002940 T write_eeprom_current_image_checksum
-00002954 T nrk_eeprom_read_byte
-00002960 T read_eeprom_mac_address
-000029b2 T read_eeprom_channel
-000029c6 T read_eeprom_load_img_pages
-000029da T read_eeprom_aes_key
-00002a02 T nrk_eeprom_write_byte
-00002a0c T write_eeprom_load_img_pages
-00002a20 T write_eeprom_aes_key
-00002a48 T nrk_int_disable
-00002a4c T nrk_int_enable
-00002a50 T nrk_version
-00002a56 T _nrk_timer_tick
-00002a5c T nrk_TCB_init
-00002cac T nrk_start
-00002d6c T nrk_init
-00002e9a T nrk_halt
-00002e9e T _nrk_errno_set
-00002eaa T nrk_errno_get
-00002eb8 T nrk_error_get
-00002ed8 T nrk_error_print
-00003028 T nrk_kernel_error_add
-00003036 T nrk_error_add
-0000304e T nrk_stack_check_pid
-00003098 T dump_stack_info
-000031f0 T nrk_stack_check
-00003236 T nrk_signal_create
-000032b0 T nrk_signal_get_registered_mask
-000032c2 T nrk_signal_unregister
-00003348 T nrk_signal_register
-000033ba T nrk_sem_create
-00003410 T nrk_get_resource_index
-00003432 T nrk_sem_delete
-00003478 T nrk_sem_query
-000034b0 T nrk_sem_post
-000035b6 T nrk_event_signal
-00003696 T nrk_signal_delete
-0000387a T nrk_sem_pend
-00003922 T nrk_event_wait
-00003998 T nrk_get_high_ready_task_ID
-000039a6 T nrk_print_readyQ
-000039bc T nrk_add_to_readyQ
-00003aca T nrk_rem_from_readyQ
-00003b6e T nrk_get_pid
-00003b7c T _nrk_wait_for_scheduler
-00003b90 T nrk_wait
-00003c4a T nrk_wait_until
-00003cfa T nrk_wait_until_nw
-00003d48 T nrk_set_next_wakeup
-00003dc4 T nrk_wait_until_ticks
-00003e1a T nrk_wait_ticks
-00003e88 T nrk_wait_until_next_n_periods
-00003eee T nrk_wait_until_next_period
-00003f46 T nrk_terminate_task
-00003f6a T nrk_activate_task
-00004016 T nrk_time_sub
-00004134 T nrk_time_compact_nanos
-00004178 T nrk_time_add
-00004232 T nrk_time_set
-00004254 T _nrk_time_to_ticks
-00004358 T _nrk_ticks_to_time
-00004410 T _nrk_time_to_ticks_long
-00004520 T nrk_time_get
-000045d6 T nrk_idle_task
-0000461e T _nrk_scheduler
-00004a0e T nrk_register_driver
-00004a48 T nrk_open
-00004aea T nrk_get_status
-00004b2e T nrk_set_status
-00004b72 T nrk_read
-00004bb6 T nrk_write
-00004bfa T nrk_close
-00004c40 T nrk_spin_wait_us
-00004c4e T _nrk_high_speed_timer_stop
-00004c54 T _nrk_high_speed_timer_start
-00004c5c T _nrk_high_speed_timer_reset
-00004c6c T _nrk_high_speed_timer_get
-00004ca2 T _nrk_os_timer_stop
-00004cb8 T _nrk_os_timer_set
-00004cbe T _nrk_os_timer_start
-00004cd0 T _nrk_os_timer_reset
-00004ce4 T _nrk_get_next_wakeup
-00004cee T _nrk_set_next_wakeup
-00004cf6 T nrk_timer_int_stop
-00004d04 T nrk_timer_int_reset
-00004d1c T nrk_timer_int_read
-00004d30 T nrk_timer_int_start
-00004d46 T nrk_timer_int_configure
-00004dcc T _nrk_os_timer_get
-00004dd4 T __vector_13
-00004dd4 T __vector_15
-00004e3a T __vector_17
-00004e4e T __vector_32
-00004eaa T __vector_default
-00004ed6 T nrk_high_speed_timer_wait
-00004f62 T _nrk_setup_timer
-00004fd8 T nrk_ext_int_enable
-00005066 T nrk_ext_int_disable
-000050f0 T nrk_ext_int_configure
-00005212 T __vector_1
-0000526e T __vector_9
-000052ca T _nrk_startup_ok
-000052de T update_watchdog
-000052e0 T nrk_watchdog_check
-000052f2 T nrk_watchdog_reset
-000052f6 T nrk_watchdog_disable
-00005314 T nrk_watchdog_enable
-00005334 T nrk_battery_save
-00005336 T nrk_sleep
-0000534e T nrk_idle
-00005364 T nrk_task_set_entry_function
-0000536c T nrk_task_stk_init
-000053e8 T nrk_stack_pointer_init
-0000540a T nrk_stack_pointer_restore
-0000541c T nrk_target_start
-00005426 T nrk_task_set_stk
-00005464 T nrk_start_high_ready_task
-000054ba T vfprintf
-00005806 T strlen_P
-00005818 T fdevopen
-000058b8 T fputc
-00005912 T printf
-00005952 T calloc
-0000598a T malloc
-00005ad0 T free
-00005b7c T memset
-00005b8a T __mulsi3
-00005bc8 T __udivmodhi4
-00005bd0 t __udivmodhi4_loop
-00005bde t __udivmodhi4_ep
-00005bf0 T __divmodhi4
-00005bf0 T _div
-00005c04 t __divmodhi4_neg2
-00005c0a t __divmodhi4_exit
-00005c0c t __divmodhi4_neg1
-00005c16 T __udivmodsi4
-00005c22 t __udivmodsi4_loop
-00005c3c t __udivmodsi4_ep
-00005c5a T __eeprom_read_byte_1F2021
-00005c6a T __eeprom_write_byte_1F2021
-00005c82 t __stop_program
-00005c82 T _exit
-00005c82 W exit
-00005c84 A __data_load_start
-00005c84 T _etext
-00005cfc A __data_load_end
+0000222c T nrk_gpio_clr
+00002344 T nrk_gpio_get
+000023b8 T nrk_gpio_toggle
+000025ca T nrk_gpio_direction
+000027fa T nrk_get_button
+0000281a T nrk_led_toggle
+00002854 T nrk_led_clr
+0000288e T nrk_led_set
+000028c8 T nrk_gpio_pullups
+000028de T putc0
+000028f8 T putc1
+00002908 T setup_uart0
+00002936 T setup_uart1
+00002964 T getc0
+0000297e T nrk_setup_uart
+000029c0 T nrk_kprintf
+000029e6 T halWait
+000029f4 T read_eeprom_current_image_checksum
+00002a08 T write_eeprom_current_image_checksum
+00002a1c T nrk_eeprom_read_byte
+00002a28 T read_eeprom_mac_address
+00002a7a T read_eeprom_channel
+00002a8e T read_eeprom_load_img_pages
+00002aa2 T read_eeprom_aes_key
+00002aca T nrk_eeprom_write_byte
+00002ad4 T write_eeprom_load_img_pages
+00002ae8 T write_eeprom_aes_key
+00002b10 T nrk_int_disable
+00002b14 T nrk_int_enable
+00002b18 T nrk_version
+00002b1e T _nrk_timer_tick
+00002b24 T nrk_TCB_init
+00002d74 T nrk_start
+00002e34 T nrk_init
+00002f62 T nrk_halt
+00002f66 T _nrk_errno_set
+00002f72 T nrk_errno_get
+00002f80 T nrk_error_get
+00002fa0 T nrk_error_print
+000030f0 T nrk_kernel_error_add
+000030fe T nrk_error_add
+00003116 T nrk_stack_check_pid
+00003160 T dump_stack_info
+000032b8 T nrk_stack_check
+000032fe T nrk_signal_create
+00003378 T nrk_signal_get_registered_mask
+0000338a T nrk_signal_unregister
+00003410 T nrk_signal_register
+00003482 T nrk_sem_create
+000034d8 T nrk_get_resource_index
+000034fa T nrk_sem_delete
+00003540 T nrk_sem_query
+00003578 T nrk_sem_post
+0000367e T nrk_event_signal
+0000375e T nrk_signal_delete
+00003942 T nrk_sem_pend
+000039ea T nrk_event_wait
+00003a60 T nrk_get_high_ready_task_ID
+00003a6e T nrk_print_readyQ
+00003a84 T nrk_add_to_readyQ
+00003b92 T nrk_rem_from_readyQ
+00003c36 T nrk_get_pid
+00003c44 T _nrk_wait_for_scheduler
+00003c58 T nrk_wait
+00003d12 T nrk_wait_until
+00003dc2 T nrk_wait_until_nw
+00003e10 T nrk_set_next_wakeup
+00003e8c T nrk_wait_until_ticks
+00003ee2 T nrk_wait_ticks
+00003f50 T nrk_wait_until_next_n_periods
+00003fb6 T nrk_wait_until_next_period
+0000400e T nrk_terminate_task
+00004032 T nrk_activate_task
+000040de T nrk_time_sub
+000041fc T nrk_time_compact_nanos
+00004240 T nrk_time_add
+000042fa T nrk_time_set
+0000431c T _nrk_time_to_ticks
+00004420 T _nrk_ticks_to_time
+000044d8 T _nrk_time_to_ticks_long
+000045e8 T nrk_time_get
+0000469e T nrk_idle_task
+000046e6 T _nrk_scheduler
+00004ad6 T nrk_register_driver
+00004b10 T nrk_open
+00004bb2 T nrk_get_status
+00004bf6 T nrk_set_status
+00004c3a T nrk_read
+00004c7e T nrk_write
+00004cc2 T nrk_close
+00004d08 T nrk_spin_wait_us
+00004d16 T _nrk_high_speed_timer_stop
+00004d1c T _nrk_high_speed_timer_start
+00004d24 T _nrk_high_speed_timer_reset
+00004d34 T _nrk_high_speed_timer_get
+00004d6a T _nrk_os_timer_stop
+00004d80 T _nrk_os_timer_set
+00004d86 T _nrk_os_timer_start
+00004d98 T _nrk_os_timer_reset
+00004dac T _nrk_get_next_wakeup
+00004db6 T _nrk_set_next_wakeup
+00004dbe T nrk_timer_int_stop
+00004dcc T nrk_timer_int_reset
+00004de4 T nrk_timer_int_read
+00004df8 T nrk_timer_int_start
+00004e0e T nrk_timer_int_configure
+00004e94 T _nrk_os_timer_get
+00004e9c T __vector_13
+00004e9c T __vector_15
+00004f02 T __vector_17
+00004f16 T __vector_32
+00004f72 T __vector_default
+00004f9e T nrk_high_speed_timer_wait
+0000502a T _nrk_setup_timer
+000050a0 T nrk_ext_int_enable
+0000512e T nrk_ext_int_disable
+000051b8 T nrk_ext_int_configure
+000052da T __vector_2
+00005336 T __vector_1
+00005392 T __vector_9
+000053ee T _nrk_startup_ok
+00005402 T update_watchdog
+00005404 T nrk_watchdog_check
+00005416 T nrk_watchdog_reset
+0000541a T nrk_watchdog_disable
+00005438 T nrk_watchdog_enable
+00005458 T nrk_battery_save
+0000545a T nrk_sleep
+00005472 T nrk_idle
+00005488 T nrk_task_set_entry_function
+00005490 T nrk_task_stk_init
+0000550c T nrk_stack_pointer_init
+0000552e T nrk_stack_pointer_restore
+00005540 T nrk_target_start
+0000554a T nrk_task_set_stk
+00005588 T nrk_start_high_ready_task
+000055de T vfprintf
+0000592a T strlen_P
+0000593c T fdevopen
+000059dc T fputc
+00005a36 T printf
+00005a76 T calloc
+00005aae T malloc
+00005bf4 T free
+00005ca0 T memset
+00005cae T __mulsi3
+00005cec T __udivmodhi4
+00005cf4 t __udivmodhi4_loop
+00005d02 t __udivmodhi4_ep
+00005d14 T __divmodhi4
+00005d14 T _div
+00005d28 t __divmodhi4_neg2
+00005d2e t __divmodhi4_exit
+00005d30 t __divmodhi4_neg1
+00005d3a T __udivmodsi4
+00005d46 t __udivmodsi4_loop
+00005d60 t __udivmodsi4_ep
+00005d7e T __eeprom_read_byte_1F2021
+00005d8e T __eeprom_write_byte_1F2021
+00005da6 t __stop_program
+00005da6 T _exit
+00005da6 W exit
+00005da8 A __data_load_start
+00005da8 T _etext
+00005e20 A __data_load_end
00800200 D NRK_DEBUG_0
00800200 D __data_start
00800201 D NRK_DEBUG_1
@@ -490,53 +492,53 @@
00800278 D __data_end
00800278 D _edata
00800278 B app_timer0_callback
-0080027a B error_task
-0080027b B z_baseline
-0080027d B _nrk_time_trigger
-0080027e B TaskOne
-008002a1 B _nrk_signal_list
-008002a5 B Stack1
-00800325 B nrk_kernel_stk_ptr
-00800327 B y_baseline
-00800329 B x_baseline
-0080032b B app_timer0_prescale
-0080032c B _nrk_prev_timer_val
-0080032d B error_num
-0080032e B nrk_idle_task_stk
-008003ae B is_open
-008003af B channel
-008003b0 B rx_ctr
-008003b4 B radio_sem
-008003b6 B security_enable
-008003b7 B mdmctrl0
-008003b9 B rfSettings
-008003c2 B tmp_blah
-008003c4 B auto_ack_enable
-008003c5 B last_pkt_encrypted
-008003c6 B tx_ctr
-008003ca B rx_ready
-008003cb B _free_node
-008003cd B nrk_task_TCB
-0080040f B next_next_wakeup
-00800411 B nrk_sem_list
-00800417 B nrk_task_init_cnt
-00800418 B nrk_wakeup_signal
-00800419 B nrk_high_ready_TCB
-0080041b B nrk_cur_task_prio
-0080041c B _nrk_cpu_state
-0080041d B _head_node
-0080041f B nrk_system_time
-00800427 B _nrk_resource_cnt
-00800428 B nrk_cur_task_TCB
-0080042a B nrk_high_ready_prio
-0080042b B _nrk_readyQ
-0080043a B _nrk_driver_count
-0080043b B nrk_drivers
-0080043f B nrk_driver_init
-00800440 B ext_int1_callback
-00800442 B ext_int0_callback
-00800444 B ext_int2_callback
-00800446 B pc_int0_callback
+0080027a B ext_int1_callback
+0080027c B ext_int0_callback
+0080027e B error_task
+0080027f B z_baseline
+00800281 B _nrk_time_trigger
+00800282 B ext_int2_callback
+00800284 B TaskOne
+008002a7 B pc_int0_callback
+008002a9 B _nrk_signal_list
+008002ad B Stack1
+0080032d B nrk_kernel_stk_ptr
+0080032f B y_baseline
+00800331 B x_baseline
+00800333 B app_timer0_prescale
+00800334 B _nrk_prev_timer_val
+00800335 B error_num
+00800336 B nrk_idle_task_stk
+008003b6 B is_open
+008003b7 B channel
+008003b8 B rx_ctr
+008003bc B radio_sem
+008003be B security_enable
+008003bf B mdmctrl0
+008003c1 B rfSettings
+008003ca B tmp_blah
+008003cc B auto_ack_enable
+008003cd B last_pkt_encrypted
+008003ce B tx_ctr
+008003d2 B rx_ready
+008003d3 B _free_node
+008003d5 B nrk_task_TCB
+00800417 B next_next_wakeup
+00800419 B nrk_sem_list
+0080041f B nrk_task_init_cnt
+00800420 B nrk_wakeup_signal
+00800421 B nrk_high_ready_TCB
+00800423 B nrk_cur_task_prio
+00800424 B _nrk_cpu_state
+00800425 B _head_node
+00800427 B nrk_system_time
+0080042f B _nrk_resource_cnt
+00800430 B nrk_cur_task_TCB
+00800432 B nrk_high_ready_prio
+00800433 B _nrk_readyQ
+00800442 B _nrk_driver_count
+00800443 B nrk_drivers
+00800447 B nrk_driver_init
00800448 B __iob
0080044e B __brkval
00800450 B __flp