#avr | Logs for 2012-08-25

Back
[05:46:54] <zump> does anyone know how to use hw flow control with USART's that support it?
[07:08:24] <motionobserver> different sizes of LED's ? someone wanna give me the low-down?
[07:12:13] <OndraSterver> different sizes?
[07:12:17] <OndraSterver> for what purpose
[07:13:33] <jadew> how do you guys connect to a serial port with a custom baud rate from linux?
[07:34:35] <Kevin`_> jadew: how custom?
[07:34:49] <Kevin`_> jadew: is it something the standard uart can do?
[07:35:29] <motionobserver> im looking to find a resource/table of different led sizes and their typical applications
[07:36:31] <OndraSterver> motionobserver, typical applications?
[07:38:14] <motionobserver> by that i mean 'led X was designed to be embedded directly into motherboards' 'led Y has the highest lumen rating and is therefore often used in traffic lights' that sort of thing, wikipedia was ok but no rundown of individual types
[07:38:36] <OndraSterver> it is pretty much upto you what you find for what you need
[07:40:09] <motionobserver> experimentation time i guess!
[07:42:13] <jacekowski> motionobserver: it's all in datasheet
[07:42:20] <jacekowski> motionobserver: size doesn't matter
[07:43:04] <motionobserver> im n00b at life jace, can you explain what you mean by that?
[07:44:19] <motionobserver> ah dw i found a breakdown
[07:44:35] <GuShH> n00b at life...
[07:44:46] <GuShH> the hell does that mean?
[07:44:55] <jacekowski> motionobserver: size of led is not important
[07:45:36] <jacekowski> motionobserver: 5mm or 10mm led will have same "power"
[07:45:36] <jacekowski> motionobserver: most likely
[07:45:40] <jacekowski> but at the same time, 5mm can have more than 10mm
[07:45:45] <GuShH> leds are classified by lumen, angle, emitter array, etc. not by application, application would be a fixture designed for say a car, that happens to use LEDs.
[07:45:46] <motionobserver> ok so what are the benefits to changing led size, to fit casings or aesthetic design?
[07:45:49] <jacekowski> that's why it's all n datasheet
[07:46:10] <jacekowski> motionobserver: mechanical constraints
[07:46:10] <jacekowski> motionobserver: and possibly heat dissipation
[07:56:23] <motionobserver> reading about it now grummund sounds superduper
[08:03:39] <GuShH> So sure, if you are about to misguide someone I'll gladly kick your ass any time.
[08:31:41] <motionobserver> lulz menly men
[08:31:45] <motionobserver> thanks guys
[09:38:16] <molavy> what this error means? undefined symbol 'sprintf'
[09:43:22] <jadew> molavy, looks like a linker error
[09:43:51] <tlvb> or perhaps heador inclusion error?
[09:44:18] <CapnKernel> molavy: Do you have #include <stdio.h> at the top of that file?
[09:47:28] <molavy> oh yes,copy/paste problems.
[09:47:47] <molavy> jadew/CapnKernel/thanks
[09:48:10] <CapnKernel> np
[09:48:29] <jadew> has anyone managed to set a custom baud rate on linux?
[09:50:41] <specing> jadew: for what?
[09:50:50] <jadew> for a serial port
[09:50:57] <specing> man termios
[09:51:28] <jadew> yeah, from what I understand, it doesn't work
[09:51:53] <specing> How so? It works here
[09:52:33] <specing> also man stty
[09:52:37] <jadew> well, I tried it on my pc, and it didn't work
[09:52:55] <specing> How did you test?
[09:53:02] <jadew> wrote a program
[09:53:18] <jadew> I tried it with stty, it didn't work
[09:53:30] <jadew> setserial gives me invalid parameter
[09:53:56] <rue_bed> jadew, I can set custom rates for 16550 based uarts
[09:53:57] <jadew> tried using several clients, none worked
[09:54:06] <rue_bed> dosn't work with usb ones tho
[09:54:26] <specing> I can manipulate the pl2303 just ifne
[09:54:28] <jadew> yeah, this is a usb one
[09:54:46] <jadew> could be a driver issue, I guess
[09:54:58] <rue_bed> a usb one might not be able to do it
[09:55:08] <specing> ALL OF THEM CAN DO IT
[09:55:14] <rue_bed> whats the rate
[09:55:15] <specing> FFS it is a part of the serial spec
[09:55:19] <jadew> yeah, I know for a fact that it can do it
[09:55:24] <jadew> since it works fine on windows
[09:55:26] <rue_bed> ok
[09:55:34] <jadew> the rate is 750khz
[09:55:47] <rue_bed> well, I could tell you its a ioctl() call
[09:55:55] <specing> jadew: lol
[09:56:08] <jadew> specing: what? :)
[09:56:14] <specing> jadew: the standard does not specify 750khz as a supported rate
[09:56:16] <rue_bed> jadew, whats the baud rate tho
[09:56:27] <jadew> well, that's the baud rate 750
[09:56:27] <rue_bed> <specing> ALL OF THEM CAN DO IT
[09:56:35] <rue_bed> <specing> FFS it is a part of the serial spec
[09:56:37] <specing> Yes, all of them can change the rate
[09:56:39] <jadew> 750k, it has 0 error for a 12Mhz clock
[09:56:45] <jadew> which is what my usb dongle has
[09:56:49] <specing> man termios
[09:56:55] <rue_bed> 750 is not 750k
[09:56:59] <jadew> 750k
[09:57:09] <rue_bed> express that in 6 digits
[09:57:12] <specing> there is a list of common rates at the bottom of the manpage
[09:57:14] <rue_bed> 750000 ?
[09:57:14] <jadew> 750 000
[09:57:40] <rue_bed> 115k is really 115200
[09:57:57] <jadew> well, this one is exactly 750000
[09:57:59] <rue_bed> jadew, its for a reprap isn't it?
[09:58:23] <jadew> nope, it's for a bus pirate kinda thing I'm building
[09:58:27] <rue_bed> ah
[09:58:35] <tlvb> jadew: what language?
[09:58:39] <tlvb> c? python?
[09:58:41] <jadew> c
[09:58:45] <rue_bed> ioctl
[09:59:01] <tlvb> it can be a bit tricky, but it is possible to set nonstandard speeds
[09:59:01] <jadew> rue_bed: I tried it with ioctl, it simply doesn't work
[09:59:12] <rue_bed> what ioctl did you use
[09:59:13] <jadew> I set the baud base to 750 and the divisor to 1, nada
[09:59:24] <rue_bed> wrong one
[09:59:29] <jadew> TIOCSSERIAL
[09:59:32] <tlvb> jadew: https://github.com/tlvb/dmx512usb_software/blob/master/src/serial.cc
[10:00:19] <tlvb> jadew: Code I wrote to set 1.25Mbd (nonstandard) I'll see if I can find the tutorial/example I based it on
[10:00:39] <jadew> looks interresting, thanks
[10:01:21] <jadew> problem with that is that after TIOCGSERIAL
[10:01:26] <jadew> ss.baud_base is 0 for me
[10:01:57] <rue_bed> !bookmark high speed serial linux
[10:03:36] <jadew> baud_base = 0, custom_divisor = 4199100
[10:03:52] <jadew> I'm starting to think it's a screwed up driver
[10:04:12] <rue_bed> how do you know the adapters base rate?
[10:04:31] <jadew> it's what I got from ioctl(port, TIOCGSERIAL, &ss);
[10:08:25] <tlvb> I think this is the source for most of the speed relevant settings in my code come from http://stackoverflow.com/questions/3192478/ ...it does not discuss any case of baud base being zero though
[10:08:40] <jadew> the thing is I don't have to tell the adapter what base it has, I just need to tell what baud rate I need, it will make sense of it on it's own, but I figured setting the base_baud to what I want and using a 1 divisor, would make the linux driver ask for base / divisor
[10:10:09] <rue_bed> http://pastebin.com/6VJBYqDd
[10:10:16] <rue_bed> that does NOT work with usb adapters
[10:11:15] <jadew> rue_bed: well that's what I tried and yeah, it doesn't seem to work
[10:11:30] <jadew> so what does?
[10:11:42] <rue_bed> I dont know, I just got rid of the usb adapter
[10:11:46] <tlvb> rue_bed: that code does not seem significantly different from mine, and mine works with ft232 at least
[10:11:47] <jadew> heh
[10:12:11] <rue_bed> there must be a way
[10:12:12] <tlvb> or wait... maybe my reading comprehension is bad
[10:12:37] <jadew> it means the driver for ftdi is working properly
[10:13:14] <jadew> is the ftdi registering as a cdc device?
[10:13:28] <rue_bed> or it means the kernel people came up with another idea on how it should be done that they didnt' tell anyone about
[10:13:38] <jadew> cuz if it doesn't, it means the custom driver takes care of everthing
[10:13:38] <tlvb> hm, we set custom divisor a bit differently
[10:13:42] <rue_bed> shall we all go into ##kernel and dog them about this?
[10:13:47] <jadew> while with cdc, the protocol is standard
[10:14:10] <rue_bed> I can bring all 4 rues
[10:14:17] <jadew> lol
[10:15:03] <rue_bed> or we can just tear into the driver source
[10:15:12] <rue_bed> what usb driver you using?
[10:15:22] <rue_bed> (dmesg)
[10:15:27] <rue_bed> I'd like to solve this
[10:15:34] <jadew> I'm using the cdc_acm driver
[10:16:18] <jadew> was just thinking that if ftdi doesn't register as a cdc device, it means the issue could be in the driver
[10:16:29] <rue_bed> I'v made a library called SuperSimpleLinuxSerial and I'd like it to work across the board
[10:16:42] <jadew> but I can't really test that since I don't have another cdc device
[10:17:24] <tlvb> jadew: have you tried python + pyserial?
[10:17:43] <jadew> no
[10:18:51] <jadew> well screw this freaking waste of time, I'm rebooting into the system that works
[10:18:52] <jadew> brb
[10:19:38] <rue_house> pff it works, your just not doing it right
[10:19:42] <tlvb> heh
[10:20:59] <rue_house> there is no cdc_acm driver
[10:21:27] <rue_house> maybe he meant cypress
[10:21:51] <tlvb> I found that the difference between our baud base setting code were that mine adds +0.5 I guess for changing truncating into rounding
[10:21:56] <tlvb> jadew: opening serial ports with it (pyserial) is easy, perhaps it would be worthwile to try it, just to get some bearing on how difficult doing it in c would (ie. wether or not it works in python)
[10:22:16] <jadew> all this issues could have been avoided in microship would have added a setting to hardcode the baud rate into the chip and have it unchangable
[10:22:24] <rue_house> I didn't check to see if it was out by 1
[10:22:32] <tlvb> jadew: welcome back ...os traitor
[10:22:36] <jadew> lol
[10:22:47] <CapnKernel> There's a funny smell in here.
[10:23:00] <jadew> tlvb, will give it a try later, I need to go shopping with my g/f now
[10:23:00] <CapnKernel> Oh never mind, it's just jadew's ok
[10:23:01] <CapnKernel> os
[10:23:30] <CapnKernel> Some people go shopping with their credit card
[10:23:31] <rue_house> I'm late for my shower, biab
[10:24:12] <CapnKernel> rue_house: Hurry, or it will leave without you.
[10:25:45] <tlvb> shower launch in T minus ten seconds
[10:25:51] <tlvb> eight
[10:25:53] <jadew> I have a strategy on how to fix this, luckly I have some pic18F14K50
[10:26:00] <jadew> which apparently is the chip behind mcp2200
[10:26:19] <jadew> so I'm gonna try to write/find a stack for that pic
[10:26:30] <jadew> make it work the same, but with the fixed baud rate
[10:26:41] <jadew> and then try to flash the mcp2200 with the new firmware
[10:26:44] <jadew> problem solved
[10:28:02] <jadew> it would have been a lot easier if the firmware for the mcp2200 was open source, I could have just commented out the part that sets the baud rate
[10:31:20] <jadew> anyway, afk
[10:47:06] <rue_house> what?
[10:47:22] <rue_house> how does apic help you with not being able to set the baud rate?
[10:47:52] <rue_house> while you go around the problem I'm gonna try to go thru it, cause if I succeed I'll have something better off for everyone
[10:49:13] <izua_> jadew: or you can just buy a ft232rl or similar chip..
[10:50:06] <rue_house> my usb adapter is
[10:50:31] <rue_house> pl2303 4-3:1.0: pl2303 converter detected
[10:50:39] <rue_house> pl2303: Prolific PL2303 USB to serial adaptor driver
[10:50:57] <rue_house> pl2303.c pl2303.h
[10:52:09] <rue_house> port->tty->termios->c_ispeed = 9600;
[10:52:09] <rue_house> port->tty->termios->c_ospeed = 9600;
[10:56:44] <rue_house> bps = tty_get_baud_rate(port->tty);
[10:56:48] <rue_house> implies
[14:43:46] <vorsorken> Has anyone successfully used avrdude to read EEPROM? I keep getting the same block of (seemingly garbage) values no matter what I write to it.
[14:44:23] <vorsorken> Trying it with an Arduino btw and using its libs, I get the values I'm expecting.
[14:46:09] <specing> vorsorken: I have avrdude set to track the number of erase cycles, works like charm
[14:47:09] <vorsorken> Here's the command I'm using. Perhaps I'm doing something stupid.
[14:47:10] <vorsorken> $ avrdude -p atmega328p -C /etc/avrdude.conf -c arduino -b 115200 -P /dev/ttyACM0 -U eeprom:r:-:h
[14:50:53] <Thetawaves_> what is the - for?
[14:51:03] <Thetawaves_> shouldn't be eeprom.hex or something?
[14:51:14] <vorsorken> output goes to stdout
[14:51:15] <specing> stdout
[14:51:16] <Thetawaves_> is - supposed to dump to stdout or something?
[14:51:22] <Thetawaves_> ok
[14:51:22] <vorsorken> I've tried writing to a file same thing
[14:52:43] <Thetawaves_> thetawaves@ganymede:~$ avrdude -p atmega1284p -c usbtiny -U eeprom:r:-:h
[14:52:45] <Thetawaves_> works for me
[15:05:01] <Kevin`_> vorsorken: I have, indeed, sucessfully used avrdude to read eeprom
[15:05:12] <Kevin`_> vorsorken: are you sure the bootloader you are using supports it properly?
[15:05:25] <vorsorken> hmm no I'll look into that
[15:21:12] <tomatto> hi
[15:21:25] <tomatto> please, what is wrong with this?
[15:21:26] <tomatto> ../../usbdrv/usbdrv.h:455:6: error: variable 'usbDescriptorDevice' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
[15:25:09] <RikusW> make it const :-P
[15:25:50] <tomatto> why didn't do it guys in obdev?
[15:31:55] <damjan> tomatto: it's the newer gcc versions that are more strict
[15:33:57] <tomatto> damjan: so it is because of gcc, no binutils or libc-avr?
[18:41:44] <jdiez> hello, I'm programming an attiny84 using the arduino, and the High-Low Tech attiny cores. How come the led blink example runs slower when I select the internal 8MHz oscillator? at 1MHz it seems to run fine, I'm very confused.
[18:47:01] <timemage> jdiez, slower than what?
[18:47:17] <jdiez> timemage, it runs slower at 8MHz than at 1MHz
[18:47:36] <timemage> jdiez, hmm.
[18:47:45] <jdiez> I'm checking the fuses atm
[18:48:12] <timemage> jdiez, yeah. well, that was the only think i was going to ask is whether or not you were changing the clock divider as well.
[18:48:15] <jdiez> timemage, fuses are: low 0xe2, high 0xdf, extended 0xff
[18:48:31] <jdiez> and at the 8MHz setting the CKDIV8 seems to be disabled
[18:49:15] <jdiez> any tips?
[18:49:34] <OndraSterver> show us the code
[18:49:37] <timemage> getting a datasheet now.
[18:50:47] <jdiez> OndraSterver, the code is just arduino's blink example
[18:51:04] <jdiez> turn on led, delay 1000, turn off led
[18:51:12] <jdiez> and fuses seem to be fine at the 8MHz setting
[18:51:18] <jdiez> but the 1Mhz setting is definitely faster
[18:53:16] <OndraSterver> well
[18:53:19] <OndraSterver> tiny and arduino?
[18:53:35] <OndraSterver> as far as I know arduino is not directly targetted at tiny!
[18:53:43] <OndraSterver> that's your #1 issue right there
[18:53:45] <jdiez> right
[18:53:51] <jdiez> but there are cores for it
[18:53:58] <jdiez> I have tried using two different ones
[18:54:03] <jdiez> and the same weird behaviour
[18:54:17] <OndraSterver> well the thing is, it uses some delay stuff
[18:54:23] <OndraSterver> (don't ask me which one, I don't know itĂș
[18:54:24] <OndraSterver> )
[18:54:31] <OndraSterver> so on tiny it might behave differently
[18:54:41] <OndraSterver> different register position etc
[18:54:45] <jdiez> hmm
[18:54:57] <jdiez> what is a good way to program it using c instead of arduino?
[18:54:58] <OndraSterver> I have never seen (well, seen yes, but not working) tiny on arduino
[18:55:03] <OndraSterver> atmel studio :)
[18:55:07] <jdiez> mac?
[18:55:09] <OndraSterver> oh
[18:55:15] <OndraSterver> nano?
[18:55:17] <OndraSterver> notepad?
[18:55:18] <OndraSterver> lol
[18:55:21] <OndraSterver> no idea there
[18:55:22] <Tom_itx> hey
[18:55:25] <jdiez> yeah lol, but how would I program it?
[18:55:28] <OndraSterver> eya Tom_itx
[18:55:41] <OndraSterver> jdiez, the arduino itself can work as programmer, right?
[18:55:45] <jdiez> yep
[18:55:51] <jdiez> I have an arduino acting as the isp
[18:55:53] <OndraSterver> well, it emulates stk500 or something
[18:55:58] <jdiez> yes yes
[18:56:01] <OndraSterver> then avrdude
[18:56:04] <OndraSterver> should exist on mac
[18:56:11] <jdiez> it does
[18:56:16] <OndraSterver> there you go
[18:56:17] <jdiez> but what does the workflow look like?
[18:56:36] <OndraSterver> code in notepad -> avr-gcc (or make, if you write makefile) -> avrdude
[18:56:45] <OndraSterver> you can add the avrdude command into makefile even
[18:57:04] <OndraSterver> I am pretty sure there are some tutorials on stk500 on mac
[18:57:07] <OndraSterver> or programming avr on mac
[18:59:56] <timemage> jdiez, i take it you were recompiling, not just changing fuse bits.
[19:00:10] <jadew> are you guys aware of any avr based programmer for pics?
[19:01:04] <jdiez> timemage, of course
[19:01:23] <timemage> jdiez, that explains why i wasn't following.
[19:01:46] <hetii> Hi :)
[19:01:55] <jdiez> hm?
[19:02:04] <hetii> Did some of you know if there is channel about ARM ?
[19:02:37] <hetii> I need to find some board with quad core arm and possibility to plug SSD drive :)
[19:02:54] <Essobi> There's an arm channel... don't remember the name thou
[19:03:28] <jadew> is there a pic channel? I need to program this thing and I don't want to waste any money on it
[19:03:31] <timemage> jdiez, i think i'd have to start over. assuming you haven't figured out what's going on already, you can msg me.
[19:04:25] <timemage> jadew, you get two guesses as to what the channel is called.
[19:04:47] <jadew> timemage, I already tried #pic, tried #microchip as well
[19:04:54] <jadew> they're empty
[19:07:35] <jadew> ah, it's ##pic
[19:11:40] <timemage> jadew, =) that's just how it goes on freenode.
[19:12:56] <jadew> yeah, I'm having a hard time adjusting to that
[19:13:26] <jdiez> how can I read fuses using avrdude?
[19:13:56] <jadew> I do -U lfuse:r:m -v
[19:14:02] <jadew> the -v does the trick
[19:14:10] <jdiez> ok, thanks
[19:25:26] <OndraSterver> sometimes one has to wonder why do they use such... long names in ASF
[19:25:26] <OndraSterver> while (usart_data_register_is_empty(usart) == false);
[19:25:44] <OndraSterver> on the other hand they use often shorts which I have to think about what they mean (udc/udd/.. at USB)
[19:25:47] <jdiez> okay, I resolved the weird timing issue I had before
[19:25:47] <jadew> what is asf?
[19:25:55] <OndraSterver> atmel software framework
[19:25:59] <OndraSterver> part of atmel studio
[19:26:02] <jdiez> it was arduino's fault, it wasn't programming the fuses at all
[19:26:03] <OndraSterver> or separate as well
[19:26:03] <jadew> ah
[19:27:29] <jadew> going to have a smoke and then I'm gonna try to make an avr programmer for pics
[19:27:58] <kline> jadew: let me know if you get anywhere with that. ive got two pic16s with no hardware to write to them
[19:28:30] <OndraSterver> isn't there one already?
[19:28:31] <OndraSterver> or even more
[19:28:44] <jadew> OndraSterver, couldn't find any
[19:28:49] <OndraSterver> oh
[19:28:56] <jadew> kline, I already have an idea, I'm sure it will work
[19:28:59] <OndraSterver> is it publicly available? (howto)
[19:29:04] <OndraSterver> or how the programming works
[19:29:07] <jadew> I just hoped I wouldn't have to write everything from scratch
[19:29:18] <jadew> OndraSterver, yeah
[19:29:24] <OndraSterver> ok
[19:29:33] <OndraSterver> that eases it up by far :D
[19:29:41] <jadew> deffinitely
[19:30:19] <megal0maniac> jadew: What about http://dangerousprototypes.com/forum/viewtopic.php?f=28&t=3093&p=33450#p33450
[19:33:20] <jadew> awesome
[19:33:22] <megal0maniac> @kline too
[19:33:23] <jadew> thanks
[19:33:37] <kline> thanks
[19:37:11] <megal0maniac> Someone who was here posted a link the other day to something they'd made. Thought it was the same thing but now I'm not sure. So there might be another one somewhere
[19:37:57] <megal0maniac> Keen to hear if it works, let me know if you have success :)
[19:37:58] <megal0maniac> Anyway, I'm off. 'Night all
[19:38:07] <jadew> sure thing
[19:38:11] <jadew> thanks again and good night
[20:58:38] <aarobc> Tom_itx: you make this? http://tom-itx.dyndns.org:81/~webpage/commerce/commerce_index.php does it work with avr studio 5/6 ?
[20:59:00] <Tom_itx> yes
[20:59:29] <aarobc> Tom_itx: neat!
[20:59:45] <Tom_itx> and avrdude
[20:59:52] <Tom_itx> under linux windows and osx
[21:00:13] <Tom_itx> i personally haven't tested osx but know some that have
[21:07:38] <Casper> Tom_itx: have you toyed with rs232 to 3.3V without a max3232?
[21:07:49] <Casper> I can't find my max232, and I need to do a router recovery
[21:08:03] <Casper> I have a laptop, and a pl2303
[21:08:08] <Tom_itx> nope
[21:08:21] <Casper> I was thinking of breadboarding something with 2 transistors
[21:08:22] <Tom_itx> use a couple resistors
[21:09:34] <Casper> and yes resistors
[21:10:49] <Casper> basically I tought of 12V -> (whatever make a 3.3V divider) middle to collector and 3.3V out the other is 12V -> collector -> rs232 rx..
[21:10:55] <Casper> but seems too... simple
[21:12:08] <Casper> like 8.whateverk/3.3k and "bypass" the 3.3 with a npn
[21:16:30] <aarobc> Tom_itx: I am going to buy one.
[21:18:25] <Tom_itx> where you at?
[21:19:53] <aarobc> Tom_itx: I'm in utah, I usually hang out at the hackerspace "theTransistor" down there, because there's not much else to do lol.
[21:20:16] <Tom_itx> ahh ok
[21:25:36] <aarobc> Tom_itx: where are you?
[21:26:04] <Tom_itx> ks
[21:52:58] <R0b0t1> Tom_itx: Oh hey, I live in Kansas too!
[22:00:06] <jadew> ffs... the toolchain for PICs is hell on earth
[22:01:16] <jadew> a bazillion of toolsets, example projects written for different toolsets that you don't have by default and once you install them you figure out you're still missing shit
[22:01:31] <jadew> and licenses on the compilers :/
[22:14:48] <R0b0t1> So when doing port IO should I use a |= and/or &= operation, or sbi/cbi? Is one smaller than the other?
[22:15:20] <Tom_itx> http://tom-itx.dyndns.org:81/~webpage/avr/c_bits/bits_index.php
[22:37:37] <Tom_itx> aarobc it'll go monday
[23:20:20] <Xark> R0b0t1: I believe GCC is clever enough to substitute a cbi/sbi if you only AND/OR a single bit (at least recent versions). cbi/sbi is faster and smaller (one op vs three).
[23:20:44] <R0b0t1> ah okay
[23:21:54] <Xark> As always, "Trust, yet objdump -d". :)