This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Keil a mess?

Hello!

I've been using Keil IDE for 8051 since years and it always worked fine. Now I need to work with ARM processor. Since I'm new to it, I wanted to start with the examples. I got the MCB2300 board v4.0 with uLink 2 and, of course, the appropriate Keil ARM IDE with RV.

1. In all the documentation it tells about the JTAG jumper to be set for uLink - but there is no JTAG jumper

2. When I open the example project "blinky", the target is set to LPC2378, though the MCB2300 has LPC2368. The abstract.txt says, there is a target called "mcb2300 flash", but it's actually named "lpc2378 flash".

3. In the target settings, it already selected ULINK debugger, which is set to 1MHz speed, though the online step-by-step guide says it should be set to 200kHz

4. Compiling the project works fine, but going to debug reports error "memory mismatch, address: 0x0, value: 0x0, expected: 0x18" - this looks like there was no code. Is it required to create a hex file and if so, why is this not activated in the target options? I thought these are ready-to-run projects.

5. After activating "Create hex file", it still shows the error, but enters debug mode and the disassembly windows shows more than zeros

6. The code is running instantly, at least the JTAG interface says so. But there is no LED bar or character display on the LCD. The little beeper produces low, high frequency noise.
Looking into the code (as far as I understand the ARM assembler) tells me, it is not correct. Resetting the target to 0 and going stepwise lets the debugger jump to address 0xfffffff3 after a few steps. So the debugger does not really work. If I let the the code run after reset and stop it, it halts at 0x0000000C, going in a loop to 0x00000014. Not really a working code...

7. Opening example projects with abstract.txt in it gives error "abstract.txt contains a invalid path". Huh? Since when can a text file contain a path?

8. At least, example project EasyWeb compiles and uploads to the MCU. But then it says "Can't stop the ARM device - check JTAG cable". Hilarious! There is a hardware debug tool with a reset line and it can't stop the controller!
Even I manually reset the whole board by unplugging the USB cable and inserting it again, the flash uploader gives the same error. Sure, it is possible that the cable is broken, but board and uLink are quite new and the cable has only beed unplugged a several times.

Now I wonder how this can be possible. I mean, it can't be the way to read hundreds of pages and books just to be able to setup Keil! Why must every tiny piece of software have thousands of settings?
An ARM controller might be more complex than a 8051, but from the IDE it is still the same. Setup, project, compilation, debug.

This is a hardware/software package that costs some hundred or even some thousand Euros. I simply expect it to work!
I mean, what else can occur if not even small example projects work?

(By the way, selecting a different country still shows the american flag on the preview)

Parents
  • No offense, but ALL, yes ALL of the trash you hurtled at Keil here is due to your complete ignorance of the tool-chain. small tip: a project can have multiple targets, including ones that run in RAM...!
    I have complaints, too (thanks Keil for forcing em to write a FAT12 file system myself, because RL-ARM FlashFS cannot create such an image in RAM...) but your boil down to utter lack of knowledge.
    Have you actually read the manual?

Reply
  • No offense, but ALL, yes ALL of the trash you hurtled at Keil here is due to your complete ignorance of the tool-chain. small tip: a project can have multiple targets, including ones that run in RAM...!
    I have complaints, too (thanks Keil for forcing em to write a FAT12 file system myself, because RL-ARM FlashFS cannot create such an image in RAM...) but your boil down to utter lack of knowledge.
    Have you actually read the manual?

Children
  • The problem is, there are many manuals to read. Software should be intuitive. I can operate any Adobe tool without reading a manual. With KEIL, it is different. The uVision IDE for 8051 is easy to use. The ARM version now is much, much more complicated.
    For example, the uLink debugger manual does not describe how the debugger works. By default, the option "Download to flash" is not activated. The related description just confuses. And if I wonder to where the debugger downloads the code, if not to flash, I actually want to find an explanation in the manual.

    It seems you didn't understand what I meant.
    The first thing I meant is, that the manuals are sometimes outdated. They describe things that aren't present anymore, like a jumper named JTAG.
    Second thing I meant is that there are example projects from KEIL for the MCB2300 and if I open, compile, upload and run the projects, they just don't work.
    For this, I don't need to read a manual.

    For testing purposed I tried several of the example projects. None of them worked on the MCB2300.
    Since we are working on an embedded Ethernet project in our software department, we decided to use ARM with Ethernet (LPD2366) and the MCB2300 and Keil, because we know Keil since years. Because the NicheLite package did not work as expected, we found the uTasker project to be a replacement. But here it is the same: there is a hex file of a project, when uploaded to the board by FlashMagic it runs fine and I can access the website. If I open the project in Keil (there is a version for Keil and LPC Arm), I can compile and upload it through the debugger and it does not run correctly.
    Sure, the person who created the projected has tested it, but the difference here only is he might have had a different debugging hardware. So I set up the project to my debugger and my LPC model, it should actually work. But it does not.

    By the way, why do you defend Keil? Are you an employee? Do you owe them?