* Put something on screen * Use the 32bit watch_date_time repr to pass from JS * Implement periodic callbacks * Clear display on enabling * Hook up watch_set_led_color() to SVG (green-only) * Make debug output full-width * Remove default Emscripten canvas * Implement sleep and button clicks * Fix time zone conversion bug in beats-time app * Clean up warnings * Fix pin levels * Set time zone to browser value (if available) * Add basic backup data saving * Silence format specifier warnings in both targets * Remove unnecessary, copied files * Use RTC pointer to clear callbacks (if available) * Use preprocessor define to avoid hardcoding MOVEMENT_NUM_FACES * Change each face to const preprocessor definition * Remove Intl.DateTimeFormat usage * Update shell.html title, header * Add touch start/end event handlers on SVG buttons * Update shell.html * Update folder structure (shared, simulator, hardware under watch-library) * Tease out shared components from watch_slcd * Clean up simulator watch_slcd.c inline JS calls * Fix missing newlines at end of file * Add simulator warnings (except format, unused-paremter) * Implement remaining watch_rtc functions * Fix button bug on mouse down then drag out * Implement remaining watch_slcd functions * Link keyboard events to buttons (for keys A, L, M) * Rewrite event handling (mouse, touch, keyboard) in C * Set explicit text UTF-8 charset in shell.html * Address PR comments * Remove unused directories from include paths
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
		
			Executable File
		
	
	
	
	
| The Flash Driver
 | |
| ================
 | |
| 
 | |
| Flash is a re-programmable memory that retains program and data
 | |
| storage even with power off.
 | |
| 
 | |
| User can write or read several bytes from any valid address in a flash.
 | |
| 
 | |
| As to the erase/lock/unlock command, the input parameter of address should
 | |
| be a bytes address aligned with the page start, otherwise, the command will fail
 | |
| to be executed. At the meantime, the number of pages that can be locked or unlocked
 | |
| at once depends on region size of the flash. User can get the real number
 | |
| from the function return value which could be different for the different devices.
 | |
| 
 | |
| Features
 | |
| --------
 | |
| 
 | |
| * Initialization/de-initialization
 | |
| * Writing/Reading bytes
 | |
| * Locking/Unlocking/Erasing pages
 | |
| * Notifications about errors or being ready for a new command
 | |
| 
 | |
| Applications
 | |
| ------------
 | |
| 
 | |
| * Mini disk which can retain program and data storage
 | |
| * Boot loader
 | |
| * Non volatile storage
 | |
| 
 | |
| Dependencies
 | |
| ------------
 | |
| 
 | |
| The peripheral which controls a re-programmable flash memory.
 | |
| 
 | |
| Concurrency
 | |
| -----------
 | |
| 
 | |
| N/A
 | |
| 
 | |
| Limitations
 | |
| -----------
 | |
| 
 | |
| User should pay attention to set a proper stack size in their application,
 | |
| since the driver manages a temporary buffer in stack to cache unchanged data
 | |
| when calling flash write and erase function.
 | |
| Due to flash memory architecture of SAMD21/D20/L21/L22/C20/C21/D09/D10/D11/R21,
 | |
| write operation erazes row content before each write.
 | |
| 
 | |
| Known issues and workarounds
 | |
| ----------------------------
 | |
| 
 | |
| N/A
 |