reference http://processors.wiki.ti.com/index.php/Usbgeneralpage
2012年5月23日 星期三
2012年5月14日 星期一
How to create new splash on android
1. Using GIMP to create new picture and store is as BMP file
2. Convert BMP to RAW format
#convert initlogo.bmp rgb:initlogo.raw
3. Convert RAW to RLE format
#rgb2565 < initlogo.raw > initlogo.rle
2. Convert BMP to RAW format
#convert initlogo.bmp rgb:initlogo.raw
3. Convert RAW to RLE format
#rgb2565 < initlogo.raw > initlogo.rle
Image convert obj file by objcopy
objcopy
copy and translate object files:- 複製 .o 檔 (obj file) 的內部內容到另一個檔案中 (.o 檔或是單純地做 hex dump)
- 將一個 binary data (如JPEG 圖片) 做成 .o 檔
- 把執行碼從 ELF 中抽取出來
- 只抽取指定的 section
常用參數
objcopy [`-I' bfdname|`--input-target='bfdname]
[`-O' bfdname|`--output-target='bfdname]
[`-B' bfdarch|`--binary-architecture='bfdarch]
[`-S'|`--strip-all']
[`-g'|`--strip-debug']
[`-j' sectionname|`--only-section='sectionname]
[`-R' sectionname|`--remove-section='sectionname]
[`--help']
infile [outfile]
GNU binutil manual
==============================================
Ex:
splash.o:
$(OBJCOPY) -I binary -O elf32-littlearm -B arm initlogo.rle $@
2012年3月28日 星期三
How to separate config into project
How to separate config into project:
Ex: If we want to access different DRAM, we must build differnet config into image
1. bootloader:
Bootloader need to build different configuration
step1:
Makefile:
+project_config \
+project_512m_config : unconfig
+ @./mkconfig -a cpuproject arm cpu cpuproject
+ @if [ "$(findstring 512m, $@)" ] ; then \
+ echo "#define CONFIG_DRAM_512" >> ./include/config.h ; \
+ else \
+ echo "#define CONFIG_DRAM_1G" >> ./include/config.h ; \
+ fi;
step2: Using this flag to separate DRAM setting
+#ifdef CONFIG_DRAM_512
+ init_ddr();
+#endif
2. kernel
We use parameter to feed build kernel.
step1: Using parameter to feed build kernel
kernel:
make -C $(KERNEL_PATH) ARCH=$(ARCH) $(KERNEL_CONFIG)
make -C $(KERNEL_PATH) BUILD_PLATFORM=$(PLATFORM) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) bzImage
kernel/Makefile:
+ifeq ($(BUILD_PLATFORM),test)
+KBUILD_CFLAGS += -DCONFIG_TEST1
+else
+KBUILD_CFLAGS += -DCONFIG_TEST2
+endif
+
step2: Using this flag to separate different config
+#if defined(CONFIG_TEST1)
+ init_test1();
+#else
+ init_test2();
+#end
Ex: If we want to access different DRAM, we must build differnet config into image
1. bootloader:
Bootloader need to build different configuration
step1:
Makefile:
+project_config \
+project_512m_config : unconfig
+ @./mkconfig -a cpuproject arm cpu cpuproject
+ @if [ "$(findstring 512m, $@)" ] ; then \
+ echo "#define CONFIG_DRAM_512" >> ./include/config.h ; \
+ else \
+ echo "#define CONFIG_DRAM_1G" >> ./include/config.h ; \
+ fi;
step2: Using this flag to separate DRAM setting
+#ifdef CONFIG_DRAM_512
+ init_ddr();
+#endif
2. kernel
We use parameter to feed build kernel.
step1: Using parameter to feed build kernel
kernel:
make -C $(KERNEL_PATH) ARCH=$(ARCH) $(KERNEL_CONFIG)
make -C $(KERNEL_PATH) BUILD_PLATFORM=$(PLATFORM) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) bzImage
kernel/Makefile:
+ifeq ($(BUILD_PLATFORM),test)
+KBUILD_CFLAGS += -DCONFIG_TEST1
+else
+KBUILD_CFLAGS += -DCONFIG_TEST2
+endif
+
step2: Using this flag to separate different config
+#if defined(CONFIG_TEST1)
+ init_test1();
+#else
+ init_test2();
+#end
2012年3月27日 星期二
how to git format patch in project
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#This only for one git project
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$git checkout -b BSP-M1 remotes/pobu_git_server/BSP-M1
$git checkout PROJECT-M1
$git format-patch --binary -o __patches BSP-M1...HEAD
$git am __patches/*
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#This for repo project
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#step1: Collect the patch file
$repo forall -pvc 'git checkout -b BSP-M1 remotes/pobu_git_server/BSP-M1'
$repo forall -pvc 'git checkout PROJECT-M1'
$repo forall -pvc 'git format-patch --binary -o __patches BSP-M1...HEAD'
$find . -name '__patches' -type d -print0 | xargs -0 tar czf patch.tar.gz
#step2: If you get new release and apply this patches
cd new_release
cp ../old_release/patches.tar.gz .
tar xzf patches.tar.gz
repo forall -pvc 'git am __patches/*'
#step3 : Solve conflicts
Dirty works. Use git am (--continue | --skip | --abort) to deal with it.
Please reference http://schacon.github.com/git/git-am.html.
#step4: Clean the patches
cd ../old_release
find -name '__patches' -type d -print0 | xargs -0 rm -f
cd ../new_release
find -name '__patches' -type d -print0 | xargs -0 rm -f
#This only for one git project
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$git checkout -b BSP-M1 remotes/pobu_git_server/BSP-M1
$git checkout PROJECT-M1
$git format-patch --binary -o __patches BSP-M1...HEAD
$git am __patches/*
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#This for repo project
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#step1: Collect the patch file
$repo forall -pvc 'git checkout -b BSP-M1 remotes/pobu_git_server/BSP-M1'
$repo forall -pvc 'git checkout PROJECT-M1'
$repo forall -pvc 'git format-patch --binary -o __patches BSP-M1...HEAD'
$find . -name '__patches' -type d -print0 | xargs -0 tar czf patch.tar.gz
#step2: If you get new release and apply this patches
cd new_release
cp ../old_release/patches.tar.gz .
tar xzf patches.tar.gz
repo forall -pvc 'git am __patches/*'
#step3 : Solve conflicts
Dirty works. Use git am (--continue | --skip | --abort) to deal with it.
Please reference http://schacon.github.com/git/git-am.html.
#step4: Clean the patches
cd ../old_release
find -name '__patches' -type d -print0 | xargs -0 rm -f
cd ../new_release
find -name '__patches' -type d -print0 | xargs -0 rm -f
2011年9月19日 星期一
Android Sensor Path
Application layer: application
Application Framwork : Sensor Manager
Sensor JNI
Libraries: Sensor Manager <--> Sensor Service <--> Sensor HAL
Kernel : Input dirver subsystem and Event Dev
Sensor driver
# Sensor Manager Application Layer:/frameworks/base/core/java/android/hardware folder
# Sensor JNI layer:/frameworks/base/core/jni/android_hardware_SensorManager.cpp file
# Sensor Manager Library:/frameworks/base/libs/gui folder
# Sensor Service:/frameworks/base/services/sensorservice folder
# Sensor HAL:/hardware/ti/omap3/libsensors folder
# Accelerometer Sensor driver:/drivers/input/misc/xxxxx.c file
Note: Android 2.3 change the sensor service as Native Sensor code.
Application Framwork : Sensor Manager
Sensor JNI
Libraries: Sensor Manager <--> Sensor Service <--> Sensor HAL
Kernel : Input dirver subsystem and Event Dev
Sensor driver
# Sensor Manager Application Layer:
# Sensor JNI layer:
# Sensor Manager Library:
# Sensor Service:
# Sensor HAL:
# Accelerometer Sensor driver:
Note: Android 2.3 change the sensor service as Native Sensor code.
2011年9月7日 星期三
Linux script : backslash "\"
backslash "\" : escape next special characters
Ex:
echo "Path is $PATH" ---> This will show $PATH content
echo "Path is \$PATH" ---> This will show $PATH string
The backslash wiil remove the specail meaning of dollar($) sign
Ex:
echo "Path is $PATH" ---> This will show $PATH content
echo "Path is \$PATH" ---> This will show $PATH string
The backslash wiil remove the specail meaning of dollar($) sign
訂閱:
文章 (Atom)