320 likes | 549 Views
Anyka MMI Overview Zou Mai Anyka, Inc. 2007-03-25. Chip Diagram. System Diagram. RF/PA. Combf lash. Baseband. Sim Card. Mic. UART. Dual LCD with touch panel. Headphone. AK3223M (Master, OS/MMI /Multimedia /Application…).
E N D
Anyka MMIOverviewZou Mai Anyka, Inc.2007-03-25
System Diagram RF/PA Combflash Baseband Sim Card Mic UART Dual LCD with touch panel Headphone AK3223M (Master, OS/MMI /Multimedia /Application…) pSRAM/SDRAM MMC/SD/ T-Flash card Speaker/ Receiver NorFlash(opt) Camera Module NandFlash(opt) USB UART/USB Keypad U-Disk PC
MMI Basic Functions • Phone Book, Group. • SMS, MMS. • Call Record. • Phone Setting: Sound, Display, Call, Security, Network, Profiles, etc. • Games, FC games, SFC games. • WAP Browser. • Resource Explorer. • Toolbox: Alarm, Calculator, Notebook, Calendar, eMap, eDictionary, eBook(txt), etc. • FS: FAT32(Multi-Devices), YAFFS(NorFlash) . • Touch Screen, Handwriting.
MMI Multimedia Features • Audio Player: MP3/MIDI/PCM/ADPCM/AMR/WMA/ AAC/AAC+, EQ, 3D-surround, Stereo, Background playing. • Video Player: AVI/3GP/MP4, CIF 30fps. • Video PC tool: ASF/MOV/MPG/DAT, etc. • Camera, PC camera, Album management. • Audio&Video Recorder, No time limited. • U-Disk, WapTV, eMail, etc.
Development Environment • Language: ANSI C. • Target Cross Compiler: Gcc on Cygwin. • PC Simulator Compiler: Visual C++. • Excel File State Machine Explainer: Perl. • PC Console: PC serial monitor tool, for debugging. • Norboot/Nandboot Download Tools. • Reference to Typhoon_User Guide
MMI Layered Design Application Presentation Layer(APL) • A layered design allows different layers to be used or rewritten to suite the needs of the implementation. Engine Layer(ENG) User Toolkit(UTL) MCT MMI Configure Tool Framework Layer(FWL) Hardware Abstraction Layer(HAL) Resource File Hardware(include BaseBand)
Application Presentation Layer • APL layer will handle the display, user key, AT command, etc. • APL layer use state machine to split the application functions into small states. One file realize one state, and one state usually means one user interface. • The source code in this layer are fully open. It’s easy to add/delete/change the application logic.
Engine Layer • Engine Layer provide some core engines: State Machine Core, Audio Codec Core, Video Codec Core, Image Codec, Memory Management, File System(YAFSS/FAT16/FAT32), Input Method Core, IP Stack, MMS/WAP Stack, WAP Browser, MMS Editor, SMS Codec, etc.. • Most of the modules in this layer are packaged as static libraries. All the libraries have the PC version and Gcc version.
Toolkit • This layer provide the GUI toolkit, such as Menu, Message Box, Scroll Bar, Title Bar, Soft key, Progress Bar, Editors, etc. • The source code in this layer are fully open now. User can customize the UI quickly.
Framework Layer • This layer abstract all the hardware in target platform, provide uniform interface/macro to operate the hardware, such as AT command, LCD, Camera, Keypad, Timer, UART, etc. • The source code in this layer are fully open.
Hardware Abstraction Layer • This layer implement the drivers of target hardware, consist of Wireless Module(BaseBand chipset), LCD, Keypad, UART, Camera, DAC, Flash, I2C, SCCB, USB, Timer, Boot, System Control, Profile, etc.. • The source code in this layer are fully open. If user want change some hardware, they only need re-implement the drivers in this layer.
State Machine Overview • An Excel file is for describing the states, and the transition relation. See file statelist.xls • User can run the PERL script to parse statelist.xls and create the default source code and the makefile. • A state machine file: s_net_list_pref_net.c.
The consist of a state • Init() Is called for initialization of a state. • Exit() Is called when leaving the current state. • Paint() is called after event is handled by current state. • handleXY ()is called when an event happens • Suspendpro() is called when a state is suspended, but this func is not necessery • Resumepro() is called when a state is resumed, but this func is not necessery
Special State Machines • Preproc -- Process events before current state, such as UART data, public timer, etc. -- Preproc usually has no user interface. • Postproc -- Process events after current state, such RING, STK, Screen Saver, etc. -- Postproc usually has user interface.
Event queue Head Keypad event Timer event Main Loop Tail UART Event State machine stack Top state handler State 3 State 2 State 1 Event Process Flow Get event Has no event Has event preProc handler postProc handler
Software Example • How to add a new state machine • How to use softkey,menu,msgbox etc • How to use AT command • Example Dir: platform/mmi/application/example • Open example macro: mmi/mmi_config.h
AT command process • Three virtual com ports on one uart • State machine AT,such as send SMS,call • Backplatform AT by AT queue,such as inquire system clock • Receive AT backplatform by uart interrupt • Reference to Typhoon_User Guide
MMI mode • Four normal mode of MMI: • Power key power on • Charge power on • Usb power on • Alarm power on • Safe mode of MMI: only run AP, baseband is not powered on • Engineering mode for hardware test
MCT • MCT(MMI Configure Tool) is a PC tool to manage the MMI resource, such as inbuilt pictures, music, characters library, etc. • MCT will generate a resource file which can be downloaded to target platform. The resource file can be used on both PC version and Gcc version. • Reference to Typhoon_User Guide
Other tools • Dict generator : used to convert dict lib to anyka format • Font generator : used to generator font bin • MP4 convert tool : MP4 converter and editor • Midi to data tool : convert a midi to data used by MMI • Picture to data tool : convert pic to power on log format • Usb camera tool : a usb camera client on pc • etc
Bootstrap Module Begin Run On-chip ROM program Check Bootstrap Mode NorFlash Boot (GPIO[3:2]=00) On-chip ROM Boot (GPIO[3:2]=01) NandFlash Boot (GPIO[3:2]=11) Serial Flash Boot (GPIO[3:2]=10) Press [#]? N Run On-chip ROM BIOS Load NandFlash Parameter and BIOS Boot from Serial Flash Y Run NorFlash BIOS Run MMI
Norflash Address Space • The address of MMI, Resource file, File system in NorFlash depends on actual MMI’s profile.
Ram Address Space Detail address space see to Typhoon_pda_nandbootd_elf.txt
Nandboot components • Internal rom: check boot mode, load nandboot to internal sram from nandflash • Nandboot: load bios to sdram from nandflash • Bios: • enter debug mode • Load mmi to sdram from fat32 file system • Typhoon_pda_nandbootd.bin: mmi bin file • PDAAkResData.bin: resource bin file
System porting • Gpio configed in gpio.h • Mmi configed in mmi_config.h • Hardware drivers such as lcd,camera,nandflash are auto recognized if supproted • Hardware port guide reference to typhoon_user_guide.doc
Thank you ! Q&A