22
Training Training SM350 Modules and Code Swapping By: Robert Abutan

Training

  • Upload
    burke

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Training. SM350 Modules and Code Swapping. By: Robert Abutan. Agenda. 8051 HW restriction Modules Swapping limitation Code swapping. ROM. RAM. 0x8000. 0x0000. RTOS (4 KBytes). UI (16 KBytes). 0x1000. Library and Common Code (28 KBytes). 0xC000. Modules (16 KBytes). - PowerPoint PPT Presentation

Citation preview

Page 1: Training

TrainingTrainingSM350 Modules and Code Swapping

By: Robert Abutan

Page 2: Training

AgendaAgenda

8051 HW restriction ModulesSwapping limitationCode swapping

Page 3: Training

Cello 8051 HW RestrictionCello 8051 HW Restriction Only 64 Kbytes Program Memory:

– 32 Kbytes ROM– 32 Kbytes RAM

SM350 needs to support:– Codec Initialization– Display & Drawing– User Interface– Audio– Recording– USB– Etc…

Page 4: Training

ModulesModules

Can be categorized into 4 basic main modules:– External ROM module (optional)– Initial module– User Interface module– Functional modules (Audio, Record, etc…)

Page 5: Training

External ROMExternal ROM

System Diagnostic Firmware:– Test programs (SDRAM, Display, DSP,

etc…)– Debugger

For more information you can check on the SM350 System External ROM specification.

Page 6: Training

Initial ModuleInitial Module

Function: – Initialize HW (Codec, display, etc…).

– Initialize SW (Global variable, etc…).

– Recache Fat.

– Load Resource files to SDRAM.

– Load Binary files to SDRAM.

– Logo (animation). Available space: up to 32 Kbytes (Currently only

use 24 Kbytes).

Page 7: Training

User Interface ModuleUser Interface Module

Function: – Manage User Interface State Machine.

– Manage Menu.

– Responsible for drawing.

– Manage Key.

– Manage calling corresponding module Available space: 16 Kbytes. Our code > 16 Kbytes Common + Banks.

Page 8: Training

Functional modulesFunctional modules

Function: – Manage each individual supported feature.

Limited space: 16 Kbytes. Our code > 16 Kbytes Common + Banks. Available functional modules:

– Audio Module (Audio, JPEG, Slide Show, Ebook, and Movie);– Record Module (FM Radio and Recording);– USB Module;– USBDRM Module;– Recache Module;– Manager Module.

Page 9: Training

Audio ModuleAudio Module

Function:– Play Audio (MP3 / WMA).– Show JPEG (or Slide Show).– Manage EBook.– Manage MJPEG (Movie).– Manage Audio Playlist.– Manage browsing

Page 10: Training

Record ModuleRecord Module

Function:– Setup FM Radio.– Setup Recording (MIC or Line in).– File Write for Record.

Page 11: Training

USB ModuleUSB Module

Function:– Manage SCSI Command from PC

Page 12: Training

USBDRM ModuleUSBDRM Module

Function:– Manage MTP. – Manage DRM download.

Page 13: Training

Manager ModuleManager Module

Function:– Format media.– Detect media.– Manage File related functions, such as copy

file, delete file, create directory, etc…

Page 14: Training

Recache ModuleRecache Module

Function:– Recache FAT– Reload any necessary files (WMA Table,

Bitmap, Font, etc…)

Page 15: Training

Swapping LimitationSwapping Limitation

Our swapping code is located at the RAM.

Disadvantage:– Cannot swap a portion of

software in the same RAM location without using swapping function from different RAM.

Page 16: Training

Code SwappingCode Swapping

2 Important functions:– Code loading from SDRAM to 8051 Program

SRAM (8051Swap.c).– Interbank swapping (L51_MODBANK.A51

and L51_UIBANK.A51).

Page 17: Training

DMA Restriction (Code loading)DMA Restriction (Code loading)

4 bytes alignment both on the SRAM and/or SDRAM due to hardware restriction.

Only the first 10 Kbytes (0x0000 ~ 0x27FF) of the Data SRAM can be used.

For some media (excluding HDD), DMA transfer xdata is restricted to starting address that its last 10 bits are zero.

Page 18: Training

Code Swapping DiagramCode Swapping Diagram

Page 19: Training

Swapping codeSwapping code UI

extrn code (MainEntry)extrn code (ModBankSwapEntry)CSEG AT 08000HLJMP MainEntryLJMP ModBankSwapEntryEND

Module extrn code (MainEntry)extrn code (_UIBankSwapEntry)CSEG AT 0C000HLJMP MainEntryLJMP _UIBankSwapEntryEND

Page 20: Training

Data RAMData RAM

For more information: SysBoot. inc

Page 21: Training

SummarySummary

SM350 Software ModulesCode SwappingExternal Data RAM

Page 22: Training

Questions ???Questions ???