@samsul: if you use CodeWarrior, there's a free version, but you have to pay if you want to use C+ (or larger code sizes). (Can't remember, but in the thousands of $$, I think.) ICD is about $100 from P&E, but I don't like their stuff too much. However, the Tower has everything built-in and CW will work for prototyping (as long as you're not going to use C )
element14, Mouser, Digi-Key. Several versionf of the boards, all about $50 or less. Some were as low as $18 I think. You will need a compiler. The offer a CodeWarrior version for free, but it has limitations with the MQX. See the comments by Charles Lord on his CEC presentation, or maybe on his web site, about which complier supprts the RTOS. http://www.blueridgetechnc.com
@samsul: For full production, we built our own boards. But I had a Tower System first to prototype with. Got a couple from different places. They're inexpensive off of Freescale's website. But my distributor (Future/Avnet/Arrow in the US) gave me one for free. I also got one free from Freescale's FTF conference.
Try the Freescale K-series ARM chips. Powerful and cheap. Good eval boards. The QuikStick board used in the MQX course a few weeks back looked like a nice little board to play with, and get learning about RTOSes.
Freescale often just seems "right" to me. I learned on their chips/Motorola. They offer many architectures, ARM and internally-developed. Operations on many Freescale chips just seem "right" where Microchip has some odd things.
Also Microchip uses a version of the Harvard architecture and there are so many painful things that must be done to access memory. In the Freescale chips I've used, program memory and data memory are easily handled within the code.
@samsul, cpu: I've used Freescale and MQX in the past and like them both a lot. Freescale architecture (to me) is logical and robust. I find the datasheets are excellent. (Other people have differing opinions, of course). But I also found Freescale field engineering support to be great; much like I expect Colin and Mentor are.
State-machine.com has excellant information and tools for both RTOS and bare metal C and C+ for embedded systems. They have complete system downloads for many of the microcontroller development kits on the market and they are free to download.
@Yves: we use FreeRTOS now and it's very basic compared to other OSes I've used at other jobs. Many task-aware debuggers don't do a great job with it, either. If you're looking for "cheap and lightweight", it's probably OK. Just make sure you understand all the licensing agreements if using in a commercial product.
?@Colin: @Ormund: C+ code is not necessarily any bigger than its equivalent fuinctionality in C - mostly, if memory is tight, the application is also small(-ish) and benefits less from using C instead of C
Your reply got corrupted and no meaning is implied, I'm afraid.
IF you declare a static array within a function, and the function is declared to return a pointer, IS it valid to return a pointer to that array? Will the data be there? I know it is local scope for the 'variable name' but for the pointer to the memory location???
@FrankMcCarthy If you can choose an MCU that has protectable blocks of ROM, you can safely exec from one while reflashing the other. Standardize the locations in the memory map of those blocks (or chip maker may have defined that for you) and go from there.
The "OO Trick" for pairing is that when C+ code finishes a block, destructors are called for all objects that only live in that scope. If you create an object using one of the paired objects, say to disable interrupts, when the block ends, C will always call the destructor, and that will re-enable interrupts.
It's cleaner to call the destructor yourself, and re-enable interrupts explicitly, but this covers any cases where the programmer forgets to do so.
@FrankMcCarthy, that issue with replacing some things in memory while keeping others is a pain. Whatever you learn now to do on one chip with one compiler, often you have to reinvent it all for another compiler. I hate that.
? When a new class is defined, memory must be allocated to it. Is there a mechanism in C+ that provides visibility of the amount of memory a class requires or does the designer need to wait until the class is instantiated to find out?
@HOST - I have a desktop PC with amplified speakers. The volume for THIS webinar has been low all week, but particulary low today. I have been able to compensate due to amplified speakers, but I have not needed to do this for several other recent Design News webinars. Other people have also had a problem today. Obviously, something is different!
The "Lock Talk Radio" announcements at the beginning and end are normal volume, everything else is very low. Hopefully you can fix it for Thurs & Friday.
?COLIN ....... Regarding pairing, how exactly do we ensure that BOTH of the pair functions are executed? I mean, I can write a sequence of calls that have only the possibility of executing one after another, to force both parts of the pair to exec. but what is the OO "trick" that we can take advantege of?
What aspect of embedded systems programming is most challenging? Patching functions from ROM. My embedded work often includes code in ROM on the chip and code loaded from flash. The code is ROM can not be changed. The code in flash can be changed. We often need to update functions in ROM with new versions. We call this patching. Please comment on good methods for patching.
@WHAT kASPECT OF EMBEDDED ...: Most serious for a professional to mantain a consistent career is market fragmentation. Too many CPUs and "frameworks" floating around for one to keep up his/her competitive edge.
@DYNAMIC MEMORY: In my understanding it is a HUGE problem, for kRealTime applications are generally restricted in memory real-state (relatively speaking) and can't be left "sitting there" for too long. Memory that is not used for some time should be allowed to be reused.
Hi all -Audio is live! If you don't see the audio bar at the top of the screen, please refresh your browser. It may take a couple tries. When you see the audio bar, if it doesn't start automatically, hit the play button. If you experience audio interruptions and are using IE, try using FF or Chrome as your browser. Many people experience issues with IE. Also, make sure your flash player is updated with the current version. Some companies block live audio streams, so if that is the case for your company, the class will be archived on this page immediately following the class and you can listen then. People don't experience any issues with the audio for the archived version.
You are eligible to earn IEEE Professional Development Hours by attending these courses and participating in the chat function. Additionally, we are no longer using the points system, offering "graduation", or giving grades. The IEEE hours are taking the place of that. There are some important things for you to know about earning the hours. The most important ones are that you need to attend these courses live, you need to attend a minimum of two of them per semester, you need to fill out a course evaluation form within 2 weeks of the end of the class, you need to attend 4 out of the 5 classes per course, and you need to participate in the chat function every day you attend. Please click on the link at the top of this page that says "How do I earn IEEE professional development hours" to read all of these important details and more.
Please join our Digi-Key Continuing Education Center LinkedIn Group at http://linkd.in/yoNGeY and be sure to follow @designnews and @DigiKeyCEC on Twitter for the latest class information. We encourage you to tweet about oday's class using #DigiKeyCEC.
The streaming audio player will appear at the top of this web page when the show starts at 2 PM Eastern time today. If the audio doesn't start automatically, click on the play button to start it. Note however, that some companies block live audio streams. If when the show starts, the audio bar doesn't appear or you don't hear any audio, try refreshing your browser. If that doesn't work, try using Firefox or Google Chrome as your browser. Some users experience audio interruptions with IE. Also, make sure your flash player is updated with the current version. If that doesn't work, your company is likely blocking the live stream. The class will be archived immediately following our live taping and you will be able to listen to it then. You shouldn't experience any problems with the audio when listening on-demand.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.