Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vcnbbs$1nt8a$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vcnbbs$1nt8a$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net>
Newsgroups: sci.electronics.design,comp.sys.raspberry-pi
Subject: Re: RP2040 reset idea
Date: Sat, 21 Sep 2024 20:46:52 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 142
Message-ID: <vcnbbs$1nt8a$1@dont-email.me>
References: <vcbkcl$3evhe$7@dont-email.me>
 <eaajej9hlmkdb4dbbdafiff63o549dlgas@4ax.com>
 <vccaag$3je29$4@dont-email.me>
 <pf0kejtj8b8riu7aa73ma5700o4bj0mr3e@4ax.com>
 <vci7f7$o1le$1@dont-email.me>
 <vcjb88$10tfo$5@dont-email.me>
 <b+f*To1Uz@news.chiark.greenend.org.uk>
 <jidrej5t93mud6asmgvis4rcetolmqa6ta@4ax.com>
 <vclv4m$1he37$2@dont-email.me>
 <6bntejlmcn474a4upiog3rc8seqcqi6e7p@4ax.com>
 <vcn3a6$1mla1$3@dont-email.me>
 <057uejd09fhuk7ktcqljburd969bv3vfdc@4ax.com>
 <vcn82a$1net1$1@dont-email.me>
 <l39uejlvspoestr2od47ob2klth3m1bf9u@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 21 Sep 2024 22:46:52 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="947aba7d3fb8a6242fb4700d57d17df1";
	logging-data="1832202"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18fn8N5R3lX2TE0HgqikJ+6"
User-Agent: NewsTap/5.5 (iPhone/iPod Touch)
Cancel-Lock: sha1:2VqB4lWrc7Z0WfnSM+sy8kBkHLM=
	sha1:fCq+6XO7DkzcYOPHsPfhqXd/gLY=
Bytes: 7293

john larkin <JL@gct.com> wrote:
> On Sat, 21 Sep 2024 19:50:34 -0000 (UTC), Phil Hobbs
> <pcdhSpamMeSenseless@electrooptical.net> wrote:
> 
>> john larkin <JL@gct.com> wrote:
>>> On Sat, 21 Sep 2024 19:29:26 +0100, The Natural Philosopher
>>> <tnp@invalid.invalid> wrote:
>>> 
>>>> On 21/09/2024 16:08, john larkin wrote:
>>>>> On Sat, 21 Sep 2024 09:12:06 +0100, The Natural Philosopher
>>>>> <tnp@invalid.invalid> wrote:
>>>>> 
>>>>>> On 20/09/2024 19:00, john larkin wrote:
>>>>>>> On 20 Sep 2024 11:30:13 +0100 (BST), Theo
>>>>>>> <theom+news@chiark.greenend.org.uk> wrote:
>>>>>>> 
>>>>>>>> In comp.sys.raspberry-pi The Natural Philosopher <tnp@invalid.invalid> wrote:
>>>>>>>>> On 19/09/2024 23:09, Lasse Langwadt wrote:
>>>>>>>>>> On 9/18/24 00:33, john larkin wrote:
>>>>>>>>> 
>>>>>>>>>>> It looks like a USB memory stick. You can delete or add files if you
>>>>>>>>>>> want.
>>>>>>>>>>> 
>>>>>>>>>>> It boots CPU 0 (the one we call Alice) from a file with the extension
>>>>>>>>>>> .UL2
>>>>>>>>>>> 
>>>>>>>>>>> Why   .UL2   one wonders.
>>>>>>>>>>> 
>>>>>>>>>>> We'll put a bunch of files into the flash. Code for Bob, the 2nd CPU.
>>>>>>>>>>> An FPGA bitstream file. A prototype calibration table. A README file
>>>>>>>>>>> to explain everything in plain English.
>>>>>>>>>> 
>>>>>>>>>> sure it's not UF2?
>>>>>>>>>> 
>>>>>>>>>> https://github.com/microsoft/uf2
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> Definitely uf2 here.
>>>>>>>>> 
>>>>>>>>> And no, you cannot 'delete or add files' to it.
>>>>>>>>> The action of pretending to download a uf2 file into what appears to be
>>>>>>>>> an empty drive, erases everything on it and programs the flash.
>>>>>>>>> 
>>>>>>>>> There are no visible files to delete.
>>>>>>>> 
>>>>>>>> Neat.  So basically you throw some files at it, which causes a series of
>>>>>>>> block writes.  UF2 picks out specially tagged block writes and uses that to
>>>>>>>> program the flash.  It doesn't actually care what other stuff is written to
>>>>>>>> the flash as it ignores all of that, so it doesn't care about all the FAT
>>>>>>>> stuff or whatever junk your OS decides to put on there.
>>>>>>>> 
>>>>>>>> Means you can write any kind of files to it and it'll only pay attention to
>>>>>>>> the specific tagged blocks.  If the OS is happy to cache the medium (as many
>>>>>>>> do) you could maybe even reformat it as some other filesystem like NTFS and
>>>>>>>> it would still handle writing the UF2 file correctly.
>>>>>>>> 
>>>>>>>> Theo
>>>>>>> 
>>>>>>> My Pi guy says that you can only write one file, and the act of
>>>>>>> writing that file wipes anything that was there before. So the flash
>>>>>>> probably doesn't have a file structure, and the USB memory-stick write
>>>>>>> is, well, a sort of cheap trick.
>>>>>>> 
>>>>>>> That's workable, if inelegant. We can pack everything we need into
>>>>>>> that one big file and users can upgrade box code in the field pretty
>>>>>>> easily.
>>>>>>> 
>>>>>> 
>>>>>> It gets nastier if you want to preserve config info across reboots.
>>>>>> It is possible to read and write areas of flash from the code, but its
>>>>>> no picnic.
>>>>>> And it gets wiped when new code is uploaded
>>>>>> 
>>>>>> 
>>>>>> It is an area I will have to tackle for one project tho.
>>>>> 
>>>>> Yes, writing to flash from the running application is nasty.
>>>>> 
>>>>> We have to calibrate each box. We'll store the prototype calibration
>>>>> table inside the big flash image. At factory test, we'll grab that,
>>>>> edit it for this particular unit, and save it to a small SPI eeprom
>>>>> chip. That costs 24 cents and one chip select pin.
>>>>> 
>>>>> My guy says that there are a few magic integers at the start of the
>>>>> UF2 file that identifies it, well, as a UF2 file. That confirms that
>>>>> the Pico flash doesn't have a file structure, it just stores one giant
>>>>> chunk of stuff starting at the start.
>>>>> 
>>>>> It's Windows who lies about it acting like a USB memory stick that
>>>>> stores files.
>>>>> 
>>>>> We did consider saving the real cal table at some fixed physical
>>>>> address near the end of the flash , on the theory that nobody will
>>>>> ever write a bootable image that big. That might work.
>>>>> 
>>>> That seems to be the case.
>>>> 
>>>> I looked into it enough to see that it would be possible to store NV 
>>>> data in a high part of the flash.
>>>> 
>>>> I think that the runtime provides access to a memory location that 
>>>> indicates the end of the uploaded flash image, so in theory flash above 
>>>> that is free to write, with the proviso it has to be done in large 
>>>> blocks on specific address boundaries.
>>>> 
>>>> All this is at least Pi Pico specific anyway.
>>> 
>>> We're using the RP2040 chip, so will have a huge flash chip. We will
>>> sometimes store an FPGA config file that could be too big for the 2
>>> MByte part on the Pico.
>>> 
>>> 
>>>> 
>>>> Will keep me busy through the dark winter days...:-)
>>> 
>>> Storing anything in high flash still has the problem that you can't
>>> run flash-cached code while the write is going on, unless you are very
>>> careful. 
>>> 
>>> 
>> 
>> It’s good to have a warm relationship with your linker mapfile. ;)
>> 
>> Cheers 
>> 
>> Phil Hobbs 
> 
> Interrupts might get nasty, demanding swaps into the flash cache when
> the flash is busy writing. 
> 
> 

That’s where the mapfile comes in. Assuming that you can update one flash
page while updating another, that is. 

Cheers 

Phil Hobbs 

-- 
Dr Philip C D Hobbs  Principal Consultant  ElectroOptical Innovations LLC /
Hobbs ElectroOptics  Optics, Electro-optics, Photonics, Analog Electronics