young barefoot woman using laptop on floor near books in stylish living room

How to learn C language?

Posted by

“Recipes tell you nothing. Learning techniques is the key.”—Tom Colicchio

This is in continuation of my earlier post on How to learn Embedded C online

I have mentioned today specifically “How to learn C” . If you are looking only for C , then check Learn C Programming Practically

If you are exploring Embedded C and register level programming , continue reading this article.

Embedded C extensions were added in 2008 and I was using Embedded C/C++ since 1999. You may refer to WiKi link for more information about these extensions.

If you are in transition from Desktop C to Embedded C or even using some of the embedded c specifixc things in normal C , following tips can be helpful for you.

Verify the information given on web with real hardware

Volatile is one of the important data type qualifier in embedded C and one can expect this in interview.

It is basically used to switch off compiler optimization. Here is one wrong information I noticed on random search. If we believe on this , we can’t configure any control register and can’t put data on transmit register.



If you don’t know the background of author, make sure article is based on some specific architecture.

Someone commented in my linkedin post few days back with following information. If we take example of STM32 architecture , this is wrong information. It should be Stack, Heap, bss, initialized data, text or code section.



Another wrong information about reset. If you reset the cpu after initializing memory segments, what is the use of initialization. Irony is that , even after informing this to person who posted , still they didn’t correct this information.

Are you looking for Embedded System Training ?

You should always try to find educational background of the trainer and experience in embedded domain. Your time is more valuable than money involved in training.

We have a proven course for Embedded system training with hybrid node. If you want Embedded related information through email , Subscribe the following.

About Author:

Sanjay Adhikari : A Computer Engineering graduate who got stuck in Microcomputer

•More than 25 years intensive experience in designing, developing and supporting various embedded designs in Telecom access networks.
*Implementation of embedded technical support, Hiring & Mentoring of embedded engineers.
•Over 10 yrs experience in handling an embedded-system support team as a Team Lead.
•Expertise in Design and Development of Linux Device drivers and Bare Board Device Drivers for various telecom/networking devices. Technical knowledge of interfaces like DDR, PCIe, SerDes, Ethernet, I2C etc
•Hands-on experience in Board Support Packages (BSPs) for PowerPC, ARM SoCs from Freescale.
•Enabled Trans-national(Cisco, Alcatel-Lucent, Juniper etc ) and Indian (TATA, C-DOT, DRDO) clients to implement Freescale Networking SOCs.
•Supported all Major Networking (Cisco, Juniper, Aricent) clients in hardware and software troubleshooting on custom hardware. Help customers in porting Freescale device drivers to customer specific Operating Systems such as IOS , JUNOS, FreeBSD etc.
•Provided training to design engineers in using Freescale’s CodeWarrior and Linux BSP.
•Conducted training and demonstration of Freescale technologies in various public events such as Freescale Technology Forum, Design with Freescale etc.

About Embedkari

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.