annotate packages/devs/flash/synth/current/tests/flash1.c @ 2831:957d0458e043

Fix breakage caused by banner change
author bartv
date Thu, 26 Feb 2009 12:55:02 +0000
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2630
3e8e26d3183a Merge flashv2 branch to trunk, with eCosCentric additions
jlarmour
parents: 2045
diff changeset
1 /* Hey, the copyright is useful for something! */
202
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
2
1938
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
3 static char copyright[] =
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
4 "//=========================================================================="
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
5 "//"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
6 "// flash1.c"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
7 "//"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
8 "// Test flash operations for the synth target synth flash driver"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
9 "//"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
10 "//=========================================================================="
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
11 "// ####ECOSGPLCOPYRIGHTBEGIN#### "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
12 "// ------------------------------------------- "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
13 "// This file is part of eCos, the Embedded Configurable Operating System. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
14 "// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
15 "// "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
16 "// eCos is free software; you can redistribute it and/or modify it under "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
17 "// the terms of the GNU General Public License as published by the Free "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
18 "// Software Foundation; either version 2 or (at your option) any later "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
19 "// version. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
20 "// "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
21 "// eCos is distributed in the hope that it will be useful, but WITHOUT "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
22 "// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
23 "// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
24 "// for more details. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
25 "// "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
26 "// You should have received a copy of the GNU General Public License "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
27 "// along with eCos; if not, write to the Free Software Foundation, Inc., "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
28 "// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
29 "// "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
30 "// As a special exception, if other files instantiate templates or use "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
31 "// macros or inline functions from this file, or you compile this file "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
32 "// and link it with other works to produce a work based on this file, "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
33 "// this file does not by itself cause the resulting work to be covered by "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
34 "// the GNU General Public License. However the source code for this file "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
35 "// must still be made available in accordance with section (3) of the GNU "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
36 "// General Public License v2. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
37 "// "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
38 "// This exception does not invalidate any other reasons why a work based "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
39 "// on this file might be covered by the GNU General Public License. "
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2630
diff changeset
40 "// ------------------------------------------- "
2831
957d0458e043 Fix breakage caused by banner change
bartv
parents: 2729
diff changeset
41 "// ####ECOSGPLCOPYRIGHTEND####"
1938
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
42 "//=========================================================================="
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
43 "//#####DESCRIPTIONBEGIN####"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
44 "//"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
45 "// Author(s): andrew.lunn@ascom.ch"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
46 "// Contributors: andrew.lunn"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
47 "// Date: 2000-10-31"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
48 "// Purpose: Test a flash driver"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
49 "// Description: Try out a number of flash operations and make sure"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
50 "// what is in the flash is what we expeect."
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
51 "// "
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
52 "//####DESCRIPTIONEND####"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
53 "//"
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
54 "//=========================================================================="
389f2895cea2 * tests/flash1.c: gcc 3.x does not like string continuing
asl
parents: 1388
diff changeset
55 ;
202
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
56
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
57 #include <cyg/io/flash.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
58 #include <cyg/infra/testcase.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
59 #include <cyg/infra/diag.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
60
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
61 #include <string.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
62
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
63 #ifndef CYGINT_ISO_STRING_STRFUNCS
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
64 # define NA_MSG "Need string functions for test"
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
65 #endif
2630
3e8e26d3183a Merge flashv2 branch to trunk, with eCosCentric additions
jlarmour
parents: 2045
diff changeset
66 #ifndef CYGSEM_IO_FLASH_LEGACY_API
3e8e26d3183a Merge flashv2 branch to trunk, with eCosCentric additions
jlarmour
parents: 2045
diff changeset
67 # define NA_MSG "Need legacy IO FLASH API for test"
3e8e26d3183a Merge flashv2 branch to trunk, with eCosCentric additions
jlarmour
parents: 2045
diff changeset
68 #endif
202
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
69
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
70 #ifdef NA_MSG
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
71 void cyg_user_start(void)
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
72 {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
73 CYG_TEST_INIT();
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
74 CYG_TEST_NA( NA_MSG );
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
75 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
76 #else
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
77
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
78 //==========================================================================
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
79 // main
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
80
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
81 void cyg_user_start(void)
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
82 {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
83 int ret;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
84 char data[1024];
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
85 void *flash_start, *flash_end;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
86 int block_size, blocks;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
87 char *prog_start;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
88 unsigned char * ptr;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
89
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
90 CYG_TEST_INIT();
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
91
1388
c52376a49516 tests/flash1.c: Update flash_init() call to reflect
asl
parents: 210
diff changeset
92 ret=flash_init((_printf *)diag_printf);
202
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
93
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
94 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_init");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
95
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
96 flash_dev_query(data);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
97 CYG_TEST_PASS_FAIL(!strncmp(data,"Linux Synthetic Flash",sizeof(data)),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
98 "flash_query");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
99
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
100 ret = flash_get_limits(NULL,&flash_start,&flash_end);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
101 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_get_limits");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
102
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
103 ret = flash_get_block_info(&block_size, &blocks);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
104 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_get_block_info");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
105
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
106 /* Erase the whole flash. Not recommended on real hardware since this
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
107 will probably erase the bootloader etc!!! */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
108 ret=flash_erase(flash_start,block_size * blocks,NULL);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
109 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_erase1");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
110
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
111 /* check that its actually been erased, and test the mmap area */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
112 for (ptr=flash_start,ret=0; ptr < (unsigned char *)flash_end; ptr++) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
113 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
114 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
115 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
116 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
117
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
118 CYG_TEST_PASS_FAIL((ret == 0),"flash empty check");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
119
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
120 ret = flash_program(flash_start,&copyright,sizeof(copyright),NULL);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
121 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_program1");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
122
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
123 /* Check the contents made it into the flash */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
124 CYG_TEST_PASS_FAIL(!strncmp(flash_start,copyright,sizeof(copyright)),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
125 "flash program contents");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
126
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
127 /* .. and check nothing else changed */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
128 for (ptr=(unsigned char *)flash_start+sizeof(copyright),ret=0;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
129 ptr < (unsigned char *)flash_end; ptr++) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
130 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
131 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
132 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
133 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
134
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
135 CYG_TEST_PASS_FAIL((ret == 0),"flash program overrun check");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
136
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
137 /* Program over a block boundary */
2045
efbe5b41658e * tests/flash1.c (cyg_user_start): Fix a compiler warning about
asl
parents: 1938
diff changeset
138 prog_start = (char *)flash_start + block_size - sizeof(copyright)/2;
202
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
139 ret = flash_program(prog_start,&copyright,sizeof(copyright),NULL);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
140 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_program2");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
141
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
142 /* Check the first version is still OK */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
143 CYG_TEST_PASS_FAIL(!strncmp(flash_start,copyright,sizeof(copyright)),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
144 "Original contents");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
145
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
146 CYG_TEST_PASS_FAIL(!strncmp(prog_start,copyright,sizeof(copyright)),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
147 "New program contents");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
148
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
149 /* Check the bit in between is still erased */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
150 for (ptr=(unsigned char *)flash_start+sizeof(copyright),ret=0;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
151 ptr < (unsigned char *)prog_start; ptr++) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
152 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
153 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
154 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
155 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
156 CYG_TEST_PASS_FAIL((ret == 0),"flash erase check1");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
157
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
158 /* Erase the second block and make sure the first is not erased */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
159 ret=flash_erase((void *)((unsigned)flash_start+block_size),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
160 block_size,NULL);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
161 CYG_TEST_PASS_FAIL((ret == FLASH_ERR_OK),"flash_erase2");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
162
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
163 /* Check the erase worked */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
164 for (ptr=(unsigned char *)flash_start+block_size,ret=0;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
165 ptr < (unsigned char *)flash_start+block_size*2; ptr++) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
166 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
167 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
168 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
169 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
170
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
171 CYG_TEST_PASS_FAIL((ret == 0), "flash erase check2");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
172
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
173 /* Lastly check the first half of the copyright message is still there */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
174 CYG_TEST_PASS_FAIL(!strncmp(prog_start,copyright,sizeof(copyright)/2),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
175 "Block 1 OK");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
176
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
177 #if 0
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
178 /* This test it fatal! Its not run by default!
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
179 Check the flash is read only, by trying to write to it. We expect
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
180 to get an exception */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
181
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
182 *(char *)flash_start = 'a';
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
183 #endif
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
184
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
185 CYG_TEST_PASS_FINISH("flash1");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
186 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
187
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
188 #endif /* ifndef NA_MSG */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
189
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
190 /* EOF flash1.c */