Special Edition Code Warrior usefulness?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Special Edition Code Warrior usefulness?

10,985 Views
F1GearHead
Contributor I
Hello everyone,
I'm about to embark on an Ethernet based project where I'm going to build a prototype/proof-of-concept using a MC9S12NE64. I've done some research, and it seems that it will suit my needs nicely. I also like it becuase of the upgrade path to the MCF5208... (I hope I'm not going to be biting off more than I can chew :smileyhappy: )
My question is sort of vague, but here it is, I know that the EVB9S12NE64 eval board (which I plan to use) comes with the 'Special Edition' off Code Warrior. I'm wondering how much 'real' development can be accomplished in this reduced capability environment. I don't expect my code to be terribly complex (famous last words, right?) but I don't want to run into limits of the tools (for a garage tinkerer like me, the full version of CW is extremely expensive!). At this point my app will basically be taking in a data stream from the Ethernet interface, buffering it in External RAM, doing some reformatting and minor processing, and pumping it out a serial link. I also plan to use an LCD for a user interface.
Can someone with experience with the Special Edition software give me some words of wisdom? Is that edition just an introduction to the tools to give you an idea what they can do, or can you develop a decent application with it? What other software can be used instead of CW SE if it proves inadequate?
At this point in time, I haven't purchased anything yet, I'm just trying to see how deep this pond is before I dive in. :smileyhappy:

Thanks,
Steve
Labels (1)
0 Kudos
10 Replies

831 Views
Richly
Contributor III
I agree that the special edition of CodeWarrior version 4.5 available from the Freescale site, I'll call it "CW-SE", is very useful, but someone should warn you that the software that comes with the evaluation board and that you can download from the Freescale site and elsewhere on the Internet will likely leave you frustrated. I'll list some of the problems here in hopes that members of this group or at Freescale can post solutions.

The Startup_Demo will compile, assuming you use the Serial interface, but not if you use the much more powerful BDM. There is no target description for it in the project. The help file gives two ways of adding a target to a project: the easy way, which won't work in this case, and the hard way, which does. [By the way, how can I post the version that works with the Multilink BDM where others can grab it?]

Once I got the BMD version of Startup_Demo working, I tried to enable its serial debugging feature. The result always hangs in the same place, trying to put out a character. I'm sure it's a configuration issue with the board, but I haven't yet figured out what setting I have to change. I know the serial port on my PC works, because I can use it to talk to my HC08 demo board.

None of the other examples from the CD or the Internet - at least the ones that I have tried - will compile, mostly because they exceed the 32 file limit of CW-SE. Note that I have avoided examples that depend on proprietary software, so I cannot comment on them. If you are clever, and if you can figure out what files count in the 32 file limit, I'm pretty sure you can rearrange the examples to work with the CW-SE system.

More difficult to deal with are the detailed tutorial directions for Ethernet projects (provided as PDFs in AN2836SW3). The directions use Advanced Processor Expert Beans, a feature that does not come with CW-SE. I believe that there is a way around this, since I think that the routines that the Advanced Beans would generate are included in other examples. I hope that the only difference is that I'll have to hand alter various constants instead of having the Processor Expert do it for me, but until I get around to trying, I won't know for sure.

If you try to attach an LCD, you will find that the documentation is minimal. The LCD driver software "provided on the support CD" won't assemble using the CW-SE assembler. The application note that talks about interfacing an LCD to the HC12 (AN1774/D, rev 1.0) assumes that the LCD is attached as a 4- or 8-bit bus device, which is not how it would be attached to the evaluation board if you used one of the built-in connectors.

Despite all this, I still believe the evaluation board together with the Multilink BDM is a cost-effective way to get started connecting a micro to an Ethernet...at least that's why I'm working with them. I'm very much a "newbie" in this particular area, and I just wish the learning process were not so unnecessarily painful.

Good luck!
0 Kudos

831 Views
Richly
Contributor III
Here I am, replying to myself...

I found the solution to getting the serial debugging feature of Startup_Demo working: you have to add

_INIT_DEBUG();

somewhere before the first debugging output is generated.

There is no need to protect it by an ifdef, because it does nothing unless ETH_DEBUG is defined.
0 Kudos

831 Views
F1GearHead
Contributor I
Thanks for the input Richly!... your post is the exact sort of experience I was asking for, and hoping to learn from. Since I intend to develop a simple ethernet application, do you think that CW-SE is not adequate? Are there other packages I can use to write code for the MC9S12NE64, GNU compilers for example? Until now my MCU experience lies in the 8-bit PIC realm, so this project will be a challenge for me anyway, I don't want to have to wage battle with a crippled compiler...

As for the LCD, initially I was just going to use one that I can talk to via the RS-232 port, just so I can get to the meat of the task without worrying about the LCD interface right off the bat.... later I will go back and make that a proper parallel interface.

Thanks,
Shttp://forums.freescale.com/freescale/board/post?board.id=16BITCOMM&message.reply_to_id=638#
Submit Post
0 Kudos

831 Views
imajeff
Contributor III

F1GearHead wrote:
As for the LCD, initially I was just going to use one that I can talk to via the RS-232 port, just so I can get to the meat of the task without worrying about the LCD interface right off the bat.... later I will go back and make that a proper parallel interface.


I wanted to give some input about choosing serial or parallel LCD modules. Since LCD is inherently slow, the only reason parallel is better is cost of the module itself, in my experience. If you can get a serial for good enough price, all the better for dev and production (unless of course you didn't have a serial port available).
0 Kudos

831 Views
Richly
Contributor III
F1GearHead wrote:
Since I intend to develop a simple ethernet application, do you think that CW-SE is not adequate? ... I don't want to have to wage battle with a crippled compiler...
The fault lies not in the restricted version of Metrowerks compiler but in the examples provided by Freescale. I think the compiler and debugger, etc., are adequate for writing some pretty serious programs. I strongly recommend using the USB Multilink rather than relying on the serial monitor.
Are there other packages I can use to write code for the MC9S12NE64, GNU compilers for example?

Somewhere I read that optimization of the GNU compiler is not so good as the Metrowerks compiler, producing much larger programs (I recall a number like 30%), but I cannot vouch for this, nor can I recall where I saw it.
As for the LCD, initially I was just going to use one that I can talk to via the RS-232 port, just so I can get to the meat of the task without worrying about the LCD interface right off the bat.... later I will go back and make that a proper parallel interface.
Again something I read somewhere: the LCD is much slower than the microprocessor, so if you have a parallel connection, your program has deal with this (busy-wait, timer, or whatever). The evaluation board EVB9S12NE64 has a shift register interface to the LCD connector to help with this issue. If all you want is debugging information while developing your program, the techniques used in the Startup_Demo program work just fine. If your final product needs an LCD, then that's a different matter.
Good luck!
0 Kudos

831 Views
imajeff
Contributor III
I am using NoICE and GCC.

Haven't used ICC12 much, but looked same as GCC but includes IDE. Not strong on optimizations either.

NoICE is great and still improving.

GCC is working real good. I mean, I have considered how much something could have been optimized better, but I realized that it is doing a great job at certain optimizations, and even the ability to do certain debugging with major optimizations turned on. Also the size optimization varies with new releases, so you might look at the chart that shows test sizes with different releases.

In any case, the main advantage I get with GCC is that I fit 256K on my larger MCU--that's 8 times the program memory (more than a 30% size reduction). I certainly cannot afford any professional version of CW, so I would be stuck with that 32k limit in what they call the "special edition". [I think "special" is a mis-term when referring to this type of handicap. The reason good folks call a handicap person "special" is not because they think the person has something wrong with them, as is the case with "CodeWarior Special Edition".]

It is also free in that I have better control. I see easier what I'm telling it to do to build the project. The problem I find with CW is that all the effort to make it automatic and less to decide has affected it's complexity. It is very very complicated to figure out if it does not do what I want. Kinda like Microsobt Windblows.
0 Kudos

831 Views
gravity
Contributor I
What about the Imagecraft compiler,  and the "NoIce" debug combo?
0 Kudos

831 Views
mke_et
Contributor IV
I have a number of 9S12 and HC08 projects now that I've done with the SE packages.  My latest 9S12 uses the 128K part and it's rapidly closing in on using ALL the flash.  And I mean ALL.
 
But I have to admit, I program in assembly so the SE restrictions don't really bother me. 
 
I'm not sure what's at issue with the student license you mention.  But I will say that even with some of the 'issues' with CW, without it this project wouldn't have been do-able at all.
 
0 Kudos

831 Views
samiran_cj
Contributor I
Steve,

I found the EVB-ne64 and the SE Codewarrior to be very handy. I have found the SE codewarrior able to utilise and demonstrate all the features of the EVB without any artificial constraints.

Except for the LCD which I have not yet found time to connect to the board. It is a pity they didnt attach one to the board. You might check out the LCD.

The SE would probably fail to utilise the capabilities of a higher upgrade chip though.

The optimisation of the source code by Codewarrior is extremely good.
This can be visibly seen when using the debugger.
There are a large number of useful warnings and tips Codewarrior as well as suggestions to improve the RAM and ROM space usage. The Macro compiler and assembler is unlimited.

The architecture of the example programs is also easy to understand. What I like most about the IDE is the function "hyperlinks" that enable me to follow the architecture of the program within the source without actually running the code.

Except that it is so expensive it could be really be a killer embedded app. software the world over. Your app requirements seems to be simple enough to produce a proto-type with the EVB and I would recommend the combination.


Well that is my 2c. Hope this helps...
0 Kudos

831 Views
F1GearHead
Contributor I
Thanks Sam!
I plan to go ahead, I'm just trying to figure out what I'm in for. I remember buying the 'Student' version of MATLAB in college, and immediately (literally, within minutes) running into its artifical memory limits. So that has made me wary.
Thanks for the response. I'm sure I will be back on this forum for something once I have hardware in hand.

-Steve
0 Kudos