http://www.oss.kr/index.php?mid=oss_information6&category=1371&document_srl=1392
제 1회 공개SW역량프라자 정기기술세미나(6월24일) 발표자료를 올립니다.
세션1 : 리눅스 시스템을 위한 성능 분석
(강사) 국민대학교 이남승 연구원
세션2 : 우분투 환경에서의 임베디드 개발환경 구축 및 애플리케이션 개발
(강사)우분투코리아 강분도 대표
아젠텍 이호민 전임연구원
다음회차에는 더 좋은 주제로 찾아뵙겠습니다.
감사합니다.
http://www.oss.kr/index.php?mid=oss_information6&category=1371&document_srl=1392
제 1회 공개SW역량프라자 정기기술세미나(6월24일) 발표자료를 올립니다.
세션1 : 리눅스 시스템을 위한 성능 분석
(강사) 국민대학교 이남승 연구원
세션2 : 우분투 환경에서의 임베디드 개발환경 구축 및 애플리케이션 개발
(강사)우분투코리아 강분도 대표
아젠텍 이호민 전임연구원
다음회차에는 더 좋은 주제로 찾아뵙겠습니다.
감사합니다.
1) The document discusses the process of adding Ethernet functionality to an Android device using the MangoBoard. It describes initializing the Ethernet service during boot up and registering it with the ConnectivityService.
2) When an Ethernet connection is detected, the EthernetMonitor thread notifies the EthernetStateTracker which triggers DHCP configuration of the interface.
3) The DHCPHandler is then sent a message to start the DHCP process and obtain an IP address for the connected Ethernet interface.
The document discusses adding menu options and icons for sound driver selection on Android. It involves:
1. Modifying the kernel configuration to include WM8960 and SPDIF drivers.
2. Creating menu strings and arrays in the Settings app for the sound change options.
3. Implementing a SoundChangeManager in the framework to set the sound mode from apps and broadcast state changes.
4. Adding JNI functions and HAL code to actually change the sound driver on selection.
The end result is a new sound change setting and icons in the Android system settings to allow selecting between the WM8960 and SPDIF sound drivers.
The document describes how to port and modify drivers for UART, Ethernet, LCD, and keypad on a Mango100 board running Android. It provides instructions on configuring the kernel, modifying driver source code files, and checking that the drivers are functioning properly. Key steps include enabling drivers in the kernel .config file, adding device registration code, and modifying functions to set GPIO pins and timing parameters for devices like the LCD. It also explains how to view input events in logcat and trace the flow of key events through the Android framework.
The document discusses the partition layouts of the Mango100 board's NAND flash and SD/MMC storage. For NAND, there are three partitions for the bootloader, kernel, and filesystem. For SD/MMC, fdisk is used to create partitions including FAT32, GNOME, and Android filesystems which are then formatted and mounted.
The document discusses modifying u-boot source code to port it to the Mango64 board based on the S3C6410 processor. It describes adding board configuration files, modifying hardware initialization code, and updating macros and definitions to support the board's hardware. Key files modified include the Makefile, device tree, board initialization code, and board-specific configuration header. The goal is to enable features like SD card detection and eventually add other functionality supported by the port.
This document discusses two booting modes for the Mango64 (S3C6410) - NOR mode and NAND mode. NOR mode boots from the internal NOR flash memory, while NAND mode boots from an external NAND flash memory. The document provides information on turning each mode on.
This document provides diagrams and component lists for the bottom and top sides of a Mango64 board. The bottom diagram labels 29 components including the S3C6410 processor, RAM chips, and various connectors. The top diagram focuses on the LCD components, labeling 14 parts including the LCD screen, LEDs, and buttons. Both diagrams include references to an online cafe for more information on embedded systems and the Mango64 board.
This document analyzes the $BOARDNAME.h file in U-boot. It describes the contents and purpose of this important file that defines board-specific configurations for U-boot. It provides examples of definitions for the Mango100 board related to memory layout, boot settings, Ethernet/USB configurations, and NAND support.
2. U-boot build 환경 분석 http://www.mangoboard.com Board/$(Vendor)/$(BOARD)/Config.mk 파일 분석 (U-boot 가 실행하는 주소 정의) ifndef TEXT_BASE //TEXT_BASE = 0xc7e00000 :MMU 사용 TEXT_BASE = 0x2fe00000 # Physical Address endif
3. U-boot 1.3.4 Build 환경 분석 http://www.mangoboard.com #make mango100_config 실행 시 분석 $(Top dir)/Makefile에 아래 코드 실행 1 2 3 4 5 6 7 Configuration 할 보드 이름 정의 mkconfig로 $1인자 의미 Architecture 인자 $2인자 CPU :$3인자 Board name :$4 VENDOR :$5 SOC :$6
19. 리눅스 명령 find (TIP) http://www.mangoboard.com #find . –name “*.[ch]” –exec grep문자열 {} -print 예) find . –name “*.[ch]” –exec grep mango100 {} -print 스크립트 추가 방법 /usr/bin 디렉토리vi fin 추가 #chmod 755 /usr/bin/fin #!/bin/sh if [ "$1" != "" ] && [ "$2" != "" ]; then find . -name "$1" -exec grep "$2" {} -print else echo "Usage: $0 *.* abcd" exit 1 fi
20. U-boot build 실행 분석 http://www.mangoboard.com $(TOPDIR)/config.mk $(TOPDIR)/arm_config.mk $(TOPDIR)/rules.mk … #make 명령 실행
21. U-boot build 실행 분석 http://www.mangoboard.com include/config.h==include/configs/mango100.h 내용동일 Include/common.h두개의 파일의 내용을 가지고 온다 $(CC): $(CROSS_COMPILE)gcc값임 -M 옵션:의존성있는 있는 파일을 구성해 준다. -MQ (target) : target 이름을 정의 해 준다. 두개의 예제를 결과 비교 실습 #> vi hello.c #include<stdio.h> int main(void) { printf(“Hello Mango”); return 0; } #> arm-linux-gcc –M hello.c #> vi hello.c #include<stdio.h> int main(void) { printf(“Hello Mango”); return 0; } #> arm-linux-gcc –M –MQ foo.ohello.c
22. U-boot build 실행 분석 http://www.mangoboard.com 1 2 3 4 5 6 7 cmp –s file1 file2 : 비교하여 같으면 0 && 연산자 :cmp비교 결과 같으면 실행 || 연산자: cmp비교 결과 다르면 실행
23. U-boot build 실행 분석 http://www.mangoboard.com 1 2 3 4 5 6 7 $$dir :tools, examples api_example값을 가진다. make –C tools _depend make –C examples _depend make –C api_example _depend 형식:make –C 실행디렉토리타겟 즉 , -C옵션에 정의된 디렉토리로 가서 Makefile을 수행하며, target은 _depend 임
24. U-boot build 실행 분석 http://www.mangoboard.com 1 2 3 4 5 6 7 Make –C $SUBDIRS all 수행되면서 실제 빌드됨 결과
25. U-boot build 실행 분석 1 2 3 4 5 6 7 CPU 값은 s5pc1xx $(if $(REMOTE_BUILD),$@,$(notdir $@)) 의미는 REMOTE_BUILD값이 있으면, OBJS값을 그대로 대입, 없으면, 디렉토리리를 제외한 파일이름만 추출하라는 의미 make –C cpu/s5pc1xx start.o 이 수행이 됨
28. U-boot build 실행 분석 http://www.mangoboard.com 1 2 3 4 5 6 7 LDSCRIPT값은 /board/samsung/mango100/u-boot.lds 따라서, $(MAKE) –C /board/samsung/mango100 u-boot.lds 실행이 됨
29. U-boot.lds 분석 http://www.mangoboard.com : 섹션의 시작 번지 를0x00000000 로 설정. 실제로 컴파일된 실행코드인 text가 로딩되고배치될 번지 는 config.mk 에 지정된 TEXT_BASE + 0x00000000 이 된다. 4byte align Text section의 맨앞에 cpu/$cpu/start.o를 배열 (Start-up code) __u_boot_cmd_start 와 __u_boot_cmd_end 사이의 .u_boot_cmd는 u_boot에서 사용되는 user interface command structure를 이 사이에 배열 __u__boot_cmd_start , _u_boot_cmd_end, __bss_start, __end는 나중에 C code , start-up code 에서 주소계산을 위해 사용함.