#avr | Logs for 2015-03-26

Back
[00:03:48] <TheMadDrizzle> Wondering if anyone can give me a bit of advice - I'm trying to set up my eclipse to work with my arduino uno it fails out. Eclipse tells me that there is no programe ' make ' though I've updated my eclipse build path and my system path to point to the apporoporiate make utility. Can anyone help me out?
[01:02:47] <markm_> trying to assemble my code into the boot sector but i dont think im putting it where i want it to go. no matter what i do the VMA ande LMA are always zero
[01:02:56] <markm_> someone suggested i look at the sources for xboot
[01:03:04] <markm_> does not help me one iota, xboot is coded in C not asm
[01:03:55] <markm_> the boot sector is at 020000 but i think the gnu assembler is too stupid to understand 16 bit cell sizes so im doubling that in my .org
[01:04:19] <markm_> but the elf file seems to say my code is being put in the application section
[01:05:52] <Casper> iirc, for C, you have a compiler option to use to offset the stuff..
[01:44:40] <markm_> im not using c
[01:44:44] <Flipp_> markm_: did you add the linker flag -Wl,--section-start=.text=$(BOOTLOADER_ADDRESS)
[01:44:45] <Flipp_> ?
[01:45:00] <markm_> flipp erm. no i set .org lol
[01:45:11] <markm_> ill add that
[01:45:20] <Flipp_> :)
[01:45:35] <Flipp_> if you're using avr-gcc, that's what gets my bootloader in the right place :D
[01:45:43] <markm_> yes avr-gcc
[01:48:46] <markm_> its telling me some invalid hex char error
[01:49:15] <markm_> hexadecimal value of 0x0f is an invalid character
[01:50:52] <Flipp_> ah
[01:50:58] <Flipp_> I think it's just actual offset
[01:51:00] <Flipp_> for my mega
[01:51:09] <Flipp_> the value is 3E000
[01:51:13] <Flipp_> not 0x3E000
[01:51:33] <markm_> im not specifying the addrss i just pasted exactly as you showed
[01:51:43] <markm_> and if i give the address im still left with the problem
[01:51:46] <markm_> WHAT address
[01:51:50] <markm_> 0x20000 or 0x40000
[01:52:02] <Flipp_> erm, where your fuses are telling the bootloader to start :)
[01:52:06] <Flipp_> what chip are ya working with?
[01:52:15] <markm_> 256a3bu
[01:52:25] <markm_> the boot sector is at 0x20000
[01:52:33] <Flipp_> do you know what your fuses are set at?
[01:52:53] <markm_> the fuses dont change the boot sector address
[01:53:19] <Flipp_> hm. sorry, just realized that's an xmega. they do on the atmega2560s
[01:53:33] <markm_> yea they do on the 32u4 too :)
[01:54:03] <Flipp_> looks like 40000
[01:54:12] <markm_> because i have to double the address?
[01:54:16] <Flipp_> since it's word address 20000, which is byte address 40000
[01:54:25] <markm_> because gcc is too stupid to understand 16 bit cell sizes
[01:54:27] <markm_> ty
[01:54:53] <markm_> missing arguments to --section-start
[01:55:12] <markm_> -Wl,--section-start=.text=$(40000)
[01:55:18] <Flipp_> so it looks like -Wl,--section-start=.text=40000?
[01:55:21] <Flipp_> ah, no $ and parens
[01:55:28] <Flipp_> sorry, that's just a holdover from my makefile
[01:55:36] <markm_> better :)
[01:55:50] <markm_> now lets look in the listing
[01:56:01] <markm_> yes
[01:56:06] <markm_> that looks like it did it right
[01:56:21] <Flipp_> :)
[01:59:53] <markm_> lol yea specifying section starts with linker switches makes more sense than using .org
[02:00:16] <markm_> with .org my hex file contained the entire memory range from 000000 to top of memory
[02:00:24] <markm_> now it just has 2 sections
[02:00:54] <Flipp_> starts at 40000 then in the .map file?
[02:01:14] <markm_> text 0x00000000 0x00100000 xr
[02:01:37] <markm_> 0 .text 0000113c 00040000 00040000 00000f9c 2**1
[02:01:37] <markm_> CONTENTS, ALLOC, LOAD, READONLY, CODE
[02:01:40] <markm_> from the listing
[02:02:12] <markm_> i dont understand that map file, i dont HAVE a .data section
[02:02:38] <markm_> oh. thats just telling me the ranges for each section
[02:02:42] <markm_> not whats actually used
[02:03:15] <markm_> phew. my build before was telling me i had used 99%, not its saying 1.6% lol
[02:03:32] <markm_> erm but its saying 52.4% data
[02:03:49] <markm_> im not using any .data, im using .bss tho
[02:03:56] <markm_> im certainly not using 16k of bss
[02:04:05] <markm_> erm 8k
[02:04:59] <markm_> yea ctually its saying text 8260, data 0, bss 8588, dec 16848
[02:05:03] <Flipp_> are you creating a .map file?
[02:05:08] <markm_> yes
[02:05:15] <Flipp_> -Wl,-Map=your_bootloader_map.map,--cref
[02:05:16] <Flipp_> k
[02:05:34] <markm_> i wish i could get the listing to show ALL sections
[02:05:41] <markm_> including bss
[02:05:43] <Flipp_> you should see your bootloader main() function in that file
[02:06:39] <markm_> is .data ram?
[02:07:02] <markm_> i cant read this map file
[02:07:25] <Flipp_> so (at least in mega chips) .data is global data that's stored in the flash address space
[02:07:32] <markm_> it has all kinds of shit in here about __ctors_start and crap like that
[02:07:38] <Flipp_> yup
[02:07:41] <markm_> ok thats what i thought
[02:07:57] <Flipp_> note: flash address space and sram are different (again, at least in mega chips)
[02:08:00] <Flipp_> don't know about xmega
[02:08:08] <Flipp_> I'm assuming they're harvard architectures like the megas
[02:08:19] <markm_> they are at overlapping addresses
[02:08:37] <markm_> tho 0x00 to 0x2000 are sfrs and external memory interface
[02:08:41] <markm_> first usable ram = 2000
[02:09:02] <markm_> but both ram and rom start at address 0
[02:09:07] <Flipp_> yup
[02:09:08] <Flipp_> okay
[02:09:18] <markm_> which the gnu tools cant get a grip on
[02:09:21] <Flipp_> so stuff in the .data section
[02:09:24] <markm_> so it fudges the address
[02:09:29] <Flipp_> gets copied over into SRAM
[02:09:31] <Flipp_> on startup
[02:09:41] <markm_> yea i HOPE NOT lol
[02:09:47] <Flipp_> it does
[02:09:50] <markm_> because i told it no standard libraries
[02:10:13] <markm_> and my .data is 0 bytes
[02:10:28] <Flipp_> okay
[02:10:29] <Flipp_> in that case
[02:10:29] <markm_> i have __tramplines_start and end in here too
[02:10:33] <Flipp_> yup
[02:10:39] <markm_> but they dont seem to have been given any space
[02:10:42] <markm_> which is what i want
[02:10:52] <Flipp_> that's needed for function addresses above 64k
[02:11:01] <markm_> no. its not :)
[02:11:29] <markm_> my code is not generated by any brain dead C compiler. its 100% pure assembler and I am in charge of all that :P
[02:11:50] <Flipp_> alright
[02:11:53] <Flipp_> well if it *were*
[02:11:57] <markm_> ya
[02:12:00] <Flipp_> that's where it would go :)
[02:12:05] <Flipp_> but since it doesn't need it
[02:12:12] <Flipp_> it still notes that it's there
[02:12:14] <Flipp_> it's just zero length
[02:12:17] <markm_> i understand that gcc users need mommy to hold their hand :)
[02:12:23] <markm_> ya
[02:12:38] <Flipp_> the _start and _end should be at the same address
[02:12:44] <markm_> all of these little helpers i asked it not to give me seem to be 0 length
[02:12:45] <Flipp_> in the .map file
[02:12:50] <Flipp_> yeah
[02:12:55] <Flipp_> which mean they're discarded
[02:13:16] <markm_> yes
[02:13:33] <Flipp_> when you ask it to generate the .map, it gives you all the information it knows about (e.g. the __trampolines_start thing), but they're usually 0 length if you told them to be discarded during linking
[02:13:41] <markm_> im looking at the hex filem, thers nothing in there that does not belong
[02:13:48] <Flipp_> cool
[02:13:54] <Flipp_> sounds like you're on your way :)
[02:14:07] <markm_> tho i dont understand how this hex file sets the addresses lol
[02:14:21] <markm_> seems like there are multiple sections in the hex file and they both start at offset 0 in that section
[02:15:10] <markm_> they each have a hex file format line in front that i cant read
[02:15:12] <markm_> :020000023000CC
[02:15:36] <markm_> that one is for my head section which is at adress 1f000 (3e000 for gnu as)
[02:15:48] <markm_> i dont see any 1f000 in there :)
[02:19:10] <markm_> i think im using about 4k of my 8k total boot sector
[02:19:13] <markm_> which is awesome
[02:19:25] <markm_> thats 99% of my forth kernel
[02:21:55] <markm_> is there a way to make the listing show my custom section?
[02:22:01] <markm_> its in flash
[02:22:08] <markm_> but its not part of .text
[02:23:17] <markm_> there are pointers from my .text to data items in head and pointers in head to items in .text
[02:23:39] <markm_> and i cant verify the links because i only get to listen to half the conversation
[02:25:33] <markm_> also, is it possible to stop the listing from interleaving the listing lines with the source lines?
[02:25:39] <markm_> the listing line already gives the source
[02:25:56] <markm_> lds r16, OSC_STATUS ; get oscilator status
[02:25:56] <markm_> 41100: 00 91 51 00 lds r16, 0x0051
[02:26:20] <markm_> i.e. stop it from outputting the first line there
[04:40:42] <inflex> Tom_itx: ever wondered what the variance would be in lifespan on electronics if we just ran the reflow oven flat out until reflowed and turned off?
[04:41:06] <inflex> Tom_itx: or do you think it'd still be best to have a 2 ~ 3 minute warm up before going flat out
[09:59:16] <Tekkkz> Hey
[09:59:24] <Tekkkz> I have a problem with external interrupts
[09:59:55] <Tekkkz> is it normal that if int1 is activated, the int2 xor int3 dont react anymore?
[10:00:04] <Tekkkz> like described here: http://www.mikrocontroller.net/topic/362302#4067288
[10:05:03] <LeoNerd> Interrupt handlers are all priority-ordered
[10:05:23] <LeoNerd> Also usually interrupt handlers run with interrupts masked, so they can't interrupt each other
[10:09:01] <malinus> Well the interrupt is still triggered (the flag will get toggled). You just won't enter the routine, before returning from your current routine (or if there is a other interrupt waiting with a lower number).
[10:09:44] <Tekkkz> so is it possible to have multiple interrupts?
[10:10:04] <LeoNerd> Multiple can be pending, yes.. but obviously only one handler can be running at a time
[10:10:08] <malinus> yes and no :D. What are you doing, btw.?
[10:10:24] <Tekkkz> its for my 3d printer, these are the endstop-switches
[10:10:38] <Tekkkz> i need to call something when they are low
[10:10:55] <malinus> Well those shouldn't happen all at once anyway, so no worries there!
[10:11:09] <Tekkkz> but what if it does??
[10:11:34] <malinus> That's why you routines should be very short.
[10:11:35] <Tekkkz> then the motors dont stop and the belt rip
[10:11:44] <Tekkkz> http://www.mikrocontroller.net/attachment/highlight/251807
[10:11:46] <Tekkkz> they are
[10:11:49] <Tekkkz> but hm
[10:12:06] <Tekkkz> maybe i should do it with on falling edge and not just falling?
[10:12:24] <malinus> then we are talking 1/(FCPU*nrOfInstructions) + a few :D
[10:12:41] <Tekkkz> EICRA should have the falling adge right?
[10:15:13] <Tekkkz> nice works
[10:15:25] <Tekkkz> i was such an idiot that i didnt found this idea earlier
[10:15:28] <Tekkkz> ty
[10:15:30] <Tekkkz> anyway
[12:26:17] <Tekkkz> arduino sattelite
[12:31:30] <Dominykas> Hey guys, how would i be able to find the schematic of this 8x8 led matrix?
[12:31:33] <Dominykas> http://a.pomf.se/yoafih.jpg
[12:31:40] <Dominykas> http://a.pomf.se/jgnzts.jpg
[12:31:53] <Dominykas> i tried searching the code, but couldnt find anything
[12:32:35] <Dominykas> i bought it from ebay, and the only thing that was listed there, was statistics like voltage and things like that
[12:32:47] <Dominykas> also the underside: http://a.pomf.se/bgmpxi.jpg
[12:33:28] <Dominykas> the problem, is i dont know, which pins to connect to light up a led, they are all scattered
[12:34:17] <Tekkkz> rgb or normal?
[12:34:36] <Tekkkz> at the side of the matrix is a print with its number, check this please and give me the number
[12:34:41] <Tekkkz> like the type
[12:47:19] <Tekkkz> Iwant to communicate bi-directional with an m32u4 and pc
[12:47:32] <Tekkkz> i just want to send data between them, what do you reommend
[12:47:32] <LeoNerd> UART/serial
[12:47:45] <Tekkkz> i read sth from lufa but i dont like it, verry compliacted
[12:47:55] <Tekkkz> it should be something whats easy/simple
[12:48:09] <LeoNerd> The 32U4 does also have a "normal" hardware UART.. so you could just use that
[12:48:21] <LeoNerd> You'd lose the entire point of having builtin USB on the 32U4 though ;)
[12:48:24] <Tekkkz> a uart to communicate with usb?
[12:48:31] <Tekkkz> hm yes
[12:48:44] <Tekkkz> but i dont know how to use it, it is similar to using uart?
[12:48:47] <LeoNerd> So at that point I'd question why you were using a 32U4, if you didn't want to be talking USB
[12:48:58] <Tekkkz> i want
[12:49:02] <LeoNerd> Hrm? Is what similar?
[12:49:03] <Tekkkz> it s why i bought this chip
[12:49:08] <Tekkkz> cause built-in
[12:49:21] <Tekkkz> but i dont know how to use it and dont find any tutorials
[12:49:48] <LeoNerd> You could always stick arduino on it
[12:50:08] <LeoNerd> I believe the latest stuff has a 32U4 serial CDC, so that 'Serial' becomes the USB-CDC channel, and Serial1 is the (hardware) UART
[12:50:10] <Tekkkz> sorry what do you mean with that sentence, my english is not really good
[12:50:35] <LeoNerd> Flash the Arduino bootloader onto it, then you can write Arduino programs for it
[12:50:43] <Tekkkz> ahh
[12:50:45] <Tekkkz> nono
[12:50:48] <Tekkkz> i hate arduino
[12:50:54] <Tekkkz> its ok to use my own stuff
[12:50:56] <LeoNerd> The Arduino Leonardo (I think) is 32U4-based, so there's support there
[12:50:59] <LeoNerd> Mmm
[12:51:00] <Tekkkz> but i just need to find a serial lib
[12:51:05] <LeoNerd> Well, that's your choice, basically :)
[12:51:09] <Tekkkz> yeah
[12:51:12] <Tekkkz> no arduino
[12:51:14] <Tekkkz> bah
[12:51:18] <LeoNerd> Learn how to use LUFA or similar and do USB yourself, or use Arduino's solution so you odn't have to
[12:51:42] <Tekkkz> is it possible to just "steal" arduinos lib and customize it?
[12:52:01] <LeoNerd> I'd imagine so.. there's nothing magical about it; it's just C++
[12:52:09] <Tekkkz> yeah c++, bah
[12:52:18] <LeoNerd> I don't know how cleanly you could take that bit without anything else though... such things tend to be layered up in a stack
[12:52:22] <Tekkkz> nevermind, i need to have a deeper look on lufa i think
[12:52:37] <Tekkkz> but i dont find any tutorials
[12:52:43] <LeoNerd> Also consider licencing - Arduino's version is likely to be some sort of opensource thing you'll need to preserve
[12:52:51] <Tekkkz> which explains the serial (cdc) functionality programming of lufa
[12:53:14] <LeoNerd> I recently got myself a 32U4 breakout board, so I'll be looking into it sometime
[12:53:21] <LeoNerd> But likely not in the short-term, as I have radio modules to finish first
[12:53:22] <Tekkkz> btw is lufa using the hardware usb?
[12:53:36] <LeoNerd> I thought that was the entire point, yes. That it uses the real hardware USB controller
[12:53:43] <Tekkkz> which breakout did you got?
[12:53:52] <LeoNerd> Adafruit
[12:54:05] <LeoNerd> I paid waaaay over the odds, just to get one with a real ISP6 connector
[12:54:13] <Tekkkz> haha
[12:54:16] <Tekkkz> i have the same
[12:54:16] <LeoNerd> http://www.amazon.co.uk/gp/product/B00RWSIU6Y <== dirt-cheap, but no ISP6
[12:54:18] <Tekkkz> i like it
[12:54:21] <Tekkkz> buts verry expensive
[12:55:00] <Tekkkz> and their bootloader, wow, what a change from the lufas original, they just changed that the boot led dont blink, it ..whats the word?
[12:55:04] <Dominykas> normal (red) number: LTH1388BSR
[12:55:09] <Tekkkz> it pulses or i dont know
[12:55:17] <LeoNerd> Oh Iv'e not look at all yet
[12:55:19] <Tekkkz> Dominykas: then search the web for it
[12:55:23] <LeoNerd> I literally haven't even opened the packet it arrived in :P
[12:55:28] <Tekkkz> hehe
[12:55:34] <Tekkkz> you need to do this
[12:55:48] <Tekkkz> and then you can help me figure out how to get usb serial communication :P
[12:56:05] <LeoNerd> Eh.. I'm sure there's more people in the world than just me
[12:56:38] <Tekkkz> hmm, wait, there is Dominykas for 1/2 too, but i think he have no plans of anything, so yeah, there is just you :P ;D
[12:57:29] <Tekkkz> nono
[12:57:37] <Tekkkz> but you are verry polite and help me a lot
[12:58:16] <Dominykas> allright
[12:59:51] <Tekkkz> LeoNerd: you know any lufa cdc tut?
[13:01:05] <LeoNerd> I've not looked into it, no
[13:01:45] <Tekkkz> mhh ;(
[13:08:13] <Tekkkz> LeoNerd: hahaha
[13:08:18] <Tekkkz> https://www.tinkersoup.de/atmega32u4-breakout/a-771/
[13:08:21] <Tekkkz> just 12 bucks
[13:09:25] <LeoNerd> Oh huh
[13:09:33] <Tekkkz> hehe
[13:09:39] <Tekkkz> it ahs also a real isp header
[13:09:39] <LeoNerd> I thought I looked at that and it didn't have the ISP6 header
[13:09:41] <LeoNerd> Yeah
[13:09:52] <Tekkkz> haha
[13:09:56] <Tekkkz> btw, from wehre are oyu?
[13:10:01] <LeoNerd> https://www.sparkfun.com/products/11117
[13:10:02] <LeoNerd> Huh
[13:10:06] <LeoNerd> Yeah, that's the sparkfun
[13:10:12] <LeoNerd> Man alive how did I not see that one :(
[13:10:13] <LeoNerd> UK
[13:10:20] <Tekkkz> ahh ok, yeah lol
[13:10:22] <Tekkkz> hehe
[13:10:24] <Tekkkz> :P
[13:12:01] <Tekkkz> btw, tomorrow i will have a look at the lufa cdc, but today i need to learn for english test tomorrow :/
[13:12:09] <Tekkkz> so im away now, byebye
[13:57:25] <Tekkkz> Im back
[13:57:29] <Tekkkz> im too lazy to learn
[13:57:40] <Tekkkz> hope i know everything by my own tomorrow
[13:58:28] <Tekkkz> Guys i want to buy a tablet, i think 7" for using it for notes and engineering
[13:58:34] <Tekkkz> can you recommend any tablets?
[15:30:13] <Tekkkz> http://www.ebay.de/itm/7-Zoll-Dual-Core-kamera-4GB-Android-4-2-Bluetooth-GPS-WIFI-3G-Handy-Tablet-PC-/390973647262?pt=LH_DefaultDomain_77&hash=item5b07d8699e
[15:30:15] <Tekkkz> http://www.ebay.de/itm/Ledertasche-mit-Tastatur-fur-7-Zoll-Tablet-PC-Micro-USB-Case-Hulle-Kunstleder-/201043825763?pt=LH_DefaultDomain_77&hash=item2ecf255463
[15:30:17] <Tekkkz> http://www.ebay.de/itm/4-x-Stylus-Touch-Pen-Eingabestift-Smartphones-Tablets-iPhone-Samsung-iPad-HTC-/151159272337?pt=LH_DefaultDomain_77&hash=item2331cb7391
[15:30:19] <Tekkkz> my order :D
[15:30:22] <Tekkkz> for this low price its perfect
[15:32:36] <wulax> even if it breaks after one week and the seller won't give you a refund?
[15:43:09] <Tekkkz> it wont break
[15:43:11] <Tekkkz> im sure
[15:43:21] <Tekkkz> wulax: you have better recommendation?
[19:51:13] <Jordan_U> How do I determine how large the BootLoader Section on an ATMega64M1 is? I tried searching the datasheet for "BLS", "bootloader", and some other strings and couldn't find that piece of information. I'm trying to get/make a bootloader that will load new firmware from an SD card, so if anyone has recommendations for existing bootloaders that allow this that would be great as well.
[20:02:33] <Jordan_U> My first choice currently is to try "ATMEL AVR generic MMC boot loader" from the Petit Fatfs project's "sample projects". It seems like the most well maintained of the projects I've found.
[20:18:11] <Tom_itx> the data sheet will tell you the boot area size
[20:18:30] <Tom_itx> look at the memory map
[20:23:25] <Jordan_U> Tom_itx: I see "Boot flash section" with "0x1FFF/0x3FFF/0x7FFF", which I assume to be the start address of the BLS for the 16/32/64 KiB versions of the chip. Since 0x7FFF is 32 KiB, does that mean that it's an even split and for the ATMega64M1 I have 32 KiB for program and another 32 KiB for bootloader?
[20:23:51] <Tom_itx> boot size also
[20:27:19] <Jordan_U> Tom_itx: Thanks. And now I see that one of the strings I should have tried searching for was "boot loader" rather than "bootloader" :)
[23:07:33] <Valen> anybody know where Tom_itx's webpage went?
[23:21:54] <w|zzy> Its where it always is for me :/
[23:23:32] <Casper> Valen: work for me
[23:29:52] <Valen> Casper: got a link?
[23:30:19] <Valen> or w|zzy
[23:30:42] <Casper> topic?
[23:30:52] <Valen> tom-itx's web page
[23:31:09] <Valen> trying to look up the pinout on a doohickey I got off him a while ago
[23:31:22] <Valen> I must be putting it in wrong
[23:31:48] <Casper> I mean look at the channel topic
[23:31:54] <Valen> oh duh
[23:31:58] <Valen> also that explains it
[23:32:02] <Valen> he used to be dyndns.org
[23:32:16] <Valen> thanks ;->
[23:37:30] <w|zzy> In the topic.
[23:52:48] <Flipp_> anyone know why avrdude would fail to write part of flash memory that wasn't previously erased?
[23:53:15] <Flipp_> if I program via SPI to an erased chip, it works fine.
[23:53:18] <N1njaneer> Because it wasn't erased? :)
[23:53:44] <N1njaneer> You have to clear the memory back to 0xFF before writing new code if the flash is already written.
[23:53:44] <Flipp_> well, yeah, I guess I mean why does it need to be erased first? can't it just be changed in-place?
[23:53:57] <Flipp_> huh. any particular reason why that is?
[23:54:21] <N1njaneer> No, traditional flash memory has to be page-erased back to 0xFF's and then written to 0's where appropriate.
[23:54:37] <N1njaneer> The EEPROM can be rewritten on the fly per-byte, however.
[23:55:00] <Flipp_> huh. alright, that explains the weirdness I was seeing.
[23:55:08] <Flipp_> is that a limitation of flash? SPI? avr?
[23:55:13] <N1njaneer> You have to do this same thing when working with pretty much all NAND flash. Has to do with the topography of the flash memory.
[23:55:18] <N1njaneer> The flash.
[23:55:20] <Flipp_> ah, ok
[23:55:28] <N1njaneer> This goes back to even old EPROMs
[23:55:49] <N1njaneer> UV light restores a charge on the floating gate and makes things sit as 0xFF
[23:56:18] <N1njaneer> When you program the part, the gate is discharged to a 0 state and "stays" like that. But you have to erase the whole thing back to 0xFF before reprogramming.
[23:56:20] <Flipp_> interesting
[23:56:42] <N1njaneer> You CAN cheat this, kind of, in certain scenarios where you might just want to keep writing 0's
[23:56:52] <Flipp_> yeah, I was just about to ask that :)
[23:57:08] <Flipp_> but that seems like a super niche scenario
[23:57:21] <N1njaneer> So for instance if you kept a page for counting events or such, you could knock every bit to a zero inside of the full page, then do a page erase, increment a counter, and start over.
[23:57:44] <N1njaneer> Primarily would be done to help wear-leveling. Flash will "wear out" after so many hundreds of thousands of writes.
[23:57:50] <Flipp_> huh
[23:58:02] <Flipp_> yeah, I saw that the chip I'm working with is rated for 100k flash cycles