SFUD flash documentation Error (I think)

I have been trying to make your code work from the Wio Terminal Read Write page and it wasn’t working.

This can be best illustrated by clearing the sfud_demo_test_buf in between the write and the read. I think the issue is the number on the following line.

sfud_qspi_fast_read_enable(sfud_get_device(SFUD_W25Q32_DEVICE_INDEX), 4);

it should be 2 and not 4 (no idea what it means though).

Also not sure that the following lines do anything meaningful:

#define SERIAL Serial
sfud_get_device_table() + 0;
The define hides a definition from the arduino library
And adding 0 does nothing.

Interestingly the code just fails silently. Hopefully this helps someone else. It took me two days to track it down. More docs on Seed Arduino SFUD may help…

Example code is SFUD Test

Sadly that did not work, it stopped working again… Any help appreciated.

Hi @nealstep,
Could you check whether your FS and SFUD libraries are updated to the latest versions?

Seeed_Arduino_FS
Seeed_Arduino_SFUD

When I run this demo, it works well actually.

Here’s the output on serial monitor:

Erase the flash data finish
Write the flash data finish
Read the flash data success.
Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

0x0	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F	
0x10	10	11	12	13	14	15	16	17	18	19	1A	1B	1C	1D	1E	1F	
0x20	20	21	22	23	24	25	26	27	28	29	2A	2B	2C	2D	2E	2F	
0x30	30	31	32	33	34	35	36	37	38	39	3A	3B	3C	3D	3E	3F	
0x40	40	41	42	43	44	45	46	47	48	49	4A	4B	4C	4D	4E	4F	
0x50	50	51	52	53	54	55	56	57	58	59	5A	5B	5C	5D	5E	5F	
0x60	60	61	62	63	64	65	66	67	68	69	6A	6B	6C	6D	6E	6F	
0x70	70	71	72	73	74	75	76	77	78	79	7A	7B	7C	7D	7E	7F	
0x80	80	81	82	83	84	85	86	87	88	89	8A	8B	8C	8D	8E	8F	
0x90	90	91	92	93	94	95	96	97	98	99	9A	9B	9C	9D	9E	9F	
0xA0	A0	A1	A2	A3	A4	A5	A6	A7	A8	A9	AA	AB	AC	AD	AE	AF	
0xB0	B0	B1	B2	B3	B4	B5	B6	B7	B8	B9	BA	BB	BC	BD	BE	BF	
0xC0	C0	C1	C2	C3	C4	C5	C6	C7	C8	C9	CA	CB	CC	CD	CE	CF	
0xD0	D0	D1	D2	D3	D4	D5	D6	D7	D8	D9	DA	DB	DC	DD	DE	DF	
0xE0	E0	E1	E2	E3	E4	E5	E6	E7	E8	E9	EA	EB	EC	ED	EE	EF	
0xF0	F0	F1	F2	F3	F4	F5	F6	F7	F8	F9	FA	FB	FC	FD	FE	FF	
0x100	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F	
0x110	10	11	12	13	14	15	16	17	18	19	1A	1B	1C	1D	1E	1F	
0x120	20	21	22	23	24	25	26	27	28	29	2A	2B	2C	2D	2E	2F	
0x130	30	31	32	33	34	35	36	37	38	39	3A	3B	3C	3D	3E	3F	
0x140	40	41	42	43	44	45	46	47	48	49	4A	4B	4C	4D	4E	4F	
0x150	50	51	52	53	54	55	56	57	58	59	5A	5B	5C	5D	5E	5F	
0x160	60	61	62	63	64	65	66	67	68	69	6A	6B	6C	6D	6E	6F	
0x170	70	71	72	73	74	75	76	77	78	79	7A	7B	7C	7D	7E	7F	
0x180	80	81	82	83	84	85	86	87	88	89	8A	8B	8C	8D	8E	8F	
0x190	90	91	92	93	94	95	96	97	98	99	9A	9B	9C	9D	9E	9F	
0x1A0	A0	A1	A2	A3	A4	A5	A6	A7	A8	A9	AA	AB	AC	AD	AE	AF	
0x1B0	B0	B1	B2	B3	B4	B5	B6	B7	B8	B9	BA	BB	BC	BD	BE	BF	
0x1C0	C0	C1	C2	C3	C4	C5	C6	C7	C8	C9	CA	CB	CC	CD	CE	CF	
0x1D0	D0	D1	D2	D3	D4	D5	D6	D7	D8	D9	DA	DB	DC	DD	DE	DF	
0x1E0	E0	E1	E2	E3	E4	E5	E6	E7	E8	E9	EA	EB	EC	ED	EE	EF	
0x1F0	F0	F1	F2	F3	F4	F5	F6	F7	F8	F9	FA	FB	FC	FD	FE	FF	
0x200	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F	
0x210	10	11	12	13	14	15	16	17	18	19	1A	1B	1C	1D	1E	1F	
0x220	20	21	22	23	24	25	26	27	28	29	2A	2B	2C	2D	2E	2F	
0x230	30	31	32	33	34	35	36	37	38	39	3A	3B	3C	3D	3E	3F	
0x240	40	41	42	43	44	45	46	47	48	49	4A	4B	4C	4D	4E	4F	
0x250	50	51	52	53	54	55	56	57	58	59	5A	5B	5C	5D	5E	5F	
0x260	60	61	62	63	64	65	66	67	68	69	6A	6B	6C	6D	6E	6F	
0x270	70	71	72	73	74	75	76	77	78	79	7A	7B	7C	7D	7E	7F	
0x280	80	81	82	83	84	85	86	87	88	89	8A	8B	8C	8D	8E	8F	
0x290	90	91	92	93	94	95	96	97	98	99	9A	9B	9C	9D	9E	9F	
0x2A0	A0	A1	A2	A3	A4	A5	A6	A7	A8	A9	AA	AB	AC	AD	AE	AF	
0x2B0	B0	B1	B2	B3	B4	B5	B6	B7	B8	B9	BA	BB	BC	BD	BE	BF	
0x2C0	C0	C1	C2	C3	C4	C5	C6	C7	C8	C9	CA	CB	CC	CD	CE	CF	
0x2D0	D0	D1	D2	D3	D4	D5	D6	D7	D8	D9	DA	DB	DC	DD	DE	DF	
0x2E0	E0	E1	E2	E3	E4	E5	E6	E7	E8	E9	EA	EB	EC	ED	EE	EF	
0x2F0	F0	F1	F2	F3	F4	F5	F6	F7	F8	F9	FA	FB	FC	FD	FE	FF	
0x300	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F	
0x310	10	11	12	13	14	15	16	17	18	19	1A	1B	1C	1D	1E	1F	
0x320	20	21	22	23	24	25	26	27	28	29	2A	2B	2C	2D	2E	2F	
0x330	30	31	32	33	34	35	36	37	38	39	3A	3B	3C	3D	3E	3F	
0x340	40	41	42	43	44	45	46	47	48	49	4A	4B	4C	4D	4E	4F	
0x350	50	51	52	53	54	55	56	57	58	59	5A	5B	5C	5D	5E	5F	
0x360	60	61	62	63	64	65	66	67	68	69	6A	6B	6C	6D	6E	6F	
0x370	70	71	72	73	74	75	76	77	78	79	7A	7B	7C	7D	7E	7F	
0x380	80	81	82	83	84	85	86	87	88	89	8A	8B	8C	8D	8E	8F	
0x390	90	91	92	93	94	95	96	97	98	99	9A	9B	9C	9D	9E	9F	
0x3A0	A0	A1	A2	A3	A4	A5	A6	A7	A8	A9	AA	AB	AC	AD	AE	AF	
0x3B0	B0	B1	B2	B3	B4	B5	B6	B7	B8	B9	BA	BB	BC	BD	BE	BF	
0x3C0	C0	C1	C2	C3	C4	C5	C6	C7	C8	C9	CA	CB	CC	CD	CE	CF	
0x3D0	D0	D1	D2	D3	D4	D5	D6	D7	D8	D9	DA	DB	DC	DD	DE	DF	
0x3E0	E0	E1	E2	E3	E4	E5	E6	E7	E8	E9	EA	EB	EC	ED	EE	EF	
0x3F0	F0	F1	F2	F3	F4	F5	F6	F7	F8	F9	FA	FB	FC	FD	FE	FF	
 
The flash test is success.

read costTime: 6 us

Regards,
Lakshantha

try adding

/* zero data */
for (i = 0; i < size; i++) {
data[i] = 0;
}
before line 55.
the test works because the read statement fails (or at least that is my behaviour)

Hi @nealstep,

You are correct.

It seems that:

sfud_qspi_fast_read_enable(sfud_get_device(SFUD_W25Q32_DEVICE_INDEX), 4); 

should be:

sfud_qspi_fast_read_enable(sfud_get_device(SFUD_W25Q32_DEVICE_INDEX), 2); 

This has been solved before if you check the examples inside the github repo of Seeed_Arduino_SFUD

This is the commit:

There may be some configuration errors that are causing only 2 lines to be used.

I will make this change to the demo inside the wiki document as well.

Thank you for pointing it out.

Best Regards,
Lakshantha