2014年3月12日 星期三

[Record] Embedded Linux Programming Life

Recently, I want to record my working life in the past few months.

Last year, I am a newbie in embedded Linux domain. But I think embedded Linux programming will be popular in the future and I am interested in it. Luckily, my company offers a training course about the Linux driver& application development. This training started my embedded Linux programming life. In this training, I practiced some drivers and application programs with the Tiny6410 platform. 

In the past few months, I have played with the Samsung DK board including the v310, Exynos 5250, Exynos 5410. 
On the v310 platform, I had tried to modify the frequency on the SD/MMC bus by referencing the datasheet and verified it on scope. Implemented customer subsystem and vendor specific flow in the U-boot system.
Exynos 5250 platform is the master platform which I focus on. I modified the specific device driver, debugged, and developed custom modules. During develop android application for customer requirement; I tested three different ways to implement the requirement. First, I modified device driver, developed related source code include HAL, JNI, framework and android app. Second, I implemented another android app by using NDK. In this developing flow, we don't need the HAL, just packed the native code to shared library. The story is not stopped in here. Because it still can't meet the customer's requirement. So, the third way was born. It is used the android runtime to execute Linux application through shell commands. Because I need the root permission in android system for the specific requirement. I have been tested this android runtime app in different platform such as Exynos 5410(Odroid board), MTK 6582M(U969). So, this way is most close to the customer's request. And I am still working on it.

Because my company is focus on developing a specific IC chip, I have the opportunity to develop the related program from device driver to android app. In the other words, it means I need to handle c/c++, java programming language and a little assembly language. In order to analyze some android system behavior, I developed a log analysis program by c#.

If I have time, I would like to share the detail experience about the above topic.