From 4f0a0c5eec3e954b6f4bfbfc0c303b8d6a87ac0c Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Tue, 5 Nov 2013 17:09:48 +0000 Subject: [PATCH] 20131105-181001 --- Mainboard/Mainboard.atsuo | Bin 13824 -> 13824 bytes Mainboard/Mainboard/Can.cpp | 85 +- Mainboard/Mainboard/Debug/Mainboard.d | 12 + Mainboard/Mainboard/Debug/Mainboard.elf | Bin 22697 -> 25502 bytes Mainboard/Mainboard/Debug/Mainboard.hex | 144 +- Mainboard/Mainboard/Debug/Mainboard.lss | 1380 ++++++++++------- Mainboard/Mainboard/Debug/Mainboard.map | 291 ++-- Mainboard/Mainboard/Debug/Mainboard.srec | 144 +- Mainboard/Mainboard/Debug/Makefile | 17 +- .../Mainboard/Debug/{rs232.d => Rs232.d} | 39 +- Mainboard/Mainboard/Debug/makedep.mk | 2 + Mainboard/Mainboard/Mainboard.cpp | 25 +- Mainboard/Mainboard/Mainboard.cppproj | 81 +- Mainboard/Mainboard/Rs232.cpp | 34 + Mainboard/Mainboard/Rs232.h | 28 + Mainboard/Mainboard/config.h | 1 + Mainboard/Mainboard/rs232.h | 16 - 17 files changed, 1374 insertions(+), 925 deletions(-) rename Mainboard/Mainboard/Debug/{rs232.d => Rs232.d} (67%) create mode 100644 Mainboard/Mainboard/Rs232.cpp create mode 100644 Mainboard/Mainboard/Rs232.h delete mode 100644 Mainboard/Mainboard/rs232.h diff --git a/Mainboard/Mainboard.atsuo b/Mainboard/Mainboard.atsuo index b7d3e5df1cdfbbc85336167c2f577534b3439222..cd93d355a0665e7142c6a525403d0a352f2d1ca6 100644 GIT binary patch delta 343 zcmZq3X~@}-!@|4Z^6}^EZ=PdhW?*1wm|V$nnnMA|0`Vrxn`lgK;9%KY!K%WsKFowYoC|3fM zEn`Rp@{Aeu7)*fJ2#75h%o)spVu?VxA|OwfAsuK&DUdF~VlqTk4A3NhpqdhfoXPA4 zHk=G{Ko=?kG1!|W2L2HL2th?Qe=+c3*3APtF$btA1?+@kpym{yG5J6zWH7M$JbYU* WOaJ6I4Wp9CstLJ4n*~fJGXekzCRY~# delta 174 zcmZq3X~@}-!@_%E-QC|+H_tILGcYhXOs-@(%^?qDfq0YW8!1jsU}2x!z`?S)f>niy z<=_AR|0geCSDBo_WV4CGS$^_i7DLt~pwh*YE7iR?8RdXXMI@bUsX)$rhRwg!+t?;I z7%!ffz&m+^s=(w1z4?I8SyKFq~Xs;LpjR08}c3q<8Zd10Uwi6HE#iCr>a5 F007~sHFN*~ diff --git a/Mainboard/Mainboard/Can.cpp b/Mainboard/Mainboard/Can.cpp index dbb32a1..5f12a62 100644 --- a/Mainboard/Mainboard/Can.cpp +++ b/Mainboard/Mainboard/Can.cpp @@ -22,15 +22,25 @@ #define CANP_RST PIND6 Can::Can() { - Led(0).color(Led::GREEN); - _delay_ms(100); - Led(0).color(Led::BLACK); - _delay_ms(100); + _delay_ms(10); init_pin(); init_spi(); init_can(); } +uint8_t Can::spi_putc( uint8_t data ) { + // Sendet ein Byte + SPDR = data; + + // Wartet bis Byte gesendet wurde + Led(0).color(Led::MAGENTA); + loop_until_bit_is_set(SPSR, SPIF); + //_delay_us(100); + Led(0).color(Led::BLACK); + + return SPDR; +} + void Can::init_pin() { //SPI Pins CANDDR_SPI |= (1<nP$~}dQXxiKW(galqJyI6OZ|PtwEM(8A&n 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 literal 22697 zcmd^n3wTx4o$p$EpL0k^I0=Mj2zd}dkdTn@j-Uw;c@!<92xuuMCpjm{k-SV!P^cpj z6%`Q(0qX>{6ymRNUo1+6E9Qy` zB2USW8w1>5aCHm=)0S~(h@fA|fK-U!I$Ta21_#l|bB~`Va*uES4~?(L@v}<4dHS7K zhJO037r#|DbpOy}L-Ls!#~xVt)iFPNKY!@CH(wqKJu~yOe~{7RugPbZ{b0=Z-j5!C zN#-7Z9Z`rIA3M-^;}bVMcKyDao|tua#ob%)-g)Pd*H8Xhe)iq>#WSdnyKO4#MA1`K z?_B@(@u9NK{dGs{ex`J8_{E{8vrd!@o*sN{P`oT&E;;t%H-7q!$yM>8mt^>k=<#P| z@zYiBEPCr!SS_sU_pBNr4Jqk;@07o_VrXD{I_{W z&A-@3GSXi*{?gO?W#gM38frAsp}3EleAMitgpZOwYVlF4kJ?eY%9o)I50wtpz1^ko z?*(fos7vuOd&D8x1gUPVk-aErt&y_lk<%4|*B*5(l5Dl01#Wz-zw^c?vQ9*gKP|IP z-1OLyt8PM{ZaUGD*LYpq{3IkTL)Q-tpiQ2YXHIMMZP~9lx5DD>yfY=?qrV#%T9AGG zgX3pT>*rmFqhddvZ$A48#77awBlaUQOh=q07AZUz*Bcemm$evqOjs+H2o5U@YsFHL zr6KS#k?Z5-BHza=#6%z0im5(6PZarhr6~3BD)^zpT5&!`JA*F}6+W&L3w>Pgd$(4s z7R!D98nM#HYek)p8{n%BYsH0Py^q(4O+H>PHv4#k*y7`jV!Mw&A$It9lW6quMXG*D zt`!%HHlP1V(eC5TqT9!RA<{m+#KMg?CxF-NGFf?zC{1g}W_$m4$mO+-u>q zh5IbL+rn2{_!SI%jTXMi!UrsTvxRT5 z@U0d;XyMx|e8|GLTllbrk68Gqg$FEr%))~fK5pR?7QVy6pSAFv7QV~EcU$-#3!k*` zDGT3g;rlFnzlA?%;Rh`IR~CNI!hdby&s+El7JkUWe`Dc?E&N3bKVso8S@_Eq{)&Yk zweVvW{;Gw)=3|b>9HY7rXJH}rs6SqP$3x@`YhL(~*zN25SX|@dpNPFaepOuS<9`y@ z`S>-_@8h}hAs^3^j}TX-JG!fyo3}M@UcWA0*(-K;r4qI2>Q&Vu7TcX{PIvY6)?Qc* zwWhvQd!p*fWaq9_XK&TjT|K*cyW`Ets`&1n5I;AG$$!<&&2~7HS3+(i~rjz>$$g`028x-M!~2PS#FvLQWVJ zEZmnUy><%)&X`+4IHB;1RK8D{bx;r*b0Y;=VOE)wHD({E@TO!!$k4d|1{`@Fm(V0a zyii5Xp+l23B_m~|rfABE6AMYw!u6+O;hfKZfJ)KY2%cK zL;>4-DTs-@jA08u1>jzcbi>nsPRlj%P9eiH_#&Gt?;xjymF&tZp?DQyHboM`&w&V+ zwkzSyz=v&NJ~9fI)#2*O2O;=kAe>;TgjHFCa|Cz= zQC2<<{>-0)MaBAZBbfCzShGJ={JNs`b3zcSjwH^ZJ)fO7Xur_1HO#ZyiYU8b$rk#$ zi1r-7>FWe+y~t1F68Jg?B9+%K0X{&KOH5wRuP!%CJFm^(*`WQraw^otT=rghfLU;U z*o6BYX45>z&gOGq&*SqZ53u?F0a4XZ5lku(<-s4q$mG0!O}P{4Se$RH`kYF}7 zqT&rt`l}IArym`O(+G`y|CFI~JrbYG5mG)3q{0KBO5vOQQig*+rANxahw0How0pT{ zA*z(8kB~3hxcpIBT?PBh?BpW73qVJXj*!wBwI&+H&+IcubS}qd`4nrB>#90X-=m|~ zX4^G+2iV%tr|8i4Nj}UHD)Ix8%3VdyLa(iu04ejFiFAfJyaYYUlh%)rI{RQe(-Sw2 z6!)V%=X&DIbalORT9mac3MZeEV;+zqM%IY>spZAnjkD^q{+%Rf9>glwMqEqJSJn88i97SiQr}M0*^W{-=$~~Qz zJe_|WMQ4_$^CM5^y-{>#dpbY&bPCbchP7zc98c#hPv`tmbk6Z~-t%|2lZ`U&diHr^OU>U-cAm<$XR=Dy)FaJVlt#jlg~mGUsz;zaF+%(7vcW)7}Wq zZePJHI7b|WrC-(oHT$4vGXY8;%8;trhjSC88&Rxp+focL6)h0F2fw3s3n1kO~)}T5_Y{{65bfbN&z5^Dc#ke1WUaMVL#=JquA)$P~WMq172kFM5+& zin2|ykX&P`a0GcQNeP+DmK0AyG;*Nthopkq9BRG{1IuyDaZdLAf%wHy z#AgEWTOTcsqOh5Xhd(2->dJxy&dJmW1a)TE zt=f8Zq&WNfQL7k!p{&{cWvJ(+e3_9u&|*5ggl3tR57s@n1QXC$4DEjFFH=+JPSuQc z5cnmG!N#vsy|&1HG!S1miulYZ9(tCX?U(Z%NY3=#+llNRr+a~GQ4AU@R6m_5*-_Vm z_Fb)29d)*H6+LyC>YA$+xfgnV->k+#3j5}TN^}=QBm3rcTxB_2gs1}ZY1s%fzrffP z@oOTLDNu%(+*rr#*|&@$J|2j_FpAjf+0T8n_!l27=B9<^vsWhHwequzIXrI~DbA|k z5MHf^XjN?)`5Pwr4Wu6=xgSf?X}5wU zD{1<7AZMhzJnE;U5`8@$8NvdtkZCbY#|TwLlUi_#8_C&)%@1-q!71S`J!@wAl|n8i z_g-)(<1SbOrmiq+Ou<0L`Y1k%3$?4M{r4ZC&7=`Z*%Re#O$hO?usF?v1ch6gi^APa z-fY%aJIFGsvsS0!q4&Kw1lTetTL-0FJSCDClu4kaf%1iCQC{jR*96MFXHl;4l@|rd z_n$?1k*{1GD8G0Xto=1cBn&Gq^A5a{Y5a213b0tIUbboCIp z6T&M;C~ydL^$^HIh7*ATd;5qX(DjDEFGBCDzOFX}y511@Y#=a0;MGVhKR2W{*r%f< zxxpUF*kBK3Y_NwiHrPXjwDC9C=YyEYOXdcmt3xfLtq26E*SsUzpZGFyHFni+MU=Mj4?5_g<&rA)o z9nKB*khQ@+2JRIgYFA8R2k6giy}>>Y(hD**l$uGA8|)!#gPjLfd@u3}r#IL`bLCaw zT@࣢&jU>|_&lrJCqT|jSxJrr!Pe|4CGx3!+<)Sz5bN% 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 diff --git a/Mainboard/Mainboard/Debug/Mainboard.hex b/Mainboard/Mainboard/Debug/Mainboard.hex index 49d356c..00c71ae 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.hex +++ b/Mainboard/Mainboard/Debug/Mainboard.hex @@ -1,62 +1,84 @@ -:100000000C943B000C9458000C9458000C9458002D -:100010000C9458000C9458000C9458000C94580000 -:100020000C9458000C9458000C9458000C945800F0 -:100030000C9458000C9458000C9458000C945800E0 -:100040000C9458000C9458000C9458000C945800D0 -:100050000C9458000C9458000C9458000C945800C0 -:100060000C9458000C9458000C9458000C945800B0 -:100070000C945800D40111241FBECFEFD4E0DEBF92 -:10008000CDBF21E0A0E0B1E001C01D92A230B207D7 -:10009000E1F710E0C6E7D0E004C02297FE010E941D -:1000A000DF01C437D107C9F70E94CE010C94E301E8 -:1000B0000C94000084B1866084B985B1817F85B9D4 -:1000C000249A2C9A569A5E988FE39CE90197F1F74F -:1000D00000C000005E9A8FE39CE90197F1F700C031 -:1000E000000008951CBC2FEF81EE94E02150804069 -:1000F0009040E1F700C0000083E58CBD08951F9398 -:10010000CF93DF9300D000D01F92CDB7DEB7162F6C -:1001100061E0CE0105960E94C4011EBD2FEF33ECB5 -:1001200089E0215030408040E1F700C0000060E0ED -:10013000CE0104960E94C4019FEF23EC39E0915058 -:1001400020403040E1F700C000000DB407FC31C092 -:100150000DB406FE0FC067E0CE0103960E94C401F5 -:100160008AEA96EE26E931E0815090402040304006 -:10017000D9F7000065E0CE0102960E94C4018FEF1E -:1001800091EE24E0815090402040E1F700C0000053 -:1001900060E0CE0101960E94C4013FEF81EE94E041 -:1001A000315080409040E1F700C000000DB407FEE0 -:1001B000CFCF8EB50F900F900F900F900F90DF91D3 -:1001C000CF911F9108950F931F93CF93DF93EC016D -:1001D000062F142F2C9862E00E947F00602FCE0122 -:1001E0000E947F00612FCE010E947F002C9ADF9138 -:1001F000CF911F910F910895FF920F931F93CF936B -:10020000DF93EC01F62E042F122F2C9865E00E944C -:100210007F006F2DCE010E947F00602FCE010E94D3 -:100220007F00612FCE010E947F002C9ADF91CF9139 -:100230001F910F91FF900895CF93DF93EC012C98BD -:1002400060EC0E947F008FE99FE00197F1F700C00A -:1002500000002C9A8FE39CE90197F1F700C00000A1 -:1002600047E06AE2CE010E94E30040E969E2CE0184 -:100270000E94E30042E068E2CE010E94E30043E016 -:100280006BE2CE010E94E30040E660E6CE010E94F0 -:10029000E30040E660E7CE010E94E30040E060E258 -:1002A000CE010E94E30040E061E2CE010E94E30043 -:1002B00040E062E2CE010E94E30040E063E2CE0152 -:1002C0000E94E30040E064E2CE010E94E30040E0CF -:1002D00065E2CE010E94E30040E066E2CE010E94AA -:1002E000E30040E067E2CE010E94E30040E06CE002 -:1002F000CE010E94E30040E06DE0CE010E94E300E9 -:1003000020E040EE6FE0CE010E94FC00DF91CF9133 -:1003100008950F931F93CF93DF9300D0CDB7DEB72F -:100320008C0162E0CE0102960E94C4012FEF81EEA3 -:1003300094E0215080409040E1F700C0000060E070 -:10034000CE0101960E94C4012FEF81EE94E021506E -:1003500080409040E1F700C00000C8010E945A00B0 -:10036000C8010E947200C8010E941C010F900F90EA -:10037000DF91CF911F910F91089584B1806E84B960 -:1003800008950E94BD01089585B18F7185B985B129 -:100390006295660F607E682B65B9089566E081E01E -:1003A00091E00E94C401FFCF81E091E00E94C10171 -:1003B00080E091E00E9489010895EE0FFF1F0590F3 -:0A03C000F491E02D0994F894FFCFAA +:100000000C943B000C9463000C9463000C9463000C +:100010000C9463000C9463000C9463000C946300D4 +:100020000C9463000C9463000C9463000C946300C4 +:100030000C9463000C9463000C9463000C946300B4 +:100040000C9463000C9463000C9463000C946300A4 +:100050000C9463000C9463000C9463000C94630094 +:100060000C9463000C9463000C9463000C94630084 +:100070000C9463004B0211241FBECFEFD4E0DEBF0F +:10008000CDBF11E0A0E0B1E0EAE1F5E002C00590EB +:100090000D92A630B107D9F721E0A6E0B1E001C08A +:1000A0001D92A930B207E1F710E0C6E7D0E004C026 +:1000B0002297FE010E948702C437D107C9F70E9428 +:1000C000F9010C948B020C940000CF93DF9300D0C5 +:1000D000CDB7DEB76EBD65E0CE0102960E94EF019E +:1000E0000DB407FEFDCF60E0CE0101960E94EF0146 +:1000F0008EB50F900F90DF91CF91089584B18660F7 +:1001000084B985B1817F85B9249A2C9A089580E5B8 +:100110008CBD81E08DBD08950F931F93CF93DF9326 +:10012000EC01062F142F2C9862E00E946500602FCE +:10013000CE010E946500612FCE010E9465002C9ABD +:10014000DF91CF911F910F910895CF93DF93EC0131 +:100150002C9860EC0E9465008FE99FE00197F1F711 +:1001600000C000002C9A8FE39CE90197F1F700C0D2 +:10017000000047E06AE2CE010E948C0040E969E29B +:10018000CE010E948C0042E068E2CE010E948C0009 +:1001900043E06BE2CE010E948C0040E660E6CE01B7 +:1001A0000E948C0040E660E7CE010E948C0040E097 +:1001B00060E2CE010E948C0040E061E2CE010E942C +:1001C0008C0040E062E2CE010E948C0040E063E2DD +:1001D000CE010E948C0040E064E2CE010E948C00BF +:1001E00040E065E2CE010E948C0040E066E2CE0174 +:1001F0000E948C0040E067E2CE010E948C0040E04B +:100200006CE0CE010E948C00DF91CF910895CF93D6 +:10021000DF93EC018FE39CE90197F1F700C0000048 +:10022000CE010E947E00CE010E948700CE010E9476 +:10023000A500DF91CF910895FF920F931F93CF9365 +:10024000DF93EC01F62E042F122F2C9865E00E940C +:1002500065006F2DCE010E946500602FCE010E94C7 +:100260006500612FCE010E9465002C9ADF91CF912D +:100270001F910F91FF9008951F93CF93DF93EC018F +:100280002C9860EB0E9465006FEFCE010E94650024 +:10029000182F6FEFCE010E9465002C9A812FDF91FD +:1002A000CF911F910895AF92BF92CF92DF92EF92BC +:1002B000FF920F931F93CF93DF931F92CDB7DEB7BB +:1002C0007C016B010E943C018983898186FF06C005 +:1002D0002C9860E9C7010E94650009C089818823C4 +:1002E0000CF069C02C9864E9C7010E9465006FEFAB +:1002F000C7010E94650090E0880F991F880F991F21 +:10030000880F991FF601918380836FEFC7010E94C8 +:10031000650090E096958795929582958F708927D4 +:100320009F708927F60120813181822B932B918345 +:1003300080836FEFC7010E9465006FEFC7010E94C5 +:1003400065006FEFC7010E9465008F70F60183831F +:100350008823A1F086010C5F1F4F5601F5E0AF0E18 +:10036000B11C8150A80EB11C6FEFC7010E9465003F +:10037000F80181938F01EA15FB05B1F72C9A898169 +:1003800083FF04C081E0F601828302C0F60112827D +:10039000898186FF07C020E041E06CE2C7010E942E +:1003A0001C0106C020E042E06CE2C7010E941C0173 +:1003B0008981877001C08FEF0F90DF91CF911F91DE +:1003C0000F91FF90EF90DF90CF90BF90AF90089586 +:1003D00084B1806E84B908950E94E801089585B1C2 +:1003E0008F7185B985B16295660F607E682B65B99E +:1003F0000895CF93DF93CDB7DEB72C970FB6F8945F +:10040000DEBF0FBECDBF66E088E091E00E94EF0145 +:1004100060E071E087E091E00E94700283E291E089 +:100420009A8389831B8282E08C838FEA8D838EEF8F +:100430008E8362E088E091E00E94EF012FEF83ED70 +:1004400090E3215080409040E1F700C00000BE01E1 +:100450006F5F7F4F86E091E00E9453018F3F61F410 +:1004600064E088E091E00E94EF018FE39CE901974E +:10047000F1F700C00000DDCF61E088E091E00E946C +:10048000EF019FEF23ED80E3915020408040E1F7A2 +:1004900000C00000CECF88E091E00E94EC0187E030 +:1004A00091E00E946D0286E091E00E9407010895AC +:1004B000E8ECF0E0808185FFFDCF6093CE0080E026 +:1004C000089586E08093CA00E9ECF0E080818860BE +:1004D000808387E68093CC0008950E94610208958E +:1004E0000F931F93CF93DF938C01EB0168816623F9 +:1004F00039F02196C8010E94580269916111FACF22 +:10050000DF91CF911F910F910895EE0FFF1F05907E +:0A051000F491E02D0994F894FFCF58 +:06051A00626C610A0000A2 :00000001FF diff --git a/Mainboard/Mainboard/Debug/Mainboard.lss b/Mainboard/Mainboard/Debug/Mainboard.lss index 62e30b2..a41bddd 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.lss +++ b/Mainboard/Mainboard/Debug/Mainboard.lss @@ -3,70 +3,70 @@ Mainboard.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 00000000 00800100 000003ca 0000045e 2**0 + 0 .data 00000006 00800100 0000051a 000005ae 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 000003ca 00000000 00000000 00000094 2**1 + 1 .text 0000051a 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 00000002 00800100 00800100 0000045e 2**0 + 2 .bss 00000003 00800106 00800106 000005b4 2**0 ALLOC - 3 .stab 000006cc 00000000 00000000 00000460 2**2 + 3 .stab 000006cc 00000000 00000000 000005b4 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000082 00000000 00000000 00000b2c 2**0 + 4 .stabstr 00000082 00000000 00000000 00000c80 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 00000bae 2**0 + 5 .comment 0000002f 00000000 00000000 00000d02 2**0 CONTENTS, READONLY - 6 .debug_aranges 000000e0 00000000 00000000 00000bdd 2**0 + 6 .debug_aranges 00000118 00000000 00000000 00000d31 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00001c15 00000000 00000000 00000cbd 2**0 + 7 .debug_info 00001e0f 00000000 00000000 00000e49 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000750 00000000 00000000 000028d2 2**0 + 8 .debug_abbrev 0000099e 00000000 00000000 00002c58 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 0000059e 00000000 00000000 00003022 2**0 + 9 .debug_line 0000072a 00000000 00000000 000035f6 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000002d8 00000000 00000000 000035c0 2**2 + 10 .debug_frame 00000338 00000000 00000000 00003d20 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00000419 00000000 00000000 00003898 2**0 + 11 .debug_str 00000490 00000000 00000000 00004058 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 00000c98 00000000 00000000 00003cb1 2**0 + 12 .debug_loc 00000d47 00000000 00000000 000044e8 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 000000f8 00000000 00000000 00004949 2**0 + 13 .debug_ranges 00000120 00000000 00000000 0000522f 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 3b 00 jmp 0x76 ; 0x76 <__ctors_end> - 4: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 8: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 10: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 14: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 18: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 1c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 20: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 24: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 28: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 2c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 30: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 34: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 38: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 3c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 40: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 44: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 48: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 4c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 50: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 54: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 58: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 5c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 60: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 64: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 68: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 6c: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> - 70: 0c 94 58 00 jmp 0xb0 ; 0xb0 <__bad_interrupt> + 4: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 8: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 10: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 14: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 18: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 1c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 20: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 24: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 28: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 2c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 30: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 34: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 38: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 3c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 40: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 44: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 48: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 4c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 50: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 54: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 58: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 5c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 60: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 64: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 68: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 6c: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> + 70: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__bad_interrupt> 00000074 <__ctors_start>: - 74: d4 01 movw r26, r8 + 74: 4b 02 muls r20, r27 00000076 <__ctors_end>: 76: 11 24 eor r1, r1 @@ -76,660 +76,960 @@ Disassembly of section .text: 7e: de bf out 0x3e, r29 ; 62 80: cd bf out 0x3d, r28 ; 61 -00000082 <__do_clear_bss>: - 82: 21 e0 ldi r18, 0x01 ; 1 +00000082 <__do_copy_data>: + 82: 11 e0 ldi r17, 0x01 ; 1 84: a0 e0 ldi r26, 0x00 ; 0 86: b1 e0 ldi r27, 0x01 ; 1 - 88: 01 c0 rjmp .+2 ; 0x8c <.do_clear_bss_start> + 88: ea e1 ldi r30, 0x1A ; 26 + 8a: f5 e0 ldi r31, 0x05 ; 5 + 8c: 02 c0 rjmp .+4 ; 0x92 <__do_copy_data+0x10> + 8e: 05 90 lpm r0, Z+ + 90: 0d 92 st X+, r0 + 92: a6 30 cpi r26, 0x06 ; 6 + 94: b1 07 cpc r27, r17 + 96: d9 f7 brne .-10 ; 0x8e <__do_copy_data+0xc> -0000008a <.do_clear_bss_loop>: - 8a: 1d 92 st X+, r1 +00000098 <__do_clear_bss>: + 98: 21 e0 ldi r18, 0x01 ; 1 + 9a: a6 e0 ldi r26, 0x06 ; 6 + 9c: b1 e0 ldi r27, 0x01 ; 1 + 9e: 01 c0 rjmp .+2 ; 0xa2 <.do_clear_bss_start> -0000008c <.do_clear_bss_start>: - 8c: a2 30 cpi r26, 0x02 ; 2 - 8e: b2 07 cpc r27, r18 - 90: e1 f7 brne .-8 ; 0x8a <.do_clear_bss_loop> +000000a0 <.do_clear_bss_loop>: + a0: 1d 92 st X+, r1 -00000092 <__do_global_ctors>: - 92: 10 e0 ldi r17, 0x00 ; 0 - 94: c6 e7 ldi r28, 0x76 ; 118 - 96: d0 e0 ldi r29, 0x00 ; 0 - 98: 04 c0 rjmp .+8 ; 0xa2 <__do_global_ctors+0x10> - 9a: 22 97 sbiw r28, 0x02 ; 2 - 9c: fe 01 movw r30, r28 - 9e: 0e 94 df 01 call 0x3be ; 0x3be <__tablejump__> - a2: c4 37 cpi r28, 0x74 ; 116 - a4: d1 07 cpc r29, r17 - a6: c9 f7 brne .-14 ; 0x9a <__do_global_ctors+0x8> - a8: 0e 94 ce 01 call 0x39c ; 0x39c
- ac: 0c 94 e3 01 jmp 0x3c6 ; 0x3c6 <_exit> +000000a2 <.do_clear_bss_start>: + a2: a9 30 cpi r26, 0x09 ; 9 + a4: b2 07 cpc r27, r18 + a6: e1 f7 brne .-8 ; 0xa0 <.do_clear_bss_loop> -000000b0 <__bad_interrupt>: - b0: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> +000000a8 <__do_global_ctors>: + a8: 10 e0 ldi r17, 0x00 ; 0 + aa: c6 e7 ldi r28, 0x76 ; 118 + ac: d0 e0 ldi r29, 0x00 ; 0 + ae: 04 c0 rjmp .+8 ; 0xb8 <__do_global_ctors+0x10> + b0: 22 97 sbiw r28, 0x02 ; 2 + b2: fe 01 movw r30, r28 + b4: 0e 94 87 02 call 0x50e ; 0x50e <__tablejump__> + b8: c4 37 cpi r28, 0x74 ; 116 + ba: d1 07 cpc r29, r17 + bc: c9 f7 brne .-14 ; 0xb0 <__do_global_ctors+0x8> + be: 0e 94 f9 01 call 0x3f2 ; 0x3f2
+ c2: 0c 94 8b 02 jmp 0x516 ; 0x516 <_exit> -000000b4 <_ZN3Can8init_pinEv>: - if (length > 8) { - length = 8; - } - - // Ist die Nachricht ein "Remote Transmit Request" ? - if (p_message->rtr) - b4: 84 b1 in r24, 0x04 ; 4 - b6: 86 60 ori r24, 0x06 ; 6 - b8: 84 b9 out 0x04, r24 ; 4 - ba: 85 b1 in r24, 0x05 ; 5 - { - /* Ein RTR hat zwar eine Laenge, - aber enthaelt keine Daten */ - - // Nachrichten Laenge + RTR einstellen +000000c6 <__bad_interrupt>: + c6: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> + +000000ca <_ZN3Can8spi_putcEh>: spi_putc((1< + ca: cf 93 push r28 + cc: df 93 push r29 + ce: 00 d0 rcall .+0 ; 0xd0 <_ZN3Can8spi_putcEh+0x6> // Daten for (uint8_t i=0;i - d2: 00 00 nop + d0: cd b7 in r28, 0x3d ; 61 + d2: de b7 in r29, 0x3e ; 62 // /CS Leitung wieder freigeben CANPORT_CS |= (1< - de: 00 c0 rjmp .+0 ; 0xe0 <_ZN3Can8init_pinEv+0x2c> - e0: 00 00 nop - e2: 08 95 ret - -000000e4 <_ZN3Can8init_spiEv>: - e4: 1c bc out 0x2c, r1 ; 44 - e6: 2f ef ldi r18, 0xFF ; 255 + d4: 6e bd out 0x2e, r22 ; 46 + d6: 65 e0 ldi r22, 0x05 ; 5 + d8: ce 01 movw r24, r28 + da: 02 96 adiw r24, 0x02 ; 2 + dc: 0e 94 ef 01 call 0x3de ; 0x3de <_ZN3Led5colorEh> + e0: 0d b4 in r0, 0x2d ; 45 + e2: 07 fe sbrs r0, 7 + e4: fd cf rjmp .-6 ; 0xe0 <_ZN3Can8spi_putcEh+0x16> + e6: 60 e0 ldi r22, 0x00 ; 0 // Nachrichten Laenge einstellen spi_putc(length); // Daten for (uint8_t i=0;idata[i]); - e8: 81 ee ldi r24, 0xE1 ; 225 - ea: 94 e0 ldi r25, 0x04 ; 4 - ec: 21 50 subi r18, 0x01 ; 1 - ee: 80 40 sbci r24, 0x00 ; 0 - f0: 90 40 sbci r25, 0x00 ; 0 - f2: e1 f7 brne .-8 ; 0xec <_ZN3Can8init_spiEv+0x8> + e8: ce 01 movw r24, r28 + ea: 01 96 adiw r24, 0x01 ; 1 + ec: 0e 94 ef 01 call 0x3de ; 0x3de <_ZN3Led5colorEh> + f0: 8e b5 in r24, 0x2e ; 46 + f2: 0f 90 pop r0 { // Nachrichten Laenge einstellen spi_putc(length); // Daten for (uint8_t i=0;i - f6: 00 00 nop - f8: 83 e5 ldi r24, 0x53 ; 83 + f4: 0f 90 pop r0 + f6: df 91 pop r29 + f8: cf 91 pop r28 spi_putc(p_message->data[i]); } } CANPORT_CS |= (1<: asm volatile ("nop"); - fc: 08 95 ret - -000000fe <_ZN3Can8spi_putcEh>: + fc: 84 b1 in r24, 0x04 ; 4 /* CAN Nachricht verschicken die letzten drei Bit im RTS Kommando geben an welcher Puffer gesendet werden soll */ CANPORT_CS &= ~(1< - 106: 00 d0 rcall .+0 ; 0x108 <_ZN3Can8spi_putcEh+0xa> - 108: 1f 92 push r1 - 10a: cd b7 in r28, 0x3d ; 61 - 10c: de b7 in r29, 0x3e ; 62 + 104: 81 7f andi r24, 0xF1 ; 241 + 106: 85 b9 out 0x05, r24 ; 5 + 108: 24 9a sbi 0x04, 4 ; 4 + 10a: 2c 9a sbi 0x05, 4 ; 5 + 10c: 08 95 ret + +0000010e <_ZN3Can8init_spiEv>: } else { spi_putc(SPI_RTS | address); - 10e: 16 2f mov r17, r22 - 110: 61 e0 ldi r22, 0x01 ; 1 - 112: ce 01 movw r24, r28 - 114: 05 96 adiw r24, 0x05 ; 5 - 116: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> + 10e: 80 e5 ldi r24, 0x50 ; 80 + 110: 8c bd out 0x2c, r24 ; 44 + 112: 81 e0 ldi r24, 0x01 ; 1 + 114: 8d bd out 0x2d, r24 ; 45 + 116: 08 95 ret + +00000118 <_ZN3Can22mcp2515_write_registerEhh>: } CANPORT_CS |= (1< - 12a: 00 c0 rjmp .+0 ; 0x12c <_ZN3Can8spi_putcEh+0x2e> - 12c: 00 00 nop - 12e: 60 e0 ldi r22, 0x00 ; 0 + 120: ec 01 movw r28, r24 + 122: 06 2f mov r16, r22 + 124: 14 2f mov r17, r20 + 126: 2c 98 cbi 0x05, 4 ; 5 + 128: 62 e0 ldi r22, 0x02 ; 2 + 12a: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 12e: 60 2f mov r22, r16 130: ce 01 movw r24, r28 - 132: 04 96 adiw r24, 0x04 ; 4 - 134: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> + 132: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 136: 61 2f mov r22, r17 + // /CS des MCP2515 auf Low ziehen + CANPORT_CS &= ~(1< + + // /CS Leitung wieder freigeben + CANPORT_CS |= (1<: + SPCR = (1< #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 138: 9f ef ldi r25, 0xFF ; 255 - 13a: 23 ec ldi r18, 0xC3 ; 195 - 13c: 39 e0 ldi r19, 0x09 ; 9 - 13e: 91 50 subi r25, 0x01 ; 1 - 140: 20 40 sbci r18, 0x00 ; 0 - 142: 30 40 sbci r19, 0x00 ; 0 - 144: e1 f7 brne .-8 ; 0x13e <_ZN3Can8spi_putcEh+0x40> - 146: 00 c0 rjmp .+0 ; 0x148 <_ZN3Can8spi_putcEh+0x4a> - 148: 00 00 nop - SPDR = data; - _delay_ms(200); - Led(0).color(Led::BLACK); - _delay_ms(200); - // Wartet bis Byte gesendet wurde - while(!(SPSR & (1< - if(SPSR & (1< - Led(0).color(Led::WHITE); - 156: 67 e0 ldi r22, 0x07 ; 7 - 158: ce 01 movw r24, r28 - 15a: 03 96 adiw r24, 0x03 ; 3 - 15c: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> - 160: 8a ea ldi r24, 0xAA ; 170 - 162: 96 ee ldi r25, 0xE6 ; 230 - 164: 26 e9 ldi r18, 0x96 ; 150 - 166: 31 e0 ldi r19, 0x01 ; 1 - 168: 81 50 subi r24, 0x01 ; 1 - 16a: 90 40 sbci r25, 0x00 ; 0 - 16c: 20 40 sbci r18, 0x00 ; 0 - 16e: 30 40 sbci r19, 0x00 ; 0 - 170: d9 f7 brne .-10 ; 0x168 <_ZN3Can8spi_putcEh+0x6a> - 172: 00 00 nop - _delay_ms(10000); - } - Led(0).color(Led::MAGENTA); - 174: 65 e0 ldi r22, 0x05 ; 5 - 176: ce 01 movw r24, r28 - 178: 02 96 adiw r24, 0x02 ; 2 - 17a: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> - 17e: 8f ef ldi r24, 0xFF ; 255 - 180: 91 ee ldi r25, 0xE1 ; 225 - 182: 24 e0 ldi r18, 0x04 ; 4 - 184: 81 50 subi r24, 0x01 ; 1 - 186: 90 40 sbci r25, 0x00 ; 0 - 188: 20 40 sbci r18, 0x00 ; 0 - 18a: e1 f7 brne .-8 ; 0x184 <_ZN3Can8spi_putcEh+0x86> - 18c: 00 c0 rjmp .+0 ; 0x18e <_ZN3Can8spi_putcEh+0x90> - 18e: 00 00 nop - _delay_ms(100); - Led(0).color(Led::BLACK); - 190: 60 e0 ldi r22, 0x00 ; 0 - 192: ce 01 movw r24, r28 - 194: 01 96 adiw r24, 0x01 ; 1 - 196: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> - 19a: 3f ef ldi r19, 0xFF ; 255 - 19c: 81 ee ldi r24, 0xE1 ; 225 - 19e: 94 e0 ldi r25, 0x04 ; 4 - 1a0: 31 50 subi r19, 0x01 ; 1 - 1a2: 80 40 sbci r24, 0x00 ; 0 - 1a4: 90 40 sbci r25, 0x00 ; 0 - 1a6: e1 f7 brne .-8 ; 0x1a0 <_ZN3Can8spi_putcEh+0xa2> - 1a8: 00 c0 rjmp .+0 ; 0x1aa <_ZN3Can8spi_putcEh+0xac> - 1aa: 00 00 nop - SPDR = data; - _delay_ms(200); - Led(0).color(Led::BLACK); - _delay_ms(200); - // Wartet bis Byte gesendet wurde - while(!(SPSR & (1< - Led(0).color(Led::BLACK); - _delay_ms(100); - - } - - return SPDR; - 1b2: 8e b5 in r24, 0x2e ; 46 -} - 1b4: 0f 90 pop r0 - 1b6: 0f 90 pop r0 - 1b8: 0f 90 pop r0 - 1ba: 0f 90 pop r0 - 1bc: 0f 90 pop r0 - 1be: df 91 pop r29 - 1c0: cf 91 pop r28 - 1c2: 1f 91 pop r17 - 1c4: 08 95 ret - -000001c6 <_ZN3Can22mcp2515_write_registerEhh>: - -void Can::mcp2515_write_register( uint8_t adress, uint8_t data ) -{ - 1c6: 0f 93 push r16 - 1c8: 1f 93 push r17 - 1ca: cf 93 push r28 - 1cc: df 93 push r29 - 1ce: ec 01 movw r28, r24 - 1d0: 06 2f mov r16, r22 - 1d2: 14 2f mov r17, r20 - // /CS des MCP2515 auf Low ziehen - CANPORT_CS &= ~(1< - spi_putc(adress); - 1dc: 60 2f mov r22, r16 - 1de: ce 01 movw r24, r28 - 1e0: 0e 94 7f 00 call 0xfe ; 0xfe <_ZN3Can8spi_putcEh> - spi_putc(data); - 1e4: 61 2f mov r22, r17 - 1e6: ce 01 movw r24, r28 - 1e8: 0e 94 7f 00 call 0xfe ; 0xfe <_ZN3Can8spi_putcEh> - - // /CS Leitung wieder freigeben - CANPORT_CS |= (1<: - - return data; -} - -void Can::mcp2515_bit_modify(uint8_t adress, uint8_t mask, uint8_t data) -{ - 1f8: ff 92 push r15 - 1fa: 0f 93 push r16 - 1fc: 1f 93 push r17 - 1fe: cf 93 push r28 - 200: df 93 push r29 - 202: ec 01 movw r28, r24 - 204: f6 2e mov r15, r22 - 206: 04 2f mov r16, r20 - 208: 12 2f mov r17, r18 - // /CS des MCP2515 auf Low ziehen - CANPORT_CS &= ~(1< - spi_putc(adress); - 212: 6f 2d mov r22, r15 - 214: ce 01 movw r24, r28 - 216: 0e 94 7f 00 call 0xfe ; 0xfe <_ZN3Can8spi_putcEh> - spi_putc(mask); - 21a: 60 2f mov r22, r16 - 21c: ce 01 movw r24, r28 - 21e: 0e 94 7f 00 call 0xfe ; 0xfe <_ZN3Can8spi_putcEh> - spi_putc(data); - 222: 61 2f mov r22, r17 - 224: ce 01 movw r24, r28 - 226: 0e 94 7f 00 call 0xfe ; 0xfe <_ZN3Can8spi_putcEh> - - // /CS Leitung wieder freigeben - CANPORT_CS |= (1<: - _delay_ms(100); - SPCR = (1< - 246: 8f e9 ldi r24, 0x9F ; 159 - 248: 9f e0 ldi r25, 0x0F ; 15 - 24a: 01 97 sbiw r24, 0x01 ; 1 - 24c: f1 f7 brne .-4 ; 0x24a <_ZN3Can8init_canEv+0x12> - 24e: 00 c0 rjmp .+0 ; 0x250 <_ZN3Can8init_canEv+0x18> - 250: 00 00 nop + 158: 8f e9 ldi r24, 0x9F ; 159 + 15a: 9f e0 ldi r25, 0x0F ; 15 + 15c: 01 97 sbiw r24, 0x01 ; 1 + 15e: f1 f7 brne .-4 ; 0x15c <_ZN3Can8init_canEv+0x12> + 160: 00 c0 rjmp .+0 ; 0x162 <_ZN3Can8init_canEv+0x18> + 162: 00 00 nop _delay_ms(1); CANPORT_CS |= (1< - 25c: 00 c0 rjmp .+0 ; 0x25e <_ZN3Can8init_canEv+0x26> - 25e: 00 00 nop + 164: 2c 9a sbi 0x05, 4 ; 5 + 166: 8f e3 ldi r24, 0x3F ; 63 + 168: 9c e9 ldi r25, 0x9C ; 156 + 16a: 01 97 sbiw r24, 0x01 ; 1 + 16c: f1 f7 brne .-4 ; 0x16a <_ZN3Can8init_canEv+0x20> + 16e: 00 c0 rjmp .+0 ; 0x170 <_ZN3Can8init_canEv+0x26> + 170: 00 00 nop * Bus speed = 1 / (Total # of TQ) * TQ * = 1 / 8 * TQ = 125 kHz */ - //return; +//return; // BRP = 7 mcp2515_write_register( CNF1, (1< - + 172: 47 e0 ldi r20, 0x07 ; 7 + 174: 6a e2 ldi r22, 0x2A ; 42 + 176: ce 01 movw r24, r28 + 178: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> +//return; // Prop Seg und Phase Seg1 einstellen mcp2515_write_register( CNF2, (1< - + 17c: 40 e9 ldi r20, 0x90 ; 144 + 17e: 69 e2 ldi r22, 0x29 ; 41 + 180: ce 01 movw r24, r28 + 182: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> +//return; // Wake-up Filter deaktivieren, Phase Seg2 einstellen mcp2515_write_register( CNF3, (1< - + 186: 42 e0 ldi r20, 0x02 ; 2 + 188: 68 e2 ldi r22, 0x28 ; 40 + 18a: ce 01 movw r24, r28 + 18c: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> +//return; // Aktivieren der Rx Buffer Interrupts mcp2515_write_register( CANINTE, (1< + 190: 43 e0 ldi r20, 0x03 ; 3 + 192: 6b e2 ldi r22, 0x2B ; 43 + 194: ce 01 movw r24, r28 + 196: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> /* * Einstellen der Filter */ // Buffer 0 : Empfangen aller Nachrichten mcp2515_write_register( RXB0CTRL, (1< + 19a: 40 e6 ldi r20, 0x60 ; 96 + 19c: 60 e6 ldi r22, 0x60 ; 96 + 19e: ce 01 movw r24, r28 + 1a0: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> // Buffer 1 : Empfangen aller Nachrichten mcp2515_write_register( RXB1CTRL, (1< - + 1a4: 40 e6 ldi r20, 0x60 ; 96 + 1a6: 60 e7 ldi r22, 0x70 ; 112 + 1a8: ce 01 movw r24, r28 + 1aa: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> +//return; // Alle Bits der Empfangsmaske loeschen, // damit werden alle Nachrichten empfangen - mcp2515_write_register( RXM0SIDH, 0 ); - 29c: 40 e0 ldi r20, 0x00 ; 0 - 29e: 60 e2 ldi r22, 0x20 ; 32 - 2a0: ce 01 movw r24, r28 - 2a2: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> - mcp2515_write_register( RXM0SIDL, 0 ); - 2a6: 40 e0 ldi r20, 0x00 ; 0 - 2a8: 61 e2 ldi r22, 0x21 ; 33 - 2aa: ce 01 movw r24, r28 - 2ac: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> + mcp2515_write_register( RXM0SIDH, 0 ); //return; + 1ae: 40 e0 ldi r20, 0x00 ; 0 + 1b0: 60 e2 ldi r22, 0x20 ; 32 + 1b2: ce 01 movw r24, r28 + 1b4: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> + mcp2515_write_register( RXM0SIDL, 0 ); //return; + 1b8: 40 e0 ldi r20, 0x00 ; 0 + 1ba: 61 e2 ldi r22, 0x21 ; 33 + 1bc: ce 01 movw r24, r28 + 1be: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> mcp2515_write_register( RXM0EID8, 0 ); - 2b0: 40 e0 ldi r20, 0x00 ; 0 - 2b2: 62 e2 ldi r22, 0x22 ; 34 - 2b4: ce 01 movw r24, r28 - 2b6: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> + 1c2: 40 e0 ldi r20, 0x00 ; 0 + 1c4: 62 e2 ldi r22, 0x22 ; 34 + 1c6: ce 01 movw r24, r28 + 1c8: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> mcp2515_write_register( RXM0EID0, 0 ); - 2ba: 40 e0 ldi r20, 0x00 ; 0 - 2bc: 63 e2 ldi r22, 0x23 ; 35 - 2be: ce 01 movw r24, r28 - 2c0: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> - - mcp2515_write_register( RXM1SIDH, 0 ); - 2c4: 40 e0 ldi r20, 0x00 ; 0 - 2c6: 64 e2 ldi r22, 0x24 ; 36 - 2c8: ce 01 movw r24, r28 - 2ca: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> - mcp2515_write_register( RXM1SIDL, 0 ); - 2ce: 40 e0 ldi r20, 0x00 ; 0 - 2d0: 65 e2 ldi r22, 0x25 ; 37 - 2d2: ce 01 movw r24, r28 - 2d4: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> + 1cc: 40 e0 ldi r20, 0x00 ; 0 + 1ce: 63 e2 ldi r22, 0x23 ; 35 + 1d0: ce 01 movw r24, r28 + 1d2: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> +//return; + mcp2515_write_register( RXM1SIDH, 0 ); //return; + 1d6: 40 e0 ldi r20, 0x00 ; 0 + 1d8: 64 e2 ldi r22, 0x24 ; 36 + 1da: ce 01 movw r24, r28 + 1dc: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> + mcp2515_write_register( RXM1SIDL, 0 ); //return; + 1e0: 40 e0 ldi r20, 0x00 ; 0 + 1e2: 65 e2 ldi r22, 0x25 ; 37 + 1e4: ce 01 movw r24, r28 + 1e6: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> mcp2515_write_register( RXM1EID8, 0 ); - 2d8: 40 e0 ldi r20, 0x00 ; 0 - 2da: 66 e2 ldi r22, 0x26 ; 38 - 2dc: ce 01 movw r24, r28 - 2de: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> + 1ea: 40 e0 ldi r20, 0x00 ; 0 + 1ec: 66 e2 ldi r22, 0x26 ; 38 + 1ee: ce 01 movw r24, r28 + 1f0: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> mcp2515_write_register( RXM1EID0, 0 ); - 2e2: 40 e0 ldi r20, 0x00 ; 0 - 2e4: 67 e2 ldi r22, 0x27 ; 39 - 2e6: ce 01 movw r24, r28 - 2e8: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> + 1f4: 40 e0 ldi r20, 0x00 ; 0 + 1f6: 67 e2 ldi r22, 0x27 ; 39 + 1f8: ce 01 movw r24, r28 + 1fa: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> /* * Einstellen der Pin Funktionen */ // Deaktivieren der Pins RXnBF Pins (High Impedance State) - mcp2515_write_register( BFPCTRL, 0 ); - 2ec: 40 e0 ldi r20, 0x00 ; 0 - 2ee: 6c e0 ldi r22, 0x0C ; 12 - 2f0: ce 01 movw r24, r28 - 2f2: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> - + mcp2515_write_register( BFPCTRL, 0 ); return; + 1fe: 40 e0 ldi r20, 0x00 ; 0 + 200: 6c e0 ldi r22, 0x0C ; 12 + 202: ce 01 movw r24, r28 + 204: 0e 94 8c 00 call 0x118 ; 0x118 <_ZN3Can22mcp2515_write_registerEhh> // TXnRTS Bits als Inputs schalten mcp2515_write_register( TXRTSCTRL, 0 ); - 2f6: 40 e0 ldi r20, 0x00 ; 0 - 2f8: 6d e0 ldi r22, 0x0D ; 13 - 2fa: ce 01 movw r24, r28 - 2fc: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <_ZN3Can22mcp2515_write_registerEhh> - +//return; // Device zurueck in den normalen Modus versetzten - mcp2515_bit_modify( CANCTRL, 0xE0, 0); - 300: 20 e0 ldi r18, 0x00 ; 0 - 302: 40 ee ldi r20, 0xE0 ; 224 - 304: 6f e0 ldi r22, 0x0F ; 15 - 306: ce 01 movw r24, r28 - 308: 0e 94 fc 00 call 0x1f8 ; 0x1f8 <_ZN3Can18mcp2515_bit_modifyEhhh> + mcp2515_bit_modify( CANCTRL, 0xE0, 0); } - 30c: df 91 pop r29 - 30e: cf 91 pop r28 - 310: 08 95 ret + 208: df 91 pop r29 + 20a: cf 91 pop r28 + 20c: 08 95 ret -00000312 <_ZN3CanC1Ev>: +0000020e <_ZN3CanC1Ev>: #define CANDDR_RST DDRD #define CANPORT_RST PORTD #define CANP_RST PIND6 Can::Can() { - 312: 0f 93 push r16 - 314: 1f 93 push r17 - 316: cf 93 push r28 - 318: df 93 push r29 - 31a: 00 d0 rcall .+0 ; 0x31c <_ZN3CanC1Ev+0xa> - 31c: cd b7 in r28, 0x3d ; 61 - 31e: de b7 in r29, 0x3e ; 62 - 320: 8c 01 movw r16, r24 - Led(0).color(Led::GREEN); - 322: 62 e0 ldi r22, 0x02 ; 2 - 324: ce 01 movw r24, r28 - 326: 02 96 adiw r24, 0x02 ; 2 - 328: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> - 32c: 2f ef ldi r18, 0xFF ; 255 - 32e: 81 ee ldi r24, 0xE1 ; 225 - 330: 94 e0 ldi r25, 0x04 ; 4 - 332: 21 50 subi r18, 0x01 ; 1 - 334: 80 40 sbci r24, 0x00 ; 0 - 336: 90 40 sbci r25, 0x00 ; 0 - 338: e1 f7 brne .-8 ; 0x332 <_ZN3CanC1Ev+0x20> - 33a: 00 c0 rjmp .+0 ; 0x33c <_ZN3CanC1Ev+0x2a> - 33c: 00 00 nop - _delay_ms(100); - Led(0).color(Led::BLACK); - 33e: 60 e0 ldi r22, 0x00 ; 0 - 340: ce 01 movw r24, r28 - 342: 01 96 adiw r24, 0x01 ; 1 - 344: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> - 348: 2f ef ldi r18, 0xFF ; 255 - 34a: 81 ee ldi r24, 0xE1 ; 225 - 34c: 94 e0 ldi r25, 0x04 ; 4 - 34e: 21 50 subi r18, 0x01 ; 1 - 350: 80 40 sbci r24, 0x00 ; 0 - 352: 90 40 sbci r25, 0x00 ; 0 - 354: e1 f7 brne .-8 ; 0x34e <_ZN3CanC1Ev+0x3c> - 356: 00 c0 rjmp .+0 ; 0x358 <_ZN3CanC1Ev+0x46> - 358: 00 00 nop - _delay_ms(100); + 20e: cf 93 push r28 + 210: df 93 push r29 + 212: ec 01 movw r28, r24 + 214: 8f e3 ldi r24, 0x3F ; 63 + 216: 9c e9 ldi r25, 0x9C ; 156 + 218: 01 97 sbiw r24, 0x01 ; 1 + 21a: f1 f7 brne .-4 ; 0x218 <_ZN3CanC1Ev+0xa> + 21c: 00 c0 rjmp .+0 ; 0x21e <_ZN3CanC1Ev+0x10> + 21e: 00 00 nop + _delay_ms(10); init_pin(); - 35a: c8 01 movw r24, r16 - 35c: 0e 94 5a 00 call 0xb4 ; 0xb4 <_ZN3Can8init_pinEv> + 220: ce 01 movw r24, r28 + 222: 0e 94 7e 00 call 0xfc ; 0xfc <_ZN3Can8init_pinEv> init_spi(); - 360: c8 01 movw r24, r16 - 362: 0e 94 72 00 call 0xe4 ; 0xe4 <_ZN3Can8init_spiEv> + 226: ce 01 movw r24, r28 + 228: 0e 94 87 00 call 0x10e ; 0x10e <_ZN3Can8init_spiEv> init_can(); - 366: c8 01 movw r24, r16 - 368: 0e 94 1c 01 call 0x238 ; 0x238 <_ZN3Can8init_canEv> + 22c: ce 01 movw r24, r28 + 22e: 0e 94 a5 00 call 0x14a ; 0x14a <_ZN3Can8init_canEv> } - 36c: 0f 90 pop r0 - 36e: 0f 90 pop r0 - 370: df 91 pop r29 - 372: cf 91 pop r28 - 374: 1f 91 pop r17 - 376: 0f 91 pop r16 - 378: 08 95 ret + 232: df 91 pop r29 + 234: cf 91 pop r28 + 236: 08 95 ret -0000037a <_ZN3Led4initEv>: +00000238 <_ZN3Can18mcp2515_bit_modifyEhhh>: + + return data; +} + +void Can::mcp2515_bit_modify(uint8_t adress, uint8_t mask, uint8_t data) +{ + 238: ff 92 push r15 + 23a: 0f 93 push r16 + 23c: 1f 93 push r17 + 23e: cf 93 push r28 + 240: df 93 push r29 + 242: ec 01 movw r28, r24 + 244: f6 2e mov r15, r22 + 246: 04 2f mov r16, r20 + 248: 12 2f mov r17, r18 + // /CS des MCP2515 auf Low ziehen + CANPORT_CS &= ~(1< + spi_putc(adress); + 252: 6f 2d mov r22, r15 + 254: ce 01 movw r24, r28 + 256: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + spi_putc(mask); + 25a: 60 2f mov r22, r16 + 25c: ce 01 movw r24, r28 + 25e: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + spi_putc(data); + 262: 61 2f mov r22, r17 + 264: ce 01 movw r24, r28 + 266: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + + // /CS Leitung wieder freigeben + CANPORT_CS |= (1<: + + return (status & 0x07); +} + +uint8_t Can::mcp2515_read_rx_status(void) +{ + 278: 1f 93 push r17 + 27a: cf 93 push r28 + 27c: df 93 push r29 + 27e: ec 01 movw r28, r24 + uint8_t data; + + // /CS des MCP2515 auf Low ziehen + CANPORT_CS &= ~(1< + data = spi_putc(0xff); + 288: 6f ef ldi r22, 0xFF ; 255 + 28a: ce 01 movw r24, r28 + 28c: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 290: 18 2f mov r17, r24 + + // Die Daten werden noch einmal wiederholt gesendet, + // man braucht also nur eins der beiden Bytes auswerten. + spi_putc(0xff); + 292: 6f ef ldi r22, 0xFF ; 255 + 294: ce 01 movw r24, r28 + 296: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + + // /CS Leitung wieder freigeben + CANPORT_CS |= (1<: + + return 1; +} + +uint8_t Can::can_get_message(CANMessage *p_message) +{ + 2a6: af 92 push r10 + 2a8: bf 92 push r11 + 2aa: cf 92 push r12 + 2ac: df 92 push r13 + 2ae: ef 92 push r14 + 2b0: ff 92 push r15 + 2b2: 0f 93 push r16 + 2b4: 1f 93 push r17 + 2b6: cf 93 push r28 + 2b8: df 93 push r29 + 2ba: 1f 92 push r1 + 2bc: cd b7 in r28, 0x3d ; 61 + 2be: de b7 in r29, 0x3e ; 62 + 2c0: 7c 01 movw r14, r24 + 2c2: 6b 01 movw r12, r22 + // Status auslesen + uint8_t status = mcp2515_read_rx_status(); + 2c4: 0e 94 3c 01 call 0x278 ; 0x278 <_ZN3Can22mcp2515_read_rx_statusEv> + 2c8: 89 83 std Y+1, r24 ; 0x01 + + if (bit_is_set(status,6)) + 2ca: 89 81 ldd r24, Y+1 ; 0x01 + 2cc: 86 ff sbrs r24, 6 + 2ce: 06 c0 rjmp .+12 ; 0x2dc <_ZN3Can15can_get_messageEP10CANMessage+0x36> + { + // Nachricht in Puffer 0 + + CANPORT_CS &= ~(1< + 2da: 09 c0 rjmp .+18 ; 0x2ee <_ZN3Can15can_get_messageEP10CANMessage+0x48> + } + else if (bit_is_set(status,7)) + 2dc: 89 81 ldd r24, Y+1 ; 0x01 + 2de: 88 23 and r24, r24 + 2e0: 0c f0 brlt .+2 ; 0x2e4 <_ZN3Can15can_get_messageEP10CANMessage+0x3e> + 2e2: 69 c0 rjmp .+210 ; 0x3b6 <_ZN3Can15can_get_messageEP10CANMessage+0x110> + { + // Nachricht in Puffer 1 + + CANPORT_CS &= ~(1< + /* Fehler: Keine neue Nachricht vorhanden */ + return 0xff; + } + + // Standard ID auslesen + p_message->id = (uint16_t) spi_putc(0xff) << 3; + 2ee: 6f ef ldi r22, 0xFF ; 255 + 2f0: c7 01 movw r24, r14 + 2f2: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 2f6: 90 e0 ldi r25, 0x00 ; 0 + 2f8: 88 0f add r24, r24 + 2fa: 99 1f adc r25, r25 + 2fc: 88 0f add r24, r24 + 2fe: 99 1f adc r25, r25 + 300: 88 0f add r24, r24 + 302: 99 1f adc r25, r25 + 304: f6 01 movw r30, r12 + 306: 91 83 std Z+1, r25 ; 0x01 + 308: 80 83 st Z, r24 + p_message->id |= (uint16_t) spi_putc(0xff) >> 5; + 30a: 6f ef ldi r22, 0xFF ; 255 + 30c: c7 01 movw r24, r14 + 30e: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 312: 90 e0 ldi r25, 0x00 ; 0 + 314: 96 95 lsr r25 + 316: 87 95 ror r24 + 318: 92 95 swap r25 + 31a: 82 95 swap r24 + 31c: 8f 70 andi r24, 0x0F ; 15 + 31e: 89 27 eor r24, r25 + 320: 9f 70 andi r25, 0x0F ; 15 + 322: 89 27 eor r24, r25 + 324: f6 01 movw r30, r12 + 326: 20 81 ld r18, Z + 328: 31 81 ldd r19, Z+1 ; 0x01 + 32a: 82 2b or r24, r18 + 32c: 93 2b or r25, r19 + 32e: 91 83 std Z+1, r25 ; 0x01 + 330: 80 83 st Z, r24 + + spi_putc(0xff); + 332: 6f ef ldi r22, 0xFF ; 255 + 334: c7 01 movw r24, r14 + 336: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + spi_putc(0xff); + 33a: 6f ef ldi r22, 0xFF ; 255 + 33c: c7 01 movw r24, r14 + 33e: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + + // Laenge auslesen + uint8_t length = spi_putc(0xff) & 0x0f; + 342: 6f ef ldi r22, 0xFF ; 255 + 344: c7 01 movw r24, r14 + 346: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 34a: 8f 70 andi r24, 0x0F ; 15 + p_message->length = length; + 34c: f6 01 movw r30, r12 + 34e: 83 83 std Z+3, r24 ; 0x03 + + // Daten auslesen + for (uint8_t i=0;i + CANPORT_CS |= (1<length = length; + + // Daten auslesen + for (uint8_t i=0;idata[i] = spi_putc(0xff); + 368: 6f ef ldi r22, 0xFF ; 255 + 36a: c7 01 movw r24, r14 + 36c: 0e 94 65 00 call 0xca ; 0xca <_ZN3Can8spi_putcEh> + 370: f8 01 movw r30, r16 + 372: 81 93 st Z+, r24 + 374: 8f 01 movw r16, r30 + // Laenge auslesen + uint8_t length = spi_putc(0xff) & 0x0f; + p_message->length = length; + + // Daten auslesen + for (uint8_t i=0;i + p_message->data[i] = spi_putc(0xff); + } + + CANPORT_CS |= (1< + p_message->rtr = 1; + 384: 81 e0 ldi r24, 0x01 ; 1 + 386: f6 01 movw r30, r12 + 388: 82 83 std Z+2, r24 ; 0x02 + 38a: 02 c0 rjmp .+4 ; 0x390 <_ZN3Can15can_get_messageEP10CANMessage+0xea> + } else { + p_message->rtr = 0; + 38c: f6 01 movw r30, r12 + 38e: 12 82 std Z+2, r1 ; 0x02 + } + + // Interrupt Flag loeschen + if (bit_is_set(status,6)) { + 390: 89 81 ldd r24, Y+1 ; 0x01 + 392: 86 ff sbrs r24, 6 + 394: 07 c0 rjmp .+14 ; 0x3a4 <_ZN3Can15can_get_messageEP10CANMessage+0xfe> + mcp2515_bit_modify(CANINTF, (1< + 3a2: 06 c0 rjmp .+12 ; 0x3b0 <_ZN3Can15can_get_messageEP10CANMessage+0x10a> + } else { + mcp2515_bit_modify(CANINTF, (1< + } + + return (status & 0x07); + 3b0: 89 81 ldd r24, Y+1 ; 0x01 + 3b2: 87 70 andi r24, 0x07 ; 7 + 3b4: 01 c0 rjmp .+2 ; 0x3b8 <_ZN3Can15can_get_messageEP10CANMessage+0x112> + CANPORT_CS &= ~(1<: Led::Led() { init(); } void Led::init() { LEDDDR |= (1<: +000003d8 <_ZN3LedC1Ev>: #define LEDPING PINC6 #define LEDPINB PINC7 #define LEDPINM PINC5 Led::Led() { init(); - 382: 0e 94 bd 01 call 0x37a ; 0x37a <_ZN3Led4initEv> - 386: 08 95 ret + 3d8: 0e 94 e8 01 call 0x3d0 ; 0x3d0 <_ZN3Led4initEv> + 3dc: 08 95 ret -00000388 <_ZN3Led5colorEh>: +000003de <_ZN3Led5colorEh>: int rgb = 0; rgb |= (mask & (1<<0)) ? (1<<0) : (0<<0); rgb |= (mask & (1<<1)) ? (1<<1) : (0<<1); rgb |= (mask & (1<<2)) ? (1<<2) : (0<<2); LEDPORT &= ~((1<: +000003f2
: Led l; +Rs232 r; Can c; int main(void) { + 3f2: cf 93 push r28 + 3f4: df 93 push r29 + 3f6: cd b7 in r28, 0x3d ; 61 + 3f8: de b7 in r29, 0x3e ; 62 + 3fa: 2c 97 sbiw r28, 0x0c ; 12 + 3fc: 0f b6 in r0, 0x3f ; 63 + 3fe: f8 94 cli + 400: de bf out 0x3e, r29 ; 62 + 402: 0f be out 0x3f, r0 ; 63 + 404: cd bf out 0x3d, r28 ; 61 l.color(Led::YELLOW); - 39c: 66 e0 ldi r22, 0x06 ; 6 - 39e: 81 e0 ldi r24, 0x01 ; 1 - 3a0: 91 e0 ldi r25, 0x01 ; 1 - 3a2: 0e 94 c4 01 call 0x388 ; 0x388 <_ZN3Led5colorEh> - 3a6: ff cf rjmp .-2 ; 0x3a6 + 406: 66 e0 ldi r22, 0x06 ; 6 + 408: 88 e0 ldi r24, 0x08 ; 8 + 40a: 91 e0 ldi r25, 0x01 ; 1 + 40c: 0e 94 ef 01 call 0x3de ; 0x3de <_ZN3Led5colorEh> + r.send("bla\n"); + 410: 60 e0 ldi r22, 0x00 ; 0 + 412: 71 e0 ldi r23, 0x01 ; 1 + 414: 87 e0 ldi r24, 0x07 ; 7 + 416: 91 e0 ldi r25, 0x01 ; 1 + 418: 0e 94 70 02 call 0x4e0 ; 0x4e0 <_ZN5Rs2324sendEPc> + CANMessage m; + m.id = 0x0123; + 41c: 83 e2 ldi r24, 0x23 ; 35 + 41e: 91 e0 ldi r25, 0x01 ; 1 + 420: 9a 83 std Y+2, r25 ; 0x02 + 422: 89 83 std Y+1, r24 ; 0x01 + m.rtr = 0; + 424: 1b 82 std Y+3, r1 ; 0x03 + m.length = 2; + 426: 82 e0 ldi r24, 0x02 ; 2 + 428: 8c 83 std Y+4, r24 ; 0x04 + m.data[0] = 0xAF; + 42a: 8f ea ldi r24, 0xAF ; 175 + 42c: 8d 83 std Y+5, r24 ; 0x05 + m.data[1] = 0xFE; + 42e: 8e ef ldi r24, 0xFE ; 254 + 430: 8e 83 std Y+6, r24 ; 0x06 + while(1) + { + l.color(Led::GREEN); + 432: 62 e0 ldi r22, 0x02 ; 2 + 434: 88 e0 ldi r24, 0x08 ; 8 + 436: 91 e0 ldi r25, 0x01 ; 1 + 438: 0e 94 ef 01 call 0x3de ; 0x3de <_ZN3Led5colorEh> + 43c: 2f ef ldi r18, 0xFF ; 255 + 43e: 83 ed ldi r24, 0xD3 ; 211 + 440: 90 e3 ldi r25, 0x30 ; 48 + 442: 21 50 subi r18, 0x01 ; 1 + 444: 80 40 sbci r24, 0x00 ; 0 + 446: 90 40 sbci r25, 0x00 ; 0 + 448: e1 f7 brne .-8 ; 0x442 + 44a: 00 c0 rjmp .+0 ; 0x44c + 44c: 00 00 nop + //c.can_send_message(&m); + //l.color(Led::BLACK); + //_delay_ms(100); + //l.color(Led::GREEN); + + uint8_t r = c.can_get_message(&m); + 44e: be 01 movw r22, r28 + 450: 6f 5f subi r22, 0xFF ; 255 + 452: 7f 4f sbci r23, 0xFF ; 255 + 454: 86 e0 ldi r24, 0x06 ; 6 + 456: 91 e0 ldi r25, 0x01 ; 1 + 458: 0e 94 53 01 call 0x2a6 ; 0x2a6 <_ZN3Can15can_get_messageEP10CANMessage> + if(r == 0xFF) { + 45c: 8f 3f cpi r24, 0xFF ; 255 + 45e: 61 f4 brne .+24 ; 0x478 + l.color(Led::RED); + 460: 64 e0 ldi r22, 0x04 ; 4 + 462: 88 e0 ldi r24, 0x08 ; 8 + 464: 91 e0 ldi r25, 0x01 ; 1 + 466: 0e 94 ef 01 call 0x3de ; 0x3de <_ZN3Led5colorEh> + 46a: 8f e3 ldi r24, 0x3F ; 63 + 46c: 9c e9 ldi r25, 0x9C ; 156 + 46e: 01 97 sbiw r24, 0x01 ; 1 + 470: f1 f7 brne .-4 ; 0x46e + 472: 00 c0 rjmp .+0 ; 0x474 + 474: 00 00 nop + 476: dd cf rjmp .-70 ; 0x432 + _delay_ms(10); + } else { + l.color(Led::BLUE); + 478: 61 e0 ldi r22, 0x01 ; 1 + 47a: 88 e0 ldi r24, 0x08 ; 8 + 47c: 91 e0 ldi r25, 0x01 ; 1 + 47e: 0e 94 ef 01 call 0x3de ; 0x3de <_ZN3Led5colorEh> + 482: 9f ef ldi r25, 0xFF ; 255 + 484: 23 ed ldi r18, 0xD3 ; 211 + 486: 80 e3 ldi r24, 0x30 ; 48 + 488: 91 50 subi r25, 0x01 ; 1 + 48a: 20 40 sbci r18, 0x00 ; 0 + 48c: 80 40 sbci r24, 0x00 ; 0 + 48e: e1 f7 brne .-8 ; 0x488 + 490: 00 c0 rjmp .+0 ; 0x492 + 492: 00 00 nop + 494: ce cf rjmp .-100 ; 0x432 -000003a8 <_GLOBAL__sub_I_l>: -#include "config.h" +00000496 <_GLOBAL__sub_I_l>: #include "Led.h" +#include "Rs232.h" #include "Can.h" #include Led l; - 3a8: 81 e0 ldi r24, 0x01 ; 1 - 3aa: 91 e0 ldi r25, 0x01 ; 1 - 3ac: 0e 94 c1 01 call 0x382 ; 0x382 <_ZN3LedC1Ev> + 496: 88 e0 ldi r24, 0x08 ; 8 + 498: 91 e0 ldi r25, 0x01 ; 1 + 49a: 0e 94 ec 01 call 0x3d8 ; 0x3d8 <_ZN3LedC1Ev> +Rs232 r; + 49e: 87 e0 ldi r24, 0x07 ; 7 + 4a0: 91 e0 ldi r25, 0x01 ; 1 + 4a2: 0e 94 6d 02 call 0x4da ; 0x4da <_ZN5Rs232C1Ev> Can c; - 3b0: 80 e0 ldi r24, 0x00 ; 0 - 3b2: 91 e0 ldi r25, 0x01 ; 1 - 3b4: 0e 94 89 01 call 0x312 ; 0x312 <_ZN3CanC1Ev> - 3b8: 08 95 ret + 4a6: 86 e0 ldi r24, 0x06 ; 6 + 4a8: 91 e0 ldi r25, 0x01 ; 1 + 4aa: 0e 94 07 01 call 0x20e ; 0x20e <_ZN3CanC1Ev> + 4ae: 08 95 ret -000003ba <__tablejump2__>: - 3ba: ee 0f add r30, r30 - 3bc: ff 1f adc r31, r31 +000004b0 <_ZN5Rs23212uart_putcharEh>: + init(); +} -000003be <__tablejump__>: - 3be: 05 90 lpm r0, Z+ - 3c0: f4 91 lpm r31, Z - 3c2: e0 2d mov r30, r0 - 3c4: 09 94 ijmp +uint8_t Rs232::uart_putchar(uint8_t c) +{ + loop_until_bit_is_set(UCSR1A, UDRE1); //Ausgabe des Zeichens + 4b0: e8 ec ldi r30, 0xC8 ; 200 + 4b2: f0 e0 ldi r31, 0x00 ; 0 + 4b4: 80 81 ld r24, Z + 4b6: 85 ff sbrs r24, 5 + 4b8: fd cf rjmp .-6 ; 0x4b4 <_ZN5Rs23212uart_putcharEh+0x4> + UDR1 = c; + 4ba: 60 93 ce 00 sts 0x00CE, r22 + return 0; +} + 4be: 80 e0 ldi r24, 0x00 ; 0 + 4c0: 08 95 ret -000003c6 <_exit>: - 3c6: f8 94 cli +000004c2 <_ZN5Rs2324initEv>: -000003c8 <__stop_program>: - 3c8: ff cf rjmp .-2 ; 0x3c8 <__stop_program> +void Rs232::init() +{ + UCSR1C = (1 << UCSZ11) |(1 << UCSZ10); //8N1 + 4c2: 86 e0 ldi r24, 0x06 ; 6 + 4c4: 80 93 ca 00 sts 0x00CA, r24 + UCSR1B |= /*(1<: + */ + +#include "Rs232.h" + +Rs232::Rs232() { + init(); + 4da: 0e 94 61 02 call 0x4c2 ; 0x4c2 <_ZN5Rs2324initEv> + 4de: 08 95 ret + +000004e0 <_ZN5Rs2324sendEPc>: + UCSR1C = (1 << UCSZ11) |(1 << UCSZ10); //8N1 + UCSR1B |= /*(1< + UCSR1C = (1 << UCSZ11) |(1 << UCSZ10); //8N1 + UCSR1B |= /*(1< + UCSR1B |= /*(1< + { + uart_putchar(*text); + text++; + } + 500: df 91 pop r29 + 502: cf 91 pop r28 + 504: 1f 91 pop r17 + 506: 0f 91 pop r16 + 508: 08 95 ret + +0000050a <__tablejump2__>: + 50a: ee 0f add r30, r30 + 50c: ff 1f adc r31, r31 + +0000050e <__tablejump__>: + 50e: 05 90 lpm r0, Z+ + 510: f4 91 lpm r31, Z + 512: e0 2d mov r30, r0 + 514: 09 94 ijmp + +00000516 <_exit>: + 516: f8 94 cli + +00000518 <__stop_program>: + 518: ff cf rjmp .-2 ; 0x518 <__stop_program> diff --git a/Mainboard/Mainboard/Debug/Mainboard.map b/Mainboard/Mainboard/Debug/Mainboard.map index 039851b..446bde3 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.map +++ b/Mainboard/Mainboard/Debug/Mainboard.map @@ -2,6 +2,8 @@ Archive member included because of file (symbol) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o (exit) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + Mainboard.o (__do_copy_data) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o) Mainboard.o (__do_clear_bss) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_ctors.o) @@ -18,10 +20,6 @@ Discarded input sections 0x00000000 0x2c Can.o .text._ZN3Can16can_send_messageEP10CANMessage 0x00000000 0x138 Can.o - .text._ZN3Can22mcp2515_read_rx_statusEv - 0x00000000 0x2e Can.o - .text._ZN3Can15can_get_messageEP10CANMessage - 0x00000000 0x12a Can.o .text 0x00000000 0x0 Led.o .bss 0x00000000 0x0 Led.o .text._ZN3Led6uninitEv @@ -31,6 +29,8 @@ Discarded input sections .text._ZN3Led7rainbowEh 0x00000000 0x7c Led.o .text 0x00000000 0x0 Mainboard.o + .text 0x00000000 0x0 Rs232.o + .bss 0x00000000 0x0 Rs232.o .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .text.libgcc.mul @@ -44,6 +44,19 @@ Discarded input sections 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .text.libgcc.fmul 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .text.libgcc.div + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o) .text.libgcc.mul @@ -102,6 +115,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 LOAD Can.o LOAD Led.o LOAD Mainboard.o +LOAD Rs232.o START GROUP LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libm.a END GROUP @@ -201,7 +215,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0x3ca +.text 0x00000000 0x51a *(.vectors) .vectors 0x00000000 0x74 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o 0x00000000 __vector_default @@ -240,99 +254,120 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.init3) *(.init3) *(.init4) - .init4 0x00000082 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o) - 0x00000082 __do_clear_bss + .init4 0x00000082 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) + 0x00000082 __do_copy_data + .init4 0x00000098 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o) + 0x00000098 __do_clear_bss *(.init4) *(.init5) *(.init5) *(.init6) - .init6 0x00000092 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_ctors.o) - 0x00000092 __do_global_ctors + .init6 0x000000a8 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_ctors.o) + 0x000000a8 __do_global_ctors *(.init6) *(.init7) *(.init7) *(.init8) *(.init8) *(.init9) - .init9 0x000000a8 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o + .init9 0x000000be 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o *(.init9) *(.text) - .text 0x000000b0 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o - 0x000000b0 __vector_22 - 0x000000b0 __vector_28 - 0x000000b0 __vector_1 - 0x000000b0 __vector_24 - 0x000000b0 __vector_12 - 0x000000b0 __bad_interrupt - 0x000000b0 __vector_6 - 0x000000b0 __vector_3 - 0x000000b0 __vector_23 - 0x000000b0 __vector_25 - 0x000000b0 __vector_11 - 0x000000b0 __vector_13 - 0x000000b0 __vector_17 - 0x000000b0 __vector_19 - 0x000000b0 __vector_7 - 0x000000b0 __vector_27 - 0x000000b0 __vector_5 - 0x000000b0 __vector_4 - 0x000000b0 __vector_9 - 0x000000b0 __vector_2 - 0x000000b0 __vector_21 - 0x000000b0 __vector_15 - 0x000000b0 __vector_8 - 0x000000b0 __vector_26 - 0x000000b0 __vector_14 - 0x000000b0 __vector_10 - 0x000000b0 __vector_16 - 0x000000b0 __vector_18 - 0x000000b0 __vector_20 - 0x000000b4 . = ALIGN (0x2) + .text 0x000000c6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o + 0x000000c6 __vector_22 + 0x000000c6 __vector_28 + 0x000000c6 __vector_1 + 0x000000c6 __vector_24 + 0x000000c6 __vector_12 + 0x000000c6 __bad_interrupt + 0x000000c6 __vector_6 + 0x000000c6 __vector_3 + 0x000000c6 __vector_23 + 0x000000c6 __vector_25 + 0x000000c6 __vector_11 + 0x000000c6 __vector_13 + 0x000000c6 __vector_17 + 0x000000c6 __vector_19 + 0x000000c6 __vector_7 + 0x000000c6 __vector_27 + 0x000000c6 __vector_5 + 0x000000c6 __vector_4 + 0x000000c6 __vector_9 + 0x000000c6 __vector_2 + 0x000000c6 __vector_21 + 0x000000c6 __vector_15 + 0x000000c6 __vector_8 + 0x000000c6 __vector_26 + 0x000000c6 __vector_14 + 0x000000c6 __vector_10 + 0x000000c6 __vector_16 + 0x000000c6 __vector_18 + 0x000000c6 __vector_20 + 0x000000ca . = ALIGN (0x2) *(.text.*) - .text._ZN3Can8init_pinEv - 0x000000b4 0x30 Can.o - 0x000000b4 _ZN3Can8init_pinEv - .text._ZN3Can8init_spiEv - 0x000000e4 0x1a Can.o - 0x000000e4 _ZN3Can8init_spiEv .text._ZN3Can8spi_putcEh - 0x000000fe 0xc8 Can.o - 0x000000fe _ZN3Can8spi_putcEh + 0x000000ca 0x32 Can.o + 0x000000ca _ZN3Can8spi_putcEh + .text._ZN3Can8init_pinEv + 0x000000fc 0x12 Can.o + 0x000000fc _ZN3Can8init_pinEv + .text._ZN3Can8init_spiEv + 0x0000010e 0xa Can.o + 0x0000010e _ZN3Can8init_spiEv .text._ZN3Can22mcp2515_write_registerEhh - 0x000001c6 0x32 Can.o - 0x000001c6 _ZN3Can22mcp2515_write_registerEhh - .text._ZN3Can18mcp2515_bit_modifyEhhh - 0x000001f8 0x40 Can.o - 0x000001f8 _ZN3Can18mcp2515_bit_modifyEhhh + 0x00000118 0x32 Can.o + 0x00000118 _ZN3Can22mcp2515_write_registerEhh .text._ZN3Can8init_canEv - 0x00000238 0xda Can.o - 0x00000238 _ZN3Can8init_canEv + 0x0000014a 0xc4 Can.o + 0x0000014a _ZN3Can8init_canEv .text._ZN3CanC2Ev - 0x00000312 0x68 Can.o - 0x00000312 _ZN3CanC2Ev - 0x00000312 _ZN3CanC1Ev + 0x0000020e 0x2a Can.o + 0x0000020e _ZN3CanC2Ev + 0x0000020e _ZN3CanC1Ev + .text._ZN3Can18mcp2515_bit_modifyEhhh + 0x00000238 0x40 Can.o + 0x00000238 _ZN3Can18mcp2515_bit_modifyEhhh + .text._ZN3Can22mcp2515_read_rx_statusEv + 0x00000278 0x2e Can.o + 0x00000278 _ZN3Can22mcp2515_read_rx_statusEv + .text._ZN3Can15can_get_messageEP10CANMessage + 0x000002a6 0x12a Can.o + 0x000002a6 _ZN3Can15can_get_messageEP10CANMessage .text._ZN3Led4initEv - 0x0000037a 0x8 Led.o - 0x0000037a _ZN3Led4initEv + 0x000003d0 0x8 Led.o + 0x000003d0 _ZN3Led4initEv .text._ZN3LedC2Ev - 0x00000382 0x6 Led.o - 0x00000382 _ZN3LedC1Ev - 0x00000382 _ZN3LedC2Ev + 0x000003d8 0x6 Led.o + 0x000003d8 _ZN3LedC1Ev + 0x000003d8 _ZN3LedC2Ev .text._ZN3Led5colorEh - 0x00000388 0x14 Led.o - 0x00000388 _ZN3Led5colorEh - .text.main 0x0000039c 0xc Mainboard.o - 0x0000039c main + 0x000003de 0x14 Led.o + 0x000003de _ZN3Led5colorEh + .text.main 0x000003f2 0xa4 Mainboard.o + 0x000003f2 main .text._GLOBAL__sub_I_l - 0x000003a8 0x12 Mainboard.o - .text.libgcc 0x000003ba 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_tablejump.o) - 0x000003ba __tablejump2__ - 0x000003be __tablejump__ - 0x000003c6 . = ALIGN (0x2) + 0x00000496 0x1a Mainboard.o + .text._ZN5Rs23212uart_putcharEh + 0x000004b0 0x12 Rs232.o + 0x000004b0 _ZN5Rs23212uart_putcharEh + .text._ZN5Rs2324initEv + 0x000004c2 0x18 Rs232.o + 0x000004c2 _ZN5Rs2324initEv + .text._ZN5Rs232C2Ev + 0x000004da 0x6 Rs232.o + 0x000004da _ZN5Rs232C2Ev + 0x000004da _ZN5Rs232C1Ev + .text._ZN5Rs2324sendEPc + 0x000004e0 0x2a Rs232.o + 0x000004e0 _ZN5Rs2324sendEPc + .text.libgcc 0x0000050a 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_tablejump.o) + 0x0000050a __tablejump2__ + 0x0000050e __tablejump__ + 0x00000516 . = ALIGN (0x2) *(.fini9) - .fini9 0x000003c6 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) - 0x000003c6 _exit - 0x000003c6 exit + .fini9 0x00000516 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) + 0x00000516 _exit + 0x00000516 exit *(.fini9) *(.fini8) *(.fini8) @@ -351,47 +386,53 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000003c6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) + .fini0 0x00000516 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) *(.fini0) - 0x000003ca _etext = . + 0x0000051a _etext = . -.data 0x00800100 0x0 load address 0x000003ca +.data 0x00800100 0x6 load address 0x0000051a 0x00800100 PROVIDE (__data_start, .) *(.data) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .data 0x00800100 0x0 Can.o .data 0x00800100 0x0 Led.o .data 0x00800100 0x0 Mainboard.o + .data 0x00800100 0x0 Rs232.o .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_ctors.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_tablejump.o) *(.data*) *(.rodata) *(.rodata*) + .rodata.str1.1 + 0x00800100 0x5 Mainboard.o *(.gnu.linkonce.d*) - 0x00800100 . = ALIGN (0x2) - 0x00800100 _edata = . - 0x00800100 PROVIDE (__data_end, .) + 0x00800106 . = ALIGN (0x2) + *fill* 0x00800105 0x1 + 0x00800106 _edata = . + 0x00800106 PROVIDE (__data_end, .) -.bss 0x00800100 0x2 - 0x00800100 PROVIDE (__bss_start, .) +.bss 0x00800106 0x3 + 0x00800106 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800100 0x2 Mainboard.o - 0x00800100 c - 0x00800101 l + .bss 0x00800106 0x3 Mainboard.o + 0x00800106 c + 0x00800107 r + 0x00800108 l *(.bss*) *(COMMON) - 0x00800102 PROVIDE (__bss_end, .) - 0x000003ca __data_load_start = LOADADDR (.data) - 0x000003ca __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00800109 PROVIDE (__bss_end, .) + 0x0000051a __data_load_start = LOADADDR (.data) + 0x00000520 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00800102 0x0 - 0x00800102 PROVIDE (__noinit_start, .) +.noinit 0x00800109 0x0 + 0x00800109 PROVIDE (__noinit_start, .) *(.noinit*) - 0x00800102 PROVIDE (__noinit_end, .) - 0x00800102 _end = . - 0x00800102 PROVIDE (__heap_start, .) + 0x00800109 PROVIDE (__noinit_end, .) + 0x00800109 _end = . + 0x00800109 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -438,6 +479,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x30 (size before relaxing) .comment 0x00000000 0x30 Led.o .comment 0x00000000 0x30 Mainboard.o + .comment 0x00000000 0x30 Rs232.o .debug *(.debug) @@ -451,7 +493,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0xe0 +.debug_aranges 0x00000000 0x118 *(.debug_aranges) .debug_aranges 0x00000000 0x70 Can.o @@ -459,48 +501,58 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x00000070 0x48 Led.o .debug_aranges 0x000000b8 0x28 Mainboard.o + .debug_aranges + 0x000000e0 0x38 Rs232.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x1c15 +.debug_info 0x00000000 0x1e0f *(.debug_info) - .debug_info 0x00000000 0x1274 Can.o - .debug_info 0x00001274 0x4f8 Led.o - .debug_info 0x0000176c 0x4a9 Mainboard.o + .debug_info 0x00000000 0xf5f Can.o + .debug_info 0x00000f5f 0x4f8 Led.o + .debug_info 0x00001457 0x781 Mainboard.o + .debug_info 0x00001bd8 0x237 Rs232.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x750 +.debug_abbrev 0x00000000 0x99e *(.debug_abbrev) - .debug_abbrev 0x00000000 0x353 Can.o - .debug_abbrev 0x00000353 0x1eb Led.o - .debug_abbrev 0x0000053e 0x212 Mainboard.o + .debug_abbrev 0x00000000 0x34a Can.o + .debug_abbrev 0x0000034a 0x1eb Led.o + .debug_abbrev 0x00000535 0x2fc Mainboard.o + .debug_abbrev 0x00000831 0x16d Rs232.o -.debug_line 0x00000000 0x59e +.debug_line 0x00000000 0x72a *(.debug_line) - .debug_line 0x00000000 0x340 Can.o - .debug_line 0x00000340 0x162 Led.o - .debug_line 0x000004a2 0xfc Mainboard.o + .debug_line 0x00000000 0x2e1 Can.o + .debug_line 0x000002e1 0x162 Led.o + .debug_line 0x00000443 0x1ca Mainboard.o + .debug_line 0x0000060d 0x11d Rs232.o -.debug_frame 0x00000000 0x2d8 +.debug_frame 0x00000000 0x338 *(.debug_frame) - .debug_frame 0x00000000 0x1c4 Can.o - .debug_frame 0x000001c4 0xe0 Led.o - .debug_frame 0x000002a4 0x34 Mainboard.o + .debug_frame 0x00000000 0x1ac Can.o + .debug_frame 0x000001ac 0xe0 Led.o + .debug_frame 0x0000028c 0x44 Mainboard.o + .debug_frame 0x000002d0 0x68 Rs232.o -.debug_str 0x00000000 0x419 +.debug_str 0x00000000 0x490 *(.debug_str) .debug_str 0x00000000 0x389 Can.o 0x3e1 (size before relaxing) .debug_str 0x00000389 0x23 Led.o 0x185 (size before relaxing) - .debug_str 0x000003ac 0x6d Mainboard.o - 0x3b8 (size before relaxing) + .debug_str 0x000003ac 0xc2 Mainboard.o + 0x465 (size before relaxing) + .debug_str 0x0000046e 0x22 Rs232.o + 0x14a (size before relaxing) -.debug_loc 0x00000000 0xc98 +.debug_loc 0x00000000 0xd47 *(.debug_loc) - .debug_loc 0x00000000 0x8ad Can.o - .debug_loc 0x000008ad 0x3eb Led.o + .debug_loc 0x00000000 0x796 Can.o + .debug_loc 0x00000796 0x3eb Led.o + .debug_loc 0x00000b81 0xad Mainboard.o + .debug_loc 0x00000c2e 0x119 Rs232.o .debug_macinfo *(.debug_macinfo) @@ -508,11 +560,12 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0xf8 +.debug_ranges 0x00000000 0x120 *(.debug_ranges) .debug_ranges 0x00000000 0x60 Can.o .debug_ranges 0x00000060 0x80 Led.o .debug_ranges 0x000000e0 0x18 Mainboard.o + .debug_ranges 0x000000f8 0x28 Rs232.o .debug_macro *(.debug_macro) diff --git a/Mainboard/Mainboard/Debug/Mainboard.srec b/Mainboard/Mainboard/Debug/Mainboard.srec index ddd7179..00734d1 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.srec +++ b/Mainboard/Mainboard/Debug/Mainboard.srec @@ -1,63 +1,85 @@ S01100004D61696E626F6172642E7372656386 -S11300000C943B000C9458000C9458000C94580029 -S11300100C9458000C9458000C9458000C945800FC -S11300200C9458000C9458000C9458000C945800EC -S11300300C9458000C9458000C9458000C945800DC -S11300400C9458000C9458000C9458000C945800CC -S11300500C9458000C9458000C9458000C945800BC -S11300600C9458000C9458000C9458000C945800AC -S11300700C945800D40111241FBECFEFD4E0DEBF8E -S1130080CDBF21E0A0E0B1E001C01D92A230B207D3 -S1130090E1F710E0C6E7D0E004C02297FE010E9419 -S11300A0DF01C437D107C9F70E94CE010C94E301E4 -S11300B00C94000084B1866084B985B1817F85B9D0 -S11300C0249A2C9A569A5E988FE39CE90197F1F74B -S11300D000C000005E9A8FE39CE90197F1F700C02D -S11300E0000008951CBC2FEF81EE94E02150804065 -S11300F09040E1F700C0000083E58CBD08951F9394 -S1130100CF93DF9300D000D01F92CDB7DEB7162F68 -S113011061E0CE0105960E94C4011EBD2FEF33ECB1 -S113012089E0215030408040E1F700C0000060E0E9 -S1130130CE0104960E94C4019FEF23EC39E0915054 -S113014020403040E1F700C000000DB407FC31C08E -S11301500DB406FE0FC067E0CE0103960E94C401F1 -S11301608AEA96EE26E931E0815090402040304002 -S1130170D9F7000065E0CE0102960E94C4018FEF1A -S113018091EE24E0815090402040E1F700C000004F -S113019060E0CE0101960E94C4013FEF81EE94E03D -S11301A0315080409040E1F700C000000DB407FEDC -S11301B0CFCF8EB50F900F900F900F900F90DF91CF -S11301C0CF911F9108950F931F93CF93DF93EC0169 -S11301D0062F142F2C9862E00E947F00602FCE011E -S11301E00E947F00612FCE010E947F002C9ADF9134 -S11301F0CF911F910F910895FF920F931F93CF9367 -S1130200DF93EC01F62E042F122F2C9865E00E9448 -S11302107F006F2DCE010E947F00602FCE010E94CF -S11302207F00612FCE010E947F002C9ADF91CF9135 -S11302301F910F91FF900895CF93DF93EC012C98B9 -S113024060EC0E947F008FE99FE00197F1F700C006 -S113025000002C9A8FE39CE90197F1F700C000009D -S113026047E06AE2CE010E94E30040E969E2CE0180 -S11302700E94E30042E068E2CE010E94E30043E012 -S11302806BE2CE010E94E30040E660E6CE010E94EC -S1130290E30040E660E7CE010E94E30040E060E254 -S11302A0CE010E94E30040E061E2CE010E94E3003F -S11302B040E062E2CE010E94E30040E063E2CE014E -S11302C00E94E30040E064E2CE010E94E30040E0CB -S11302D065E2CE010E94E30040E066E2CE010E94A6 -S11302E0E30040E067E2CE010E94E30040E06CE0FE -S11302F0CE010E94E30040E06DE0CE010E94E300E5 -S113030020E040EE6FE0CE010E94FC00DF91CF912F -S113031008950F931F93CF93DF9300D0CDB7DEB72B -S11303208C0162E0CE0102960E94C4012FEF81EE9F -S113033094E0215080409040E1F700C0000060E06C -S1130340CE0101960E94C4012FEF81EE94E021506A -S113035080409040E1F700C00000C8010E945A00AC -S1130360C8010E947200C8010E941C010F900F90E6 -S1130370DF91CF911F910F91089584B1806E84B95C -S113038008950E94BD01089585B18F7185B985B125 -S11303906295660F607E682B65B9089566E081E01A -S11303A091E00E94C401FFCF81E091E00E94C1016D -S11303B080E091E00E9489010895EE0FFF1F0590EF -S10D03C0F491E02D0994F894FFCFA6 +S11300000C943B000C9463000C9463000C94630008 +S11300100C9463000C9463000C9463000C946300D0 +S11300200C9463000C9463000C9463000C946300C0 +S11300300C9463000C9463000C9463000C946300B0 +S11300400C9463000C9463000C9463000C946300A0 +S11300500C9463000C9463000C9463000C94630090 +S11300600C9463000C9463000C9463000C94630080 +S11300700C9463004B0211241FBECFEFD4E0DEBF0B +S1130080CDBF11E0A0E0B1E0EAE1F5E002C00590E7 +S11300900D92A630B107D9F721E0A6E0B1E001C086 +S11300A01D92A930B207E1F710E0C6E7D0E004C022 +S11300B02297FE010E948702C437D107C9F70E9424 +S11300C0F9010C948B020C940000CF93DF9300D0C1 +S11300D0CDB7DEB76EBD65E0CE0102960E94EF019A +S11300E00DB407FEFDCF60E0CE0101960E94EF0142 +S11300F08EB50F900F90DF91CF91089584B18660F3 +S113010084B985B1817F85B9249A2C9A089580E5B4 +S11301108CBD81E08DBD08950F931F93CF93DF9322 +S1130120EC01062F142F2C9862E00E946500602FCA +S1130130CE010E946500612FCE010E9465002C9AB9 +S1130140DF91CF911F910F910895CF93DF93EC012D +S11301502C9860EC0E9465008FE99FE00197F1F70D +S113016000C000002C9A8FE39CE90197F1F700C0CE +S1130170000047E06AE2CE010E948C0040E969E297 +S1130180CE010E948C0042E068E2CE010E948C0005 +S113019043E06BE2CE010E948C0040E660E6CE01B3 +S11301A00E948C0040E660E7CE010E948C0040E093 +S11301B060E2CE010E948C0040E061E2CE010E9428 +S11301C08C0040E062E2CE010E948C0040E063E2D9 +S11301D0CE010E948C0040E064E2CE010E948C00BB +S11301E040E065E2CE010E948C0040E066E2CE0170 +S11301F00E948C0040E067E2CE010E948C0040E047 +S11302006CE0CE010E948C00DF91CF910895CF93D2 +S1130210DF93EC018FE39CE90197F1F700C0000044 +S1130220CE010E947E00CE010E948700CE010E9472 +S1130230A500DF91CF910895FF920F931F93CF9361 +S1130240DF93EC01F62E042F122F2C9865E00E9408 +S113025065006F2DCE010E946500602FCE010E94C3 +S11302606500612FCE010E9465002C9ADF91CF9129 +S11302701F910F91FF9008951F93CF93DF93EC018B +S11302802C9860EB0E9465006FEFCE010E94650020 +S1130290182F6FEFCE010E9465002C9A812FDF91F9 +S11302A0CF911F910895AF92BF92CF92DF92EF92B8 +S11302B0FF920F931F93CF93DF931F92CDB7DEB7B7 +S11302C07C016B010E943C018983898186FF06C001 +S11302D02C9860E9C7010E94650009C089818823C0 +S11302E00CF069C02C9864E9C7010E9465006FEFA7 +S11302F0C7010E94650090E0880F991F880F991F1D +S1130300880F991FF601918380836FEFC7010E94C4 +S1130310650090E096958795929582958F708927D0 +S11303209F708927F60120813181822B932B918341 +S113033080836FEFC7010E9465006FEFC7010E94C1 +S113034065006FEFC7010E9465008F70F60183831B +S11303508823A1F086010C5F1F4F5601F5E0AF0E14 +S1130360B11C8150A80EB11C6FEFC7010E9465003B +S1130370F80181938F01EA15FB05B1F72C9A898165 +S113038083FF04C081E0F601828302C0F601128279 +S1130390898186FF07C020E041E06CE2C7010E942A +S11303A01C0106C020E042E06CE2C7010E941C016F +S11303B08981877001C08FEF0F90DF91CF911F91DA +S11303C00F91FF90EF90DF90CF90BF90AF90089582 +S11303D084B1806E84B908950E94E801089585B1BE +S11303E08F7185B985B16295660F607E682B65B99A +S11303F00895CF93DF93CDB7DEB72C970FB6F8945B +S1130400DEBF0FBECDBF66E088E091E00E94EF0141 +S113041060E071E087E091E00E94700283E291E085 +S11304209A8389831B8282E08C838FEA8D838EEF8B +S11304308E8362E088E091E00E94EF012FEF83ED6C +S113044090E3215080409040E1F700C00000BE01DD +S11304506F5F7F4F86E091E00E9453018F3F61F40C +S113046064E088E091E00E94EF018FE39CE901974A +S1130470F1F700C00000DDCF61E088E091E00E9468 +S1130480EF019FEF23ED80E3915020408040E1F79E +S113049000C00000CECF88E091E00E94EC0187E02C +S11304A091E00E946D0286E091E00E9407010895A8 +S11304B0E8ECF0E0808185FFFDCF6093CE0080E022 +S11304C0089586E08093CA00E9ECF0E080818860BA +S11304D0808387E68093CC0008950E94610208958A +S11304E00F931F93CF93DF938C01EB0168816623F5 +S11304F039F02196C8010E94580269916111FACF1E +S1130500DF91CF911F910F910895EE0FFF1F05907A +S10D0510F491E02D0994F894FFCF54 +S109051A626C610A00009E S9030000FC diff --git a/Mainboard/Mainboard/Debug/Makefile b/Mainboard/Mainboard/Debug/Makefile index d195b0b..be2a735 100644 --- a/Mainboard/Mainboard/Debug/Makefile +++ b/Mainboard/Mainboard/Debug/Makefile @@ -38,7 +38,8 @@ SUBDIRS := C_SRCS += \ ../Can.cpp \ ../Led.cpp \ -../Mainboard.cpp +../Mainboard.cpp \ +../Rs232.cpp PREPROCESSING_SRCS += @@ -50,25 +51,29 @@ ASM_SRCS += OBJS += \ Can.o \ Led.o \ -Mainboard.o +Mainboard.o \ +Rs232.o OBJS_AS_ARGS += \ Can.o \ Led.o \ -Mainboard.o +Mainboard.o \ +Rs232.o C_DEPS += \ Can.d \ Led.d \ -Mainboard.d +Mainboard.d \ +Rs232.d C_DEPS_AS_ARGS += \ Can.d \ Led.d \ -Mainboard.d +Mainboard.d \ +Rs232.d OUTPUT_FILE_PATH +=Mainboard.elf @@ -89,6 +94,8 @@ LIB_DEP+= + + ./%.o: .././%.cpp @echo Building file: $< @echo Invoking: AVR8/GNU C++ Compiler : diff --git a/Mainboard/Mainboard/Debug/rs232.d b/Mainboard/Mainboard/Debug/Rs232.d similarity index 67% rename from Mainboard/Mainboard/Debug/rs232.d rename to Mainboard/Mainboard/Debug/Rs232.d index 37c4dcc..795b886 100644 --- a/Mainboard/Mainboard/Debug/rs232.d +++ b/Mainboard/Mainboard/Debug/Rs232.d @@ -1,12 +1,10 @@ -rs232.d rs232.o: .././rs232.c .././config.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \ +Rs232.d Rs232.o: .././Rs232.cpp .././Rs232.h .././config.h \ + c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdbool.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h \ + c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \ + c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h \ @@ -14,16 +12,13 @@ rs232.d rs232.o: .././rs232.c .././config.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/string.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h \ - c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \ - .././rs232.h + c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h + +.././Rs232.h: .././config.h: -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h: +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h: @@ -31,13 +26,9 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8- c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h: -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h: +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h: -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdbool.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h: +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h: @@ -54,13 +45,3 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8- c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/string.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h: - -.././rs232.h: diff --git a/Mainboard/Mainboard/Debug/makedep.mk b/Mainboard/Mainboard/Debug/makedep.mk index bf0f449..dadaf01 100644 --- a/Mainboard/Mainboard/Debug/makedep.mk +++ b/Mainboard/Mainboard/Debug/makedep.mk @@ -8,3 +8,5 @@ Led.cpp Mainboard.cpp +Rs232.cpp + diff --git a/Mainboard/Mainboard/Mainboard.cpp b/Mainboard/Mainboard/Mainboard.cpp index 8abd301..7e387cc 100644 --- a/Mainboard/Mainboard/Mainboard.cpp +++ b/Mainboard/Mainboard/Mainboard.cpp @@ -7,27 +7,42 @@ #include "config.h" #include "Led.h" +#include "Rs232.h" #include "Can.h" #include Led l; +Rs232 r; Can c; int main(void) { l.color(Led::YELLOW); - //CANMessage m; + r.send("bla\n"); + CANMessage m; + m.id = 0x0123; + m.rtr = 0; + m.length = 2; + m.data[0] = 0xAF; + m.data[1] = 0xFE; while(1) { - /*l.color(Led::GREEN); + l.color(Led::GREEN); + _delay_ms(1000); + //r.send("Text\n"); + //_delay_ms(500); + //c.can_send_message(&m); + //l.color(Led::BLACK); + //_delay_ms(100); + //l.color(Led::GREEN); uint8_t r = c.can_get_message(&m); if(r == 0xFF) { l.color(Led::RED); - _delay_ms(100); + _delay_ms(10); } else { l.color(Led::BLUE); - _delay_ms(100); - }*/ + _delay_ms(1000); + } } } \ No newline at end of file diff --git a/Mainboard/Mainboard/Mainboard.cppproj b/Mainboard/Mainboard/Mainboard.cppproj index 1176fbf..dbcf42d 100644 --- a/Mainboard/Mainboard/Mainboard.cppproj +++ b/Mainboard/Mainboard/Mainboard.cppproj @@ -18,7 +18,8 @@ Native true false - exception_table + + 0 true 0x20000000 @@ -104,42 +105,42 @@ - True - True - True - True - True - True - - - DEBUG - - - Optimize (-O1) - True - True - Default (-g2) - True - True - True - - - DEBUG - - - Optimize (-O1) - True - True - Default (-g2) - True - - - libm - - - <segmentname>=<address>, for example .boot=0xff - Default (-Wa,-g) - + True + True + True + True + True + True + + + DEBUG + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + <segmentname>=<address>, for example .boot=0xff + Default (-Wa,-g) + @@ -164,6 +165,12 @@ compile + + compile + + + compile + \ No newline at end of file diff --git a/Mainboard/Mainboard/Rs232.cpp b/Mainboard/Mainboard/Rs232.cpp new file mode 100644 index 0000000..d3c56b3 --- /dev/null +++ b/Mainboard/Mainboard/Rs232.cpp @@ -0,0 +1,34 @@ +/* + * Rs232.cpp + * + * Created: 04.11.2013 21:37:19 + * Author: netz + */ + +#include "Rs232.h" + +Rs232::Rs232() { + init(); +} + +uint8_t Rs232::uart_putchar(uint8_t c) +{ + loop_until_bit_is_set(UCSR1A, UDRE1); //Ausgabe des Zeichens + UDR1 = c; + return 0; +} + +void Rs232::init() +{ + UCSR1C = (1 << UCSZ11) |(1 << UCSZ10); //8N1 + UCSR1B |= /*(1< +#include + +class Rs232 { + private: + void init(); + uint8_t uart_putchar(uint8_t c); + public: + Rs232(); + Rs232(int) {} + void send(char *text); +}; + + + +#endif /* RS232_H_ */ \ No newline at end of file diff --git a/Mainboard/Mainboard/config.h b/Mainboard/Mainboard/config.h index 01820f0..121c732 100644 --- a/Mainboard/Mainboard/config.h +++ b/Mainboard/Mainboard/config.h @@ -10,5 +10,6 @@ #define CONFIG_H_ #define F_CPU 16000000 +#define BAUD_RATE 9600 #endif /* CONFIG_H_ */ \ No newline at end of file diff --git a/Mainboard/Mainboard/rs232.h b/Mainboard/Mainboard/rs232.h deleted file mode 100644 index 586c967..0000000 --- a/Mainboard/Mainboard/rs232.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * rs232.h - * - * Created: 06.10.2013 16:34:17 - * Author: netz - */ - -#include - -#ifndef RS232_H_ -#define RS232_H_ - -void init_rs232(); -void rs232_send(char * text); - -#endif /* RS232_H_ */ \ No newline at end of file