1. What is the embedded programming ?

Embedded programming is a programming term for an autonomous system, it’s embedded into an environment or parent system. Those are systems that integrate both hardware and software. 

The main aim is to serve specialized problems in many industrial fields, control automation, and communication. Embedded systems are often designed to perform a specialized, specialized function.

Since the embedded programming is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product. The embedded system is also diverse in types.

The basic components of an embedded system

  • ROM: Contains program, fixed data, or constant data. Currently, most systems use EEPROM or FLASH to replace the ROM because they can write, delete, and update new programs.
  • RAM: Stores executable programs and temporary variables.
  • MCU: The central computational processor.
  • There are also peripherals such as ADC, DAC, communication units UART, I2C, etc.

2. The application of embedded programming

  • Embedded systems are widely used in the computer, electronics, banking, and telecommunications industries, etc.
  • The embedded system is integrated with both software and hardware, integrated with a programming device such as a microprocessor.
  • Embedded systems and PCs, the handheld PDA devices are different due to the design to specialize in specific functions to increase the quality of the system to reduce costs.

3. Some embedded programming tool and comparison

  • Cross ToolChians(Linux):is a compiler of AT91SAM running on the Linux environment.
  • Keil(Windows):runs on Windows environment, programming for ARM series ( example STM32F4xx, etc)0
  • Putty.exe(Windows):Is a program that supports programming to access Secure Shell via Ethernet or two RS232 standards.

4. Which job does an embedded programmer do later?

Embedded programming is a very broad, easy-to-understand industry, but we can divide embedded programming into two directions as follows:

Embedded software

If you’re truly a developer and can develop to be a good developer, you and your team develop app products for embedded products such as apps (web, desktop, or mobile app), firmware, OS (the operating system), drivers, etc.

Your jobs are writing code, testing code, writing requirements, and documents for products.

Embedded hardware

You will be an expert in board design, also known as PCB design, test boards. This job requires you to be very good at hardware and electronics.

For each project that you participate in the company will have a certain process that forces you to get acquainted before receiving the task and completing it. But rest assured, you will get the job done.

5. The essential knowledge to become an embedded programming engineer

5.1 The necessary basic knowledge

  • Learn C programming: you need to learn C to the expert level, this is the most important language in embedded programming.
  • English: at least you should be able to read technical literature, especially the datasheet.
  • Electronic knowledge: knowledge of logic, microcontroller, microprocessor, ADC, TIMER, INTERRUPT, etc.
  • Communication types (protocol): UART, I2C, SPI, RS232, JTAG, etc (advanced: SATA, PCIE, USB, CAN, MOST).
  • Operating system: operating system architecture, computer architecture, especially the Linux operating system.
  • Data structures and algorithms: As a hardware expert, you must also code, if you have code, you must have an algorithm!
  • Memory: NOR, NAND, SRAM, DRAM, etc.
  • Real-time OS.

5.2 The specialist knowledge

Embedded software

  • Application programming:C ++, Java.
  • Device driver programming(using C language).
  • Android and Web programming (basic).
  • Script: Perl, Python, especially Shell script on Linux.
  • Good structure and algorithm.
  • Build environments:Makefile, Cmake.

Embedded hardware

PCB design: Allegro or Altium.

  • Design schematic:you need to have a decent knowledge of electronics.
  • Test board:after designing, you need to know the test board.
  • Review, evaluate, and choose components for the optimal project.
  • Using gauge tools.
  • Skills in soldering circuits, repairing circuits (if you are Freelancer).

Hopefully, after this article, you have quite a bit of embedded knowledge as well as the career opportunities and directions and programming articles that you can refer to in the near future. 

Hachinet is one of the youngest and dynamic software development companies in Vietnam. Through outsourcing services in Vietnam - an attractive country for software outsourcing, we provide services according to various needs, from system development consulting to residential development in the customer's office and offshore development in Vietnam.

Frontend: HTML5, CSS3, Bootstrap, AngularJS, CoffeeScript
Backend: Java, C #, ASP.NET, C ++, VB.NET, COBOL, Python, Ruby, PHP
Mobile: iOS, Android
Web technologies: Ruby, .Net, PHP, C #, Java, COBOL ...
Web application development
Web application development

Medical system
Reservation system
Speech processing
High quality

Contact Us
The personal information you submit will be used only for responding to inquiries, providing information on products and services, and providing useful information, and will not be used for any other purpose.
mail: contact@hachinet.com
website: http://hachinet.com