Page 1 of 1

CC3200 with 16mb flash

Posted: Thu Apr 02, 2020 3:09 pm
by sekil
Hi.

I'm change stock 1mb flash to 16mb - formated in uniflash with 16mb option - install micropython - all working..
i'm try change MICROPY_PORT_SFLASH_BLOCK_COUNT - large than 32 or 96 - try 128, 192, 160 - with all this board cant start - only working with 32 or 96 - why? where problem?

Re: CC3200 with 16mb flash

Posted: Fri Apr 03, 2020 12:47 am
by jimmo
Hi,

I'm not sure how much usage the CC3200 port gets these days (just based on how much it's discussed in this forum) so not sure how easy it'll be to get answers.

Unfortunately I don't have a CC3200 board or any real experience with this chip, but I took a look at the code, and here are some hints about where to look:
- Perhaps there's a specific layout of how the firmware goes into the flash, and something else is assuming an offset equivalent to ~96 blocks), which now means the filesystem is now overwriting the firmware?
- The way the filesystem works on the CC3200 is that it makes a virtual block device based on the simple filesystem provided by the TI drivers (these are the .fsb files, each of which are 2048 bytes -- see https://github.com/micropython/micropython/issues/5736 -- this is SFLASH_BLOCK_SIZE). If you read the code for the driver, (drivers/cc3100/inc/fs.h) there's a mention of "granularity" which maps to max filesystem size. Interestingly when you do the maths, I think it works out that 128 blocks would be the threshold where it now needs to use 4kiB blocks. Either way, I think understanding what's going on here is probably key to figuring this out.

So as a qucik experiment, try changing SFLASH_BLOCK_SIZE (in ports/cc3200/fatfs/src/drivers/sflash_diskio.h) to 4096 (and keep MICROPY_PORT_SFLASH_BLOCK_COUNT set to 96). Hopefully this doesn't cause it to need too much RAM, but you'll double the size of the filesystem (and then you can experiment from there).

Re: CC3200 with 16mb flash

Posted: Fri Apr 03, 2020 6:38 am
by sekil
No this not helping - board not booting..

I'm try research - if i'm increase block counts - fw try makes files in internal fs - and after index of file == 127 - board freezes, i'm think because this is limit to number of files in internal fs:

from uniflash:

Code: Select all

[10:20:45] INFO: 	121	257	1	no	1		blk103
[10:20:45] INFO: 	122	258	1	no	1		blk104
[10:20:45] INFO: 	123	259	1	no	1		blk105
[10:20:45] INFO: 	124	260	1	no	1		blk106
[10:20:45] INFO: 	125	261	1	no	1		blk107
[10:20:45] INFO: 	126	262	1	no	1		blk108
[10:20:45] INFO: 	127	263	1	no	1		blk109
p.s. i'm change files names in my fw...

If i'm change block size to 4096 - i'm see this:

Code: Select all

[10:19:16] INFO: 	16	151	1	yes	2		/sys/date_time.cfg
[10:19:16] INFO: 	17	153	2	no	2		blk0
This mean that board freezes after make first file - sflash_disk_init - returns error and fw freeze..
But why this? sl_fsopen - returned errors - not creating new files after if index > 127...

Re: CC3200 with 16mb flash

Posted: Fri Apr 03, 2020 8:32 am
by sekil
Yes - this is limit number of files in internal fs - if in flash number of files == 128 - uniflash cant write any new files to flash!

Code: Select all

[12:34:10] INFO: 	file	start	size	fail	total size	filename
[12:34:10] INFO: 	index	block	[BLKs]	safe	[BLKs]
[12:34:10] INFO: ----------------------------------------------------------------------------
[12:34:10] INFO: 	N/A	0	5	N/A	5		FATFS
[12:34:10] INFO: 	0	81	8	yes	16		/sys/mcuimg.bin
[12:34:10] INFO: 	4	5	5	yes	10		/tmp/phy.cal
[12:34:10] INFO: 	6	15	33	yes	66		/sys/servicepack.ucf
[12:34:10] INFO: 	7	97	1	yes	2		/sys/stacfg.ini
[12:34:10] INFO: 	8	99	1	no	1		__000__.fsb
[12:34:10] INFO: 	9	100	1	no	1		__001__.fsb
[12:34:10] INFO: 	10	101	1	no	1		__002__.fsb
[12:34:10] INFO: 	11	102	1	no	1		__003__.fsb
[12:34:10] INFO: 	12	103	1	no	1		__004__.fsb
[12:34:10] INFO: 	13	104	1	no	1		__005__.fsb
[12:34:10] INFO: 	14	105	1	no	1		__006__.fsb
[12:34:10] INFO: 	15	106	1	no	1		__007__.fsb
[12:34:10] INFO: 	16	107	1	no	1		__008__.fsb
[12:34:10] INFO: 	17	108	1	no	1		__009__.fsb
[12:34:10] INFO: 	18	109	1	no	1		__010__.fsb
[12:34:10] INFO: 	19	110	1	no	1		__011__.fsb
[12:34:10] INFO: 	20	111	1	no	1		__012__.fsb
[12:34:10] INFO: 	21	112	1	no	1		__013__.fsb
[12:34:10] INFO: 	22	113	1	no	1		__014__.fsb
[12:34:10] INFO: 	23	114	1	no	1		__015__.fsb
[12:34:10] INFO: 	24	115	1	no	1		__016__.fsb
[12:34:10] INFO: 	26	116	1	no	1		__017__.fsb
[12:34:10] INFO: 	27	117	1	no	1		__018__.fsb
[12:34:10] INFO: 	28	118	1	no	1		__019__.fsb
[12:34:10] INFO: 	29	119	1	no	1		__020__.fsb
[12:34:10] INFO: 	30	120	1	no	1		__021__.fsb
[12:34:10] INFO: 	31	121	1	no	1		__022__.fsb
[12:34:10] INFO: 	32	122	1	no	1		__023__.fsb
[12:34:10] INFO: 	33	123	1	no	1		__024__.fsb
[12:34:10] INFO: 	34	124	1	no	1		__025__.fsb
[12:34:10] INFO: 	35	125	1	no	1		__026__.fsb
[12:34:10] INFO: 	36	126	1	no	1		__027__.fsb
[12:34:10] INFO: 	37	127	1	no	1		__028__.fsb
[12:34:10] INFO: 	38	128	1	no	1		__029__.fsb
[12:34:10] INFO: 	39	129	1	no	1		__030__.fsb
[12:34:10] INFO: 	40	130	1	no	1		__031__.fsb
[12:34:10] INFO: 	41	131	1	no	1		__032__.fsb
[12:34:10] INFO: 	42	132	1	no	1		__033__.fsb
[12:34:10] INFO: 	43	133	1	no	1		__034__.fsb
[12:34:10] INFO: 	44	134	1	no	1		__035__.fsb
[12:34:10] INFO: 	45	135	1	no	1		__036__.fsb
[12:34:10] INFO: 	46	136	1	no	1		__037__.fsb
[12:34:10] INFO: 	47	137	1	no	1		__038__.fsb
[12:34:10] INFO: 	48	138	1	no	1		__039__.fsb
[12:34:10] INFO: 	49	139	1	no	1		__040__.fsb
[12:34:10] INFO: 	50	140	1	no	1		__041__.fsb
[12:34:10] INFO: 	51	141	1	no	1		__042__.fsb
[12:34:10] INFO: 	52	142	1	no	1		__043__.fsb
[12:34:10] INFO: 	53	143	1	no	1		__044__.fsb
[12:34:10] INFO: 	54	144	1	no	1		__045__.fsb
[12:34:10] INFO: 	55	145	1	no	1		__046__.fsb
[12:34:10] INFO: 	56	146	1	no	1		__047__.fsb
[12:34:10] INFO: 	57	147	1	no	1		__048__.fsb
[12:34:10] INFO: 	58	148	1	no	1		__049__.fsb
[12:34:10] INFO: 	59	149	1	no	1		__050__.fsb
[12:34:10] INFO: 	60	150	1	no	1		__051__.fsb
[12:34:10] INFO: 	61	151	1	no	1		__052__.fsb
[12:34:10] INFO: 	62	152	1	no	1		__053__.fsb
[12:34:10] INFO: 	63	153	1	no	1		__054__.fsb
[12:34:10] INFO: 	64	154	1	no	1		__055__.fsb
[12:34:10] INFO: 	65	155	1	no	1		__056__.fsb
[12:34:10] INFO: 	66	156	1	no	1		__057__.fsb
[12:34:10] INFO: 	67	157	1	no	1		__058__.fsb
[12:34:10] INFO: 	68	158	1	no	1		__059__.fsb
[12:34:10] INFO: 	69	159	1	no	1		__060__.fsb
[12:34:10] INFO: 	70	160	1	no	1		__061__.fsb
[12:34:10] INFO: 	71	161	1	no	1		__062__.fsb
[12:34:10] INFO: 	72	162	1	no	1		__063__.fsb
[12:34:10] INFO: 	73	163	1	no	1		__064__.fsb
[12:34:10] INFO: 	74	164	1	no	1		__065__.fsb
[12:34:10] INFO: 	75	165	1	no	1		__066__.fsb
[12:34:10] INFO: 	76	166	1	no	1		__067__.fsb
[12:34:10] INFO: 	77	167	1	no	1		__068__.fsb
[12:34:10] INFO: 	78	168	1	no	1		__069__.fsb
[12:34:10] INFO: 	79	169	1	no	1		__070__.fsb
[12:34:10] INFO: 	80	170	1	no	1		__071__.fsb
[12:34:10] INFO: 	81	171	1	no	1		__072__.fsb
[12:34:10] INFO: 	82	172	1	no	1		__073__.fsb
[12:34:10] INFO: 	83	173	1	no	1		__074__.fsb
[12:34:10] INFO: 	84	174	1	no	1		__075__.fsb
[12:34:10] INFO: 	85	175	1	no	1		__076__.fsb
[12:34:10] INFO: 	86	176	1	no	1		__077__.fsb
[12:34:10] INFO: 	87	177	1	no	1		__078__.fsb
[12:34:10] INFO: 	88	178	1	no	1		__079__.fsb
[12:34:10] INFO: 	89	179	1	no	1		__080__.fsb
[12:34:10] INFO: 	90	180	1	no	1		__081__.fsb
[12:34:10] INFO: 	91	181	1	no	1		__082__.fsb
[12:34:10] INFO: 	92	182	1	no	1		__083__.fsb
[12:34:10] INFO: 	93	183	1	no	1		__084__.fsb
[12:34:10] INFO: 	94	184	1	no	1		__085__.fsb
[12:34:10] INFO: 	95	185	1	no	1		__086__.fsb
[12:34:10] INFO: 	96	186	1	no	1		__087__.fsb
[12:34:10] INFO: 	97	187	1	no	1		__088__.fsb
[12:34:10] INFO: 	98	188	1	no	1		__089__.fsb
[12:34:10] INFO: 	99	189	1	no	1		__090__.fsb
[12:34:10] INFO: 	100	190	1	no	1		__091__.fsb
[12:34:10] INFO: 	101	191	1	no	1		__092__.fsb
[12:34:10] INFO: 	102	192	1	no	1		__093__.fsb
[12:34:10] INFO: 	103	193	1	no	1		__094__.fsb
[12:34:10] INFO: 	104	194	1	no	1		__095__.fsb
[12:34:10] INFO: 	105	195	1	no	1		__096__.fsb
[12:34:10] INFO: 	106	196	1	no	1		__097__.fsb
[12:34:10] INFO: 	107	197	1	no	1		__098__.fsb
[12:34:10] INFO: 	108	198	1	no	1		__099__.fsb
[12:34:10] INFO: 	109	199	1	no	1		__100__.fsb
[12:34:10] INFO: 	110	200	1	no	1		__101__.fsb
[12:34:10] INFO: 	111	201	1	no	1		__102__.fsb
[12:34:10] INFO: 	112	202	1	no	1		__103__.fsb
[12:34:10] INFO: 	113	203	1	no	1		__104__.fsb
[12:34:10] INFO: 	114	204	1	no	1		__105__.fsb
[12:34:10] INFO: 	115	205	1	no	1		__106__.fsb
[12:34:10] INFO: 	116	206	1	no	1		__107__.fsb
[12:34:10] INFO: 	117	207	1	no	1		__108__.fsb
[12:34:10] INFO: 	118	208	1	no	1		__109__.fsb
[12:34:10] INFO: 	119	209	1	no	1		__110__.fsb
[12:34:10] INFO: 	120	210	1	no	1		__111__.fsb
[12:34:10] INFO: 	121	211	1	no	1		__112__.fsb
[12:34:10] INFO: 	122	212	1	no	1		__113__.fsb
[12:34:10] INFO: 	123	213	1	no	1		__114__.fsb
[12:34:10] INFO: 	124	214	1	no	1		__115__.fsb
[12:34:10] INFO: 	125	215	1	no	1		__116__.fsb
[12:34:10] INFO: 	126	216	1	no	1		__117__.fsb
[12:34:10] INFO: 	127	217	1	no	1		__118__.fsb


[12:34:10] INFO: 	Flash usage
[12:34:10] INFO: -------------------------
[12:34:10] INFO: used space:	218 blocks
[12:34:10] INFO: free space:	3878 blocks
[12:34:10] INFO: memory hole:	[218-4095]

Code: Select all

[12:31:18] INFO: erasing file "/sys/test1"
[12:31:18] INFO: deleting file "/sys/test1"
[12:31:18] INFO: erase file completed
[12:31:18] INFO: > Size of file = 2448
[12:31:18] INFO: > Update File: /sys/test1
[12:31:18] INFO: Downloading file "/sys/test1" with size 2448
[12:31:18] ERROR: Open operation failed

And i'm think cc3200 port have some bugs - if i'm change block size bigger than 2048 - board not starting but creating all files..
Need rewrite many stuff in cc3200 port

P.S. cc3200 bad mcu :lol: many many limitations