SSD192x_API_GEN_A001
所属分类:处理器开发
开发工具:C/C++
文件大小:2027KB
下载次数:60
上传日期:2009-12-05 07:18:16
上 传 者:
Reggi3
说明: code library for solomon SSD1928 multimedia chip, interfaces mainly with nxp lcp2103 arm7 chips on 3.5" photoframes.
文件列表:
ssd192Xv1 (0, 2007-03-08)
ssd192Xv1\02.h (117358, 2007-01-08)
ssd192Xv1\api (0, 2007-03-08)
ssd192Xv1\api\enhance (0, 2007-03-08)
ssd192Xv1\api\enhance\2DEnhance.c (17358, 2007-03-08)
ssd192Xv1\api\enhance\2DEnhance.h (2422, 2006-12-07)
ssd192Xv1\api\enhance\charmap.h (59639, 2006-09-20)
ssd192Xv1\api\enhance\charmap_v.h (118932, 2006-08-24)
ssd192Xv1\api\enhance\cursor.c (7373, 2007-03-09)
ssd192Xv1\api\enhance\cursor.h (416, 2006-09-21)
ssd192Xv1\api\enhance\enhance.h (2044, 2006-08-24)
ssd192Xv1\api\enhance\jpeg.c (7096, 2007-03-08)
ssd192Xv1\api\enhance\Makefile (484, 2006-08-24)
ssd192Xv1\api\enhance\memory.c (10678, 2007-03-08)
ssd192Xv1\api\enhance\memory.h (804, 2006-10-09)
ssd192Xv1\api\enhance\mjpeg.c (70664, 2007-03-08)
ssd192Xv1\api\enhance\mjpeg.h (7040, 2006-08-24)
ssd192Xv1\api\enhance\register.c (1750, 2006-08-24)
ssd192Xv1\api\enhance\window.c (46047, 2007-03-08)
ssd192Xv1\api\enhance\window.h (1662, 2006-08-24)
ssd192Xv1\api\Makefile (252, 2006-08-24)
ssd192Xv1\api\primary (0, 2007-03-08)
ssd192Xv1\api\primary\2d.c (16930, 2007-03-08)
ssd192Xv1\api\primary\2d.h (3023, 2007-03-08)
ssd192Xv1\api\primary\cam (0, 2007-03-08)
ssd192Xv1\api\primary\camera.c (2263, 2007-03-08)
ssd192Xv1\api\primary\camera.h (308, 2007-03-08)
ssd192Xv1\api\primary\cam\dvd.c (3762, 2007-03-08)
ssd192Xv1\api\primary\cam\dvd.h (123, 2006-08-24)
ssd192Xv1\api\primary\cam\dvNTSC.c (4031, 2007-03-08)
ssd192Xv1\api\primary\cam\dvPAL.c (3917, 2007-03-08)
ssd192Xv1\api\primary\cam\hv7131.c (4756, 2007-03-08)
ssd192Xv1\api\primary\cam\hv7131.h (129, 2006-08-24)
ssd192Xv1\api\primary\cam\i2c.h (4943, 2007-03-08)
ssd192Xv1\api\primary\cam\Makefile (490, 2006-08-24)
ssd192Xv1\api\primary\cam\ov7670.c (2715, 2007-03-08)
ssd192Xv1\api\primary\cam\ov7670.h (219, 2006-08-09)
ssd192Xv1\api\primary\cam\ov9640.c (1372, 2007-03-08)
ssd192Xv1\api\primary\cam\ov9640.h (216, 2006-08-24)
ssd192Xv1\api\primary\cam\sam2m.c (1729, 2007-03-08)
... ...
SDHC Performance Benchmark - 22 Feb 2005
----------------------------------------
This version has only been tested on the FPGA XC2V3000 without interrupt
enabling.
What's new
----------
demo1923 has been extended with a new sdhc sub-command. The new sub-command is
--sdhc mbench.
1. --sdhc mbench - mbench will perform 8/16/32-bit read & write access
combinations to a ***KB region of the amazon memory (0x70000-0x7ffff). It will
then print the total time taken to perform the accesses. The time is counted
in terms of ticks (1 tick ~= 0.9766 microseconds).
2. --sdhc set,xmode,[0|1]
The above command will turn off (xmode=0) or turn on (xmode=1) mcu access
during read/write. When xmode=0, demo1923 will read/write sdhc data to amazon
memory. When xmode=1, demo1923 will not read/write sdhc data, instead it will
activate the sdhc module for a read or write transfer. This mode requires that
dma is also turned on (--sdhc set,dma,1).
3. --sdhc read or --sdhc write
The above commands will perform the sdhc read or write transaction and print the
total time (ticks) that it took to complete the entire transfer. The tick time
counts the kernel-mode sdhc_read() or sdhc_write() function call. This time includes
the time taken to send the command, and wait for transfer completion.
a. The sequence of commands to effect a transfer
-> sdhc init
-> sdhc set,length,512
-> sdhc set,width,4
-> sdhc set,dma,1
-> sdhc set,autocmd12,1
-> sdhc set,xmode,1
-> sdhc set,sdclk,1 <-- this divides the core_mclk_in by (1+1)=2.
-> sdhc read,0,n <-- data is read into dma buffer from sd card
-> sdhc write,0,n <-- data from dma buffer is written to sd card
Important: when xmode=1, the data content is ignored. i.e. read will continue
to overwrite dma buffer data and write will use existing data from the dma
buffer.
[end]
SDHC_CJS_Use_Case_27Jan05 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
---------------------------------------------------------------------------
What's new
----------
This is a special version of sdhc. This is not to be used as a test program.
The file sdreg.c contains both kernel mode and user mode code and are
integrated into the ssd192Xdrv.o and demo192X executable.
demo1923 has been extended with the sdhc commands.
The sdhc subcommands are:
1. --sdhc init - to initialise the sd card
2. --sdhc reset - to reset the sd card
3. --sdhc get,[cid|csd|scr|cccr|fbr|cis|wrblkcnt|status|cardtype]
- to readback sd registers
4. --sdhc set,[length,<1..512>|width,<1|4>|sdclk,<0xNN>|dma,<[0|1|base,
]>|autocmd12,<0|1>]
- to configure sdhc and sd card access types
5. --sdhc read,addr,nblk - to read one or more blks of data from SD Memory/MMC
6. --sdhc write,addr,nblk - to write one or more blks of data from SD Memory/MMC
7. --sdhc abort - to abort a read or write transaction
8. --sdhc ioread,addr,nblk - to read one or more blks of data from SDIO card
9. --sdhc iowrite,addr,nblk - to write one or more blks of data from SDIO card
10. --sdhc ioabort - to abort an ioread or iowrite transaction
11. --sdhc erase,start,nblk - to erase one or more blks of data from address
The meaning and usage of the above commands are described in the prior release
information below.
[end]
SDHC_R317C_31Dec04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
------------------------------------------------------------------
What's new
----------
This is a special version of sdhc test program that contains a replacement for
read_data and write_data routines. 2 new functions have been added and these
are sdhc_read() and sdhc_write().
read_data() and write_data() try to align the end address of a dma
transfer on a dma host addr boundary to cause an interrupt, but the
sdhc_read() and sdhc_write() routines can align the transfer to the start
address of the dma buffer.
eg. blksize=512 bytes, dma start=x, dma end=y
1. For read_data/write_data (filesystem mode): 'y-512' is the start address for
dma transfer
2. For sdhc_read/sdhc_write (internal FIFO transfer mode): 'x' is the start
address for dma transfer
sdhc_read/sdhc_write supports both the filesystem and FIFO transfer mode
through the flags parameter (RW_NOREAD_EN and RW_NOFILL_EN flag bits control
the behavior).
SDHC_R317b_16Dec04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
------------------------------------------------------------------
What's new
----------
This is a minor update. It fixes 2 functions (read_scr() and
get_wr_blk_count()). These functions use the fifo for data transfer and did
not reset the fifo prior to transfer which in some cases caused the fifo state
to be unsynchronised with the transfer.
[end]
SDHC_R317a_16Dec04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
------------------------------------------------------------------
What's new
----------
1. Added new IO_RW_EXTENDED command support for both Byte Mode and Multiblock
mode support.
2. New command to make use of IO_RW_EXTENDED re-uses the command syntax of the
existing 'repeat', 'read' and 'write' commands for SD Memory and MMC.
3. Commands
a. io read [-c [pattern] | -b [start_num] | -f ]
b. io write [pattern | -b [start_num]| -f | -x]
c. io repeat read [-c [pattern] | -b [start_num] | -f ]
d. io repeat write [pattern | -b [start_num]| -f | -x]
Please refer to release notes of SDHC_R312pre4_13Oct04, found below, on the
above command syntax documentation.
IO_RW_EXTENDED has 2 flavors (or modes). In the first mode, it is used as a
single block read/write command. In the second, it can be used as a
multi-block transfer command. All SDIO cards support the single block
read/write command but support for multi-block support is optional and
indicated via the SMB bit in the CCCR. (Use 'decode cccr' to check this bit).
If SMB=0, then only single block read and write commands are possible. In this
case, the parameter in the 'io read' and 'io write' commands has to be
0 or else the command will be rejected. 'io repeat' can still be used because
it issues a single read/write command multiple times and the nblk parameter
can be non-zero.
[end]
SDHC_R317_15Dec04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
------------------------------------------------------------------
What's new
----------
1. SDIO Initialisation
This release adds lots of new code to support SDIO initialisation, SDIO direct
read and write commands and decode of several SDIO standard registers. The
SDIO functions have been tested against an SD COMBO Card (San Disk
256MB+WiFi).
The test program will automatically detect an SDIO card and follow the
SDIO-aware host initialisation procedure recommended in the SDIO
Specification.
2. New Commands
In addition to changes to existing 'init' commands, the following 19 new
commands have been added.
(a) ioinit (no space between io & init)
(b) io reset
(c) io r
(d) io w
(e) io set width <1|4>
(f) io set blksz -f <0..7>
(g) io get cccr
(h) io get fbr <1..7>
(i) io get cis <0..7>
(j) io raw
(k) io fn <1..7>
(l) io help
(m) io abort <0..7>
(n) decode cis
(o) decode cccr
(p) decode fbr
(q) dump cis
(s) dump cccr
(t) dump fbr
3. Detailed Explanation
(a) ioinit (no space between io & init)
This command performs SDIO specific initialisation. It detects for an SDIO
card, through CMD5, and if a response is detected, it will attempt to
initialise. If the CMD5 results in a timeout error, the ioinit will give up
detection of an SDIO card.
(b) io reset
This will send a IO Reset to the SDIO Card and all its IO functions. It will
not reset the SD Memory portion if present. In order to reinitialise the card,
the SD Memory has also to be reset.
eg.
ready> send reset <-- to reset the SD Memory portion
ready> io reset <-- to reset the SDIO portion
ready> init <-- start the re-initialisation
(c) io r
This commands performs a direct byte read (IO_RW_DIRECT) at the specified register
address. The register address can be anywhere within the 128KB address space.
An SDIO card can implement upto 1+7 IO Functions, FN0..FN7 where FN0 is
mandatory. Each function has its own unique 128KB address space.
The function to which the read command is directed is set by the 'io fn
<0..7>'. Default is FN0.
eg.
ready> io fn 1 <- direct read commands to FN1
ready> io r 0x10 <-- read the block size (LSB)
ready> io r 0x11 <-- read the block size (MSB)
(d) io w
This command performs a direct byte write (IO_RW_DIRECT) at the specified
address. An SDIO card can implement upto 1+7 IO Functions, FN0..FN7 where
FN0 is mandatory. Each function has its own unique 128KB address space. The
register address can be anywhere within the 128KB address space.
eg. to set the block size for transfer to 512 bytes (0x0200)
ready> io fn 1 <- direct write commands to FN1
ready> io w 0x10 0x00 <-- write the block size (LSB)
ready> io w 0x11 0x02 <-- write the block size (MSB)
(e) io set width <1|4>
This command sets the bus width of the IO function. It is independent of the
bus width setting of the SD Memory part (in case of a COMBO card). This
command writes to FN0, address 0x07 and sets the Bus Width bits according
to the selection.
If the card is a LOW SPEED Card (LSC=1) and does not support the 4-bit option
(4BLS=0), then the command will be rejected. The Card Capability Register can
be determined by reading the CCCR and then running the 'decode cccr' command.
eg.
ready> io get cccr <-- performs automatic decode of cccr
ready> io set width 1 <-- can always be done
ready> io set width 4 <-- allowed only if LSC=0 (i.e. high speed card) or
LSC=1 and 4BLS=1 are both 1.
ready> io set width 1 <-- will always succeed
(f) io set blksz -f <0..7>
This command sets the Block Size for Multi-Block Transfer.
The Card Capability Register in the CCCR indicates support for Multi-Block
Transfers via the SMB bit. If SMB=1, then the card supports Multi-Block
Transfers and CMD53 (IO_RW_EXTENDED) can be used, otherwise, the command
will be rejected. Run 'decode cccr' to display the SMB bit value.
eg.
ready> io get cccr <-- performs automatic decode of cccr
ready> decode cccr <-- if a previous 'io get cccr' has been run
ready> io set blksz 0x200 -f 0 <-- if SMB=1, then command will be accepted,
else it will be rejected.
(g) io get cccr
This is the very first command that needs to be run after the card (both IO &
Memory has been initialised). This command will read the CCCR register on the
card, decode and display its contents. This command needs to be run only once
per initialisation.
eg.
ready> io get cccr <-- will read the CCCR and decode its contents
(h) io get fbr <1..7>
This command is like the io get cccr function. Instead of reading the Card
Common Control Registers, it reads the IO Function Specific Registers.
Function 1 to 7 can be selected. The command is rejected if an unimplemented
function number is specified. eg. If there is only one IO Function, and 'io
get fbr 2' is run, then the command is rejected.
The specified FBR of the Function is read and then automatically decoded.
(i) io get cis <0..7>
This command reads the Card Information Structure from the CCCR area and from
the IO Function areas of the IO Card. The start of CIS is specified in the
CCCR and FBR (CIS_PTR locations).
The CIS is then parsed and decoded. Unknown TUPLE IDs are skipped.
eg.
ready> io get cis 0 <-- will read the CIS of the CCCR (FN0)
ready> io get cis 1 <-- will read the CIS of the FN1
ready> decode cis <-- will decode the last read CIS (eg. FN1)
(j) io raw - turn on read-after-write option
This command affects the 'io w' command. When 'raw' is set to 'on', then the
IO_RW_DIRECT command will cause a Read-After-Write of the register. When raw
is set to 'off', then write-only is performed. When raw is set to 'on' it
saves an additional read command cycle to readback the previously written
register.
eg.
ready> io raw on
ready> io w 0x10 0xaa <-- this command will write 0xaa and readback the value
<-- at 0x10
ready> io raw off
ready> io w 0x10 0x55 <-- this command will write 0xaa and no
<-- read-after-write is performed.
ready> io r 0x10 <-- this command effectively performs the raw function
(k) io fn <1..7> - to set the target function for r/w commands
This command selects the function to which the 'io r' and 'io w' commands are
directed to. It does not update the Function Select Register in the CCCR.
eg.
ready> io fn 0 <-- selects target of read/write as FN0 - CCCR
ready> io w 0x10 0x00 <-- set Block Size of FN0 to 0x0200
ready> io w 0x11 0x02
ready> io fn 1 <-- selects target of read/write as FN1 - FBR1
ready> io w 0x10 0xff <-- set Block Size of FN1 to 0x0300
ready> io w 0x11 0x03
(l) io help
This command displays help for all IO related commands.
(m) io abort <0..7>
This command has been implemented but has not be tested. It is equivalent to
the 'STOP TRANSMISSION (CMD12)' command for SD Memory and MMC cards. It will
abort the currently ongoing transfer operation of the specified Function.
(n) decode cis
This command decodes the previously read CIS. As there is only one CIS memory
and subsequent 'io get cis' will overwrite the previously read CIS. Full CIS
Tuple decode is *NOT* performed.
(o) decode cccr
This command performs a FULL decode of the CCCR register bits.
(p) decode fbr
This command performs a FULL decode of the FBR. There is only one FBR buffer
in the program and a subsequent 'io get fbr' will overwrite the previous FBR
contents.
(q) dump cis
This command performs a byte by byte dump of the current contents of the CIS
buffer up to a maximum of 255 bytes.
(s) dump cccr
This command performs a byte by byte dump of the current contents of the CCCR
buffer up to a maximum of 255 bytes.
(t) dump fbr
This command performs a byte by byte dump of the current contents of the FBR
buffer up to a maximum of 255 bytes.
[end]
SDHC_R316_09Dec04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
-------------------------------------------------------------------
What's new
----------
1. MMC Initialisation
This release has MMC Initialisation code. During initialisation, sdhc will
attempt to initialise an SD Memory card, failing which it will attempt MMC
initialisation.
2. irq
By default, the interrupt signal enable registers are turned off. If 'irq on'
is used, then the interrupt signal enable registers are not touched and will
retain any previous value set via a SLC.
3. autoreset <[on]|off>
This controls autoreset in batch and script mode only. If autoreset is off,
then internal 'reset data' and 'reset cmd' is not issued when sdhc encounters
read or write data failures. If autoreset is on, then reset is done
automatically.
4. dump fifo <0|1>
This command enables readback of fifo 0 or fifo 1 and allows inspection of
data in the fifo. This also enables the data recovery for the CJS Use Case.
Look at fifo_readback() in sdreg.c to enable fifo readback mode.
[end]
SDHC_R315_03Dec04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
-------------------------------------------------------------------
This release has not been tested on sdhc_r3.15 because the bitfiles from HKG
for the 8K board have not been received and the 3K bitfile is not ready.
There is a minor change made in this release to facilitate interrupt testing
which is only available on the 8K board because of amazon top-level
connections.
New command:
a. irq
If irq is set to on, then the SDHC interrupt signal will be routed to the main
interrupt controller. Default for irq is off, since sdhc works in poll mode.
[end]
SDHC_R314_10Nov04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
-----------------------------------------------------------------
This release has been tested on the XC2V3000 platform using MX1 and with input
clock of 25MHz.
The following changes have been made:
1. -b command line switch
The -b command line switch enables sdhc to detect that it is being executed in
batch mode. In batch mode, any read and write data failures will cause a
'reset data' and 'reset cmd' to be issued automatically. This allows error
recovery in batch mode.
2. read_cli() and write_cli()
These functions have been modified to detect if read_data() and write_data(0
return a failure code of -1. If a failure code of -1 is returned when sdhc is
being run in batch mode, then a data followed by cmd reset is performed.
3. send_cmd()
The send_cmd() will sometimes erroneously report that PSR_INHIBIT_CMD is not
set after the CMD register has been written to. This happens because the OS
takes away the timeslice from the sdhc program by which time the CMD has
completed and the PSR_INHIBIT_CMD bit has toggled from 0 -> 1 -> 0. This
change is missed and a false positive is announced by send_cmd().
send_cmd() has not been modified and if PSR_INHIBIT_CMD is not set and
INTR_CMD_COMPLETE is set, then no error is flagged.
4. reg_test ()
Register RW Test has been cleaned up to prevent reporting false failures.
[end]
SDHC_R313a_1Nov04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
-----------------------------------------------------------------------
This is a minor release for sdhc_r313 test software. It fixes 1 bug introduced
in sdhc_erase() in sdhc_r312pre10 test & debug for erase.scr.
sdhc_erase() has been updated - removed a redundant check for
INTR_DAT_COMPLETE.
SDHC_R313_29Oct04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
-----------------------------------------------------------------------
This release is a name change of sdhc_r312pre10 to sdhc_r313.
SDHC_R312pre10_29Oct04 (Sreedharan Bhaskaran, sreeb@solomon-systech.com)
-----------------------------------------------------------------------
Some minor command line changes have been added for better scripting support
1. A '-q' command line option has been added. When this option is used, the
sdhc test program will not execute its initialisation routine and will jump to
the sdhc cli immediately.
2. echo command has been improved.
Syntax:
echo <[on]|off|stringtext>
echo on - turns on command echo
echo off - turns off command echo
echo - echoes regardless of echo setting
3. scripting support improvements
a. '//' can be used in a script. Any line beginning with a '//' will be
ignored. This is useful for commenting script file ... ...
近期下载者:
相关文件:
收藏者: