We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Ok, I think, BL51 tries to fool me. I tell him where to place my code segments and he gives me this link map:
TYPE BASE LENGTH RELOCATION SEGMENT NAME ----------------------------------------------------- * * * * * * * D A T A M E M O R Y * * * * * * * REG 0000H 0008H ABSOLUTE "REG BANK 0" DATA 0008H 0017H UNIT SPECIAL IDATA 001FH 0001H UNIT INDIRECT BIT 0020H.0 0006H.5 UNIT BITS 0026H.5 0000H.3 *** GAP *** DATA 0027H 0036H UNIT INTERN * * * * * * * X D A T A M E M O R Y * * * * * * * XDATA 0000H 244DH UNIT EXTERN * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 00A0H UNIT VECTORP CODE 00A0H 895FH UNIT PROG CODE 89FFH 2DECH UNIT TEXT
00000000 70 DC 01 FF 58 41 35 31 20 22 64 65 33 35 32 2E p...XA51 "de352. 00000010 61 73 6D 22 20 4E 4F 4D 4F 44 35 31 20 47 45 4E asm" NOMOD51 GEN 00000020 20 53 45 54 28 53 4D 41 4C 4C 29 20 50 52 49 4E SET(SMALL) PRIN 00000030 54 28 2E 5C 6C 73 74 5C 64 65 33 35 32 2E 6C 73 T(.\lst\de352.ls 00000040 74 29 20 4F 42 4A 45 43 54 28 2E 5C 6F 62 6A 5C t) OBJECT(.\obj00000050 64 65 33 35 32 2E 6F 62 6A 29 20 45 50 00 00 14 de352.obj) EP... 00000060 C4 F7 41 0F 2E 5C 6F 62 6A 5C 64 65 33 35 32 2E ..A..\obj\de352.
C:\KEIL\C51\BIN\BL51.EXE .\obj\de352.obj, .\obj\clockio.obj, .\obj\init.obj, .\obj\interrupts.obj, .\obj\keyport.obj, .>> obj\logger.obj, .\obj\printer.obj, .\obj\useful.obj, .\obj\variables.obj, .\obj\constanten.obj, .\obj\com_2.obj, .\ob >> j\display.obj, .\obj\compreter2_lib.obj, .\obj\compreter2.obj, .\obj\vt100.obj, .\obj\charleader.obj TO .\obj\a.out P >> RINT (.\lst\a.m51) RAMSIZE (256) NODL, NODP, NODS CODE (VECTORP (0X0000), PROG, TEXT)
You should view *.hex file instead of *.obj, because just hex-file is executable for the microcontroller
think, it should be hard to find a micro controller which executes hex-code. it's just a more or less necessary translation step. depends on your programmer.
You're missing the point. By a mile. That "ready-to-burn" file you hex-dumped is *not* the file you think it is. In particular, it's not ready to burn. Hardly any programmer will know what to do with it. In other words, you're barking up the wrong tree.
yes, it looks like it is not. but this is the file, I name in the 'options for target'-dialog, tab 'output', field 'name of executable'. and I also check button 'create executable: .\obj\filename' and this is exactly my problem. result is not an executable...
Have you checked the "Create hex file" box, and does the file you are burning have a .hex extension? It sounds like you are trying to burn the file (with no extension) which is used by the debugger
result is not an executable... Still wrong. That file is an executable all-right, it's just not the raw image file you believe it to be --- it's in object file format, and it holds tons of debug information that you can use by running it in the Keil debugger. Please stop barging blindly ahead and start going through the actual tutorials and manuals provided with the tools.
Yes, you're both right. I expected to get the raw image. as it comes from some other assembler-linker-sets I worked with. i.e. ASXXXX (free product) or 2500AD (now Avocat Systems). stupid me to think executable could mean, by the mc... thx for response
"I expected..." Don't just expect; as Hans-Bernhard said, go through the tutorials and find out! You need to start by reading the uVision Getting Started Guide, and working through the example projects in it. This will give you a proper introduction to the tools, how they work, and how to use them - rather than just jumping-in blindly at the deep end. (The uVision Getting Started Guide is available on the 'Books' tab in the 'Project' Window; The 'Books' window is also available via the 'Help' menu; failing all that, search for GS51.PDF in your Keil folder)