Dear All, I am new to Microcontrollers, I created a Hex file(751 bytes), but when i start burning- my microcontroller software tool shows 2297 bytes. How this is possible?? Whats wrong here....
I am trying to burn 2kb memory Microcontroller, burning ends with error...
How to lower Programming bytes(bin file extracted from hex file)??
Per is completely right. Please see our limitations for evaluation tools: http://www.keil.com/demo/limits.asp You can read there for the C51: "Programs start at offset 0x0800. Programs generated with the evaluation software may not be programmed into single-chip devices with less than 2 Kbytes of on-chip ROM." If you convert the resulting hex file to a binary file, the file will be 2K larger than expected, because the first 2K will be filled with a padding value you specify for the Hex to Bin converter.
Not sure but some evaluation versions of the Keil tools have added additional space in the output file to make it unviable to use the evaluation version for commercial use with small-memory chips.
Another thing is that the hex file contains address information. So it can contain holes - when converted to a single binary, that binary can grow with the filler bytes to span these holes - a bin file can't have holes since it does not contain address information and is programmed by giving the programmer the start address where the binary blob should be located.
Isn't it enough to disable the linker/debugger? Childish !
Not very useful if you want to evaluate the debugger tho.
Choosing the right limitations for an evaluation version can be a very awkward task.
If disabling the linker, then it wouldn't be an evaluation version because you can't evaluate.
With the additional padding, you can evaluate the tools - but just make sure you select a chip that has 2kB additional flash.
For big chips/big projects, the code size limitation is enough to block people from commercial use.
But for small-sized projects, a full program would be within the code size limitations of the evaluation version. How many would pay if they could get away with the evaluation version? How many people care if the license says "not for commercial use", if they can keep their money by ignoring the license? How much salaries can you pay from customers who do not pay the license?
The cost of a 2kB larger chip is irrelevant for a hobbyist. But for someone making 10 million light dimmers, the additional chip cost might add up enough that having a valid license would start to matter.
Per,
While you certainly make a good point, I'm saying that: 1. I have a licensed product so I never tried this myself - but it sounds like a limitation that is actually not too hard to circumvent, so what's the point. 2. Every application, certainly the extremely low cost ones, is unique but the cost of processors has dropped so much that one could either forget the tool-chain and go GCC eclipse only because the evaluation failed. This measure could actually cause more damage than good !
A Person,
I meant to say that _limiting_ the linker/debugger is more than enough, in my opinion.
Note that the "Evaluation" is now called the "Lite" version - and commercial use is now allowed.
Note that the "Evaluation" is now called the "Lite" version
Only true of the ARM MDK. Others are still referred to as "Evaluation".
The 2kb of additional padding would indicate this thread relates to C51, if I'm not too far off.
That was my assumption also.