Home    Bloggers    Messages    Resources
Tw  |  Fb  |  In  |  Rss
Didier Juges

Moving Code From 8051 to ARM

Didier Juges
Newest First   Oldest First   Threaded View
Page 1 / 2   >   >>
Didier_Juges
Didier_Juges
2/19/2013 12:49:46 PM
User Rank
Blogger
Re: Future proof device
@dolphin, that is an interesting question. Some vendors have obsolescence management tools and policies that are clearly spelled, but the vast majority don't.

If you buy 100,000 chips/year, you can be certain to have a phone number to call when you have such questions, but when you deal in the 100's or less, you are usually left to talk to the distributors. Yet, if you are persistent, you can sometime get useful information from the manufacturers. However, few vendors will formally go further than telling you they have no plan to discontinue a particular chip, which means you are probably good for another 6 months ast least.

Sometimes a vendor may put a lot of efforts and money behind a chip and you could assume that they would not do this without firm intentions to make that chip for a while. hen the company is acquired and the new owner has a different opinion. Or the company is fabless and therefore dependant on whatever partner foundry they have at the moment. As the company changes fab, parts may become unavailable because the new fab does not support the old process.

There are so many reasons why chips go obsolete I cannot keep up.

The way I look at it, obsolescence is a fact of life, and rather than try to find a chip that's going to be around, I am content with an architecture that will. At the moment, the ARM has a lot of wind and therefore the architecture is likely to be around and multi-sourced for a long while, which offers some protection against the need for a complete redesign. However, if a particular chip goes away, you may have to redesign your PWB and modify your code around a different set of peripherals.

 

50%
50%
dolphin
dolphin
2/19/2013 12:27:17 PM
User Rank
Bit twiddler
Future proof device
I wonder what would be the suggested MCU to migrate 16 bit microcontroller into future proof CPU : 1. CPU which has obsolescence management (long lifetime or has substitution possibility on roadmap) 2. CPU which can easily integrate different peripheral as future, de facto necessity in a medical device  

50%
50%
Didier_Juges
Didier_Juges
12/3/2012 6:48:44 PM
User Rank
Blogger
Re: Thank you for the article
Chris, thank you for the good words, and thank you for the link to your app note, very interesting. I actually found quite a few gems that had escaped me until now about the Cortex family (like the Wake-Up Interrupt Controller). I will make sure to use it for reference.

 

50%
50%
Didier_Juges
Didier_Juges
12/3/2012 6:45:35 PM
User Rank
Blogger
Re: Bit Variables
@fordp, I agree that the lack of bit variable is more of an emotional thing for those of us who got accustomed to it. It made sense when bytes of RAM were expensive and few. Now that the smallest 32 bit processor has many kB of RAM, and as you told us, there are other ways to use that RAM efficiently, it is not a real problem.

50%
50%
cshore
cshore
12/3/2012 12:44:10 PM
User Rank
Bit twiddler
Thankyou for the article
Always nice to read of moved towards ARM. But I accept I'm biased!

A while ago, I produced an application note on this subject. I'd be interested in the views of readers of this article.

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0237a/index.html

Hope you find it useful.

Chris

 

50%
50%
fordp
fordp
12/3/2012 2:57:17 AM
User Rank
Bit twiddler
Re: CMSIS
The lack of Bit Variable is just a compiler thing. The Cortex M3 has a system called bit banding. This is better than bit variables in most cases.

You can set up an array of bit types!

You can then use #defines to alias the array elements and you have something just like bit variable expect a bit more set up!

I like the ARM chips but the big change that is not always for the better is the complexity of the periperals. This is great if you need any of the features they have added but makes it more complex if you do not.

All the best from the Garden of England

FordP

 

 

 

50%
50%
Didier_Juges
Didier_Juges
12/1/2012 11:46:52 PM
User Rank
Blogger
Re: CMSIS
Duane, I have used the TI Stellaris Peripheral Driver library, TI also supports the CMSIS library, but I believe the Stellaris is more complete and may not work with other vendor's chips. TI does not claim that the Stellaris library itself is CMSIS compatible, so probably I should not make that assumption.

I believe the CMSIS library is intended to support the internal peripherals, like UART and ADC. I would not expect to find support for external devices like LCD.

However, you may be able to find (or adapt) an existing LCD driver for the Cortex-M3. For inspiration, you can check my LCD (and I2C) driver for the 8051 on my web site

 

 

50%
50%
Rich Quinnell
Rich Quinnell
11/30/2012 4:29:19 PM
User Rank
Blogger
Re: CMSIS
Just to have it handy, here are links to CMSIS information

Background/Intro

Overview/Primer

 

50%
50%
duanebenson
duanebenson
11/30/2012 11:01:34 AM
User Rank
Blogger
CMSIS
Didier - Have you tried to use the CMSIS libraries yet? I've been moving from 8-bit PIC processors to ARM. I do lament the lack of bit variables as well.

The demo board that I'm using the most (IAR Systems KickStart 1347) has a few things that don't appear to be supported in the CMSIS libraries, like the on-board LCD display, so I have to use both CMSIS and the IAR proprietary libraries, unless I want to write my own handler.

CMSIS is an attempt to create a single library for pretty much all Cortex M processors, but I've found that there are multiple version of the CMSIS libraries and support isn't complete yet.

I've also been using an NXP LPCXpresso with a Cortex M0. Unfortunately, it comes with a different IDE so I'm learning two IDEs.

50%
50%
Didier_Juges
Didier_Juges
11/29/2012 11:22:43 PM
User Rank
Blogger
Re: 11 days ;)
About 80% of the effort was to write new drivers for the peripherals. In my case, that meant the UART, the ADC, the timers and the GPIO ports. I was able to do that while keeping the same API which gave upper level code access to these peripherals without change to the main code. The remaining 20% was split between converting the return values from bit type to integer and eliminating the memory space specifications (data, xdata and such). Once this was done, the main code ran essentially unchanged.

After this project was finished, I converted another, simpler project and that took just a few hours since the new drivers were already written.

50%
50%
Page 1 / 2   >   >>
More Blogs from Didier Juges
JTAG debuggers can be helpful tools, but they can also be frustrating.
With the serial port disappearing from PCs, embedded developers may need an alternative port for command and control.
With his applications straining the bounds of 8-bit processors, Didier is considering an RTOS but is unsure if it's worth the MCU resources it consumes.
Didier looks at the "out of the box" experience he gets with the LPCXpresso development board.
Isolation barriers protect MCUs in systems with high voltages, like power, but the barrier complicates remote sensing. Didier describes his solutions.
flash poll
MC on twitter
like us on facebook
Microcontroller Central    About Us     Contact Us     Help     Register     Twitter     Facebook     RSS