annotate packages/devs/flash/synth/current/tests/flash1.c @ 202:353a011b23b8

Merge from eCos master repository on 2002-01-11-06:43:03-GMT
author jlarmour
date Fri, 11 Jan 2002 16:53:46 +0000
parents
children e0c0827131d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
202
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
1 /* Hay, the copyright is usefull for something! */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
2
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
3 static char copyright[] = "
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
4 //==========================================================================
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
5 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
6 // flash1.c
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
7 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
8 // Test flash operations for the synth target synth flash driver
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
9 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
10 //==========================================================================
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
11 //####COPYRIGHTBEGIN####
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
12 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
13 // -------------------------------------------
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
14 // The contents of this file are subject to the Red Hat eCos Public License
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
15 // Version 1.1 (the \"License\"); you may not use this file except in
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
16 // compliance with the License. You may obtain a copy of the License at
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
17 // http://www.redhat.com/
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
18 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
19 // Software distributed under the License is distributed on an \"AS IS\"
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
20 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
21 // License for the specific language governing rights and limitations under
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
22 // the License.
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
23 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
24 // The Original Code is eCos - Embedded Configurable Operating System,
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
25 // released September 30, 1998.
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
26 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
27 // The Initial Developer of the Original Code is Red Hat.
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
28 // Portions created by Red Hat are
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
29 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
30 // All Rights Reserved.
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
31 // -------------------------------------------
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
32 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
33 //####COPYRIGHTEND####
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
34 //==========================================================================
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
35 //#####DESCRIPTIONBEGIN####
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
36 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
37 // Author(s): andrew.lunn@ascom.ch
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
38 // Contributors: andrew.lunn
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
39 // Date: 2000-10-31
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
40 // Purpose: Test a flash driver
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
41 // Description: Try out a number of flash operations and make sure
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
42 // what is in the flash is what we expeect.
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
43 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
44 //####DESCRIPTIONEND####
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
45 //
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
46 //==========================================================================
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
47 ";
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
48
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
49 #include <cyg/io/flash.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
50 #include <cyg/infra/testcase.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
51 #include <cyg/infra/diag.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
52
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
53 #include <string.h>
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
54
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
55 #ifndef CYGINT_ISO_STRING_STRFUNCS
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
56 # 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
57 #endif
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
58
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
59 #ifdef NA_MSG
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
60 void cyg_user_start(void)
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
61 {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
62 CYG_TEST_INIT();
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
63 CYG_TEST_NA( NA_MSG );
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
64 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
65 #else
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
66
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
67 //==========================================================================
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
68 // main
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 void cyg_user_start(void)
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
71 {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
72 int ret;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
73 char data[1024];
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
74 void *flash_start, *flash_end;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
75 int block_size, blocks;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
76 char *prog_start;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
77 unsigned char * ptr;
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 CYG_TEST_INIT();
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 ret=flash_init(NULL,0,(_printf *)diag_printf);
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 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
84
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
85 flash_dev_query(data);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
86 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
87 "flash_query");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
88
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
89 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
90 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
91
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
92 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
93 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
94
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
95 /* 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
96 will probably erase the bootloader etc!!! */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
97 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
98 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
99
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
100 /* 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
101 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
102 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
103 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
104 }
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
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
107 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
108
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
109 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
110 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
111
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
112 /* 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
113 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
114 "flash program contents");
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 /* .. and check nothing else changed */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
117 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
118 ptr < (unsigned char *)flash_end; ptr++) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
119 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
120 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
121 }
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
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
124 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
125
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
126 /* Program over a block boundary */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
127 prog_start = (unsigned char *)flash_start + block_size - sizeof(copyright)/2;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
128 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
129 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
130
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
131 /* 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
132 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
133 "Original contents");
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(!strncmp(prog_start,copyright,sizeof(copyright)),
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
136 "New program contents");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
137
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
138 /* 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
139 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
140 ptr < (unsigned char *)prog_start; ptr++) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
141 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
142 ret++;
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
143 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
144 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
145 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
146
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
147 /* 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
148 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
149 block_size,NULL);
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
150 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
151
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
152 /* Check the erase worked */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
153 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
154 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
155 if (*ptr != 0xff) {
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
156 ret++;
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 }
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
159
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
160 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
161
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
162 /* 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
163 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
164 "Block 1 OK");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
165
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
166 #if 0
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
167 /* 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
168 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
169 to get an exception */
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 *(char *)flash_start = 'a';
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
172 #endif
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
173
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
174 CYG_TEST_PASS_FINISH("flash1");
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
175 }
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 #endif /* ifndef NA_MSG */
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
178
353a011b23b8 Merge from eCos master repository on 2002-01-11-06:43:03-GMT
jlarmour
parents:
diff changeset
179 /* EOF flash1.c */