Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Opinions about a library with common API for different microcontrollers.

Status
Not open for further replies.

vitomsc

Newbie level 1
Joined
Jan 30, 2008
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,291
Hello everyone.

I'm thinking about developing a peripherals library with a common API for a variety of microcontrollers from different manufacturers and architectures. I think that this would be useful to make it easier to reduce the time that a user needs to adapt to the use of a different microcontroller and to facilitate porting an application made for a type of microcontroller to another (especially if it is from a different manufacturer).

At this time, each manufacturer of microcontrollers (NXP, ST, TI, Atmel, etc) provides a library for its own peripherals with its own API.

I'd like to know your opinion about this idea. Do you think that would be really helpful to have something like this?

Thank you in advance.

Victor
 

Its a good Idea, I have done that myself upto a limit. I have made a common library for LCD16x2,Graphic LCD 128x64, SD Card, Software I2c and SPI, software UART, for Atmegas, PICs & 8051's. The difficult part is the varying register names across different architecture, for example even the PIC16f and PIC18f although from the same manufacturer, have completely different sets of registers. I have tried to solve this problem my using header files where I have #defined all the registers with alias names. But this can go on and on..besides making these interrupt based is completely a different ball game. May be a utility has to be made where you setup a microcontroller and appropriate settings and all the registers and pinning is auto generated code (header files). PSOC from Cypress have been doing it this way and I feel is the best thing possible to tackle the problem. Hope you get pointers from this to problems that you may encounter.
 

Actually a common library for a smaller subset of microcontrollers, the ARM Cortex-Mx variants, already exists and is known as CMSIS.

CMSIS - Cortex Microcontroller Software Interface Standard

One of the reason is this possible is due to the fact, all ARM cores are owned and licensed by ARM, Ltd to manufactures like TI, STM, Silabs, NXP, etc.

It's quite an ambitious project, at the very least it will provide you valuable lessons in writing portable code.

Good Luck.


BigDog
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top