Answers to Qs: Do you have time in your designs to try multiple implementations or do you have time for only a single version? Only occasionally have I had time to do trade-off analysis. Most of the time, schedule is king.
Answers to previous questions: Are there specific peripheral functions that were critical to your most recent design (timer, ADC, serial port, etc)? Yes. Serial (for simple debug interface), ADC (for performing measurements), Timers (periodic functionality), etc.
@Alaskaman- Luckily the functions that can get bombed are fairly easy to spot, but it can be important to think about it in some detail. Peripherals (like timers) are the biggest issue. Usually you turn the timer off while you are loading a value so even this issue can be avoided...
? I learnt that we now have development environments that can highlight power hungry code in a bid to keep power consumption in tight check. Do we have these facilities available for both assembly and C codes...
@Bob- You are correct. MCU targeted compilers (like the one from IAR) are much different from CPU oriented compilers. MCUs have a much smaller recource base (memory and performance) and their compilers need to be much more efficient.
? Are C compilers for MCUs different than for "commercial" CPUs? I'm thinking that some of the typical C internals (eg, Stack Frames) are very memory intensive, and maybe not particulary efficient for real-time embedded processing.
@gamatec- VOLATILE can be important in an ISR if you don't want the variable to be removed, but if the variable isn't needed outside the ISR is won;t need the VOLATILE indication (at least I can't think of a case off hand, unless maybe another interrupt could come in while you are in the current ISR...).
@ncardoso72- Assembly is best for real time systems but C can also be used if the code needed is vary large. You can just do the critical functions in Assembly (like for atomic operations and peripheral initialization) and the rest in C. Do you have an RTOS or just doing it 'by hand'?
I have been using C and C+ in "Real Time" motor control systems. as is the case with any digital system the sampling interval/ allowable delay is the determining factor along with the speed of the MCU.
@sherlock- The important thing with cache is to understand how big it is and what replacement algorithm it uses. That way to can try and fit your 'inner loops' into cache so you don;t need to go to main memory very often...
A good tool for optimitation is have and emulator than have the capacity of tracing portions o program, with this you can see really how time spend every task and detect the more time consuming and try to center in optimize this (polishing algorithm, try another view of task).
Is CISC or RISC architecture more suitable for C coding(as opposed to Assembly coding) ? I would think the way instructions are sturctured, in general, C will be more suitable for CISC archticeture and Assembly for RISC.
Bob Loy:OK...as a learning experience it makes some sense..but I don't think that reasons 1 & 2 are valid. Hey have fun! You ought to really go hog wild and write the new language in itself and bootstrap the whole thing!!
@firstname.lastname@example.org - 4 reasons: 1) New architecture. Does things other architecures don't, lots of new hardware logic. 2) Proprietary machine language - Any translation from a current Forth would practically be a write from scratch anyway. 3) Different operators - I'm used to C, so as much as possible I am changing standard Forth ops to their C equivalents. Might as well piss off all the Forth user groups at the same time! 4) I'm interested in HLL design generally, so starting from scratch is the best way for me to learn anyway.
The streaming audio player will appear on this web page when the show starts at 2 PM Eastern time today. Note however that some companies block live audio streams. If when the show starts 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. If that doesn't work, the class will be archived immediately following our live taping.
Are they robots or androids? We're not exactly sure. Each talking, gesturing Geminoid looks exactly like a real individual, starting with their creator, professor Hiroshi Ishiguro of Osaka University in Japan.
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This discussion will examine what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.