ui processor rtos
The SPI Flash (S25FL116K0XMFI011) has this memory organization:
- 32 blocks with 64 kbytes in each
- 512 sectors with 4 kbytes in each
- 8192 pages with 256 bytes in each
This means 1 block = 16 sectors = 256 pages
The splash image is stored in the SPI Flash. This is 800*480*3 = 1152000 bytes
. This will take up 1152000/1024/64 = 17,578125 ≈ 18 blocks
, which is a big portion of the SPI Flash. A bigger memory can be installed if more data should be stored on it.
A memory map of the SPI Flash can be seen below.
Block | Sector | Page | Startaddress (Hex) | Content |
---|---|---|---|---|
0 | 0 | 0 | 0x00000000 | reserved |
- | - | - | - | - 14 | 224 | 3584 | 0x000E0000 | Splash image start
- | - | - | - | - 31 | 511 | 8192 | 0x00200000 | Last page on SPI Flash
The I2C EEPROM is a 24LC256T with 256kbit = 32kByte capacity. It is divided into 512 pages with 64-byte in each.
A memory map of the I2C EEPROM can be seen below.
Page | Startaddress (Hex) | Content |
---|---|---|
0 | 0x0000 | reserved |
- | - | - 1 | 0x0040-0x0045 | Channel Id 1-6 1 | 0x0046-0x004B | Channel Type 1-6 1 | 0x004C | Buzzer Setting
- | - | - 511 | 0x7FC0 | Last page on I2C EEPROM
In the new HAL library there is a tick that has to be updated every ms but FreeRTOS "takes over" the SysTick. Therefore we have to add some code in port.c in the function void xPortSysTickHandler( void ). It should look something like this:
void xPortSysTickHandler( void )
{
/* The SysTick runs at the lowest interrupt priority, so when this interrupt
executes all interrupts must be unmasked. There is therefore no need to
save and then restore the interrupt mask value as its value is already
known. */
( void ) portSET_INTERRUPT_MASK_FROM_ISR();
{
/* Increment the RTOS tick. */
if( xTaskIncrementTick() != pdFALSE )
{
/* A context switch is required. Context switching is performed in
the PendSV interrupt. Pend the PendSV interrupt. */
portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
}
}
portCLEAR_INTERRUPT_MASK_FROM_ISR( 0 );
/* The HAL need to update it's tick as well */
HAL_IncTick();
}
Homepage
Pictures
GUI Mockup
Contact
Version 2:
ui-processor-rtos
fpga-config-mcu
fpga-config-over-uart
Version 1:
freertos-serial-monitor
freertos-serial-monitor lcd test
Simple GUI:
General
GUIObject
GUIButton
GUILabel
GUIStaticTextBox
GUIAlertBox
GUIButtonGridBox
GUIButtonList
GUIInfoBox
Tasks:
LCD Task Message
LCD:
LCD ER-TFT070-4
LCD ER-TFTM070-5
LCD HY070CTP-HD
LCD HY101CTP-HD
LCD YL070MY01
Touch Controller
Measurements:
STM32 GPIO Speed
FT5206 Waveform Capture
Version 2:
Revision 2 Mockup
Module IDs
Boards:
Connection Board
UI Processor Board
Data Processor Board
Isolated Power Module
LCD Board
Modules:
1. GPIO Module
3. CAN Module
5. RS-232 Module
15. nRF24L01 Module
Future Module Ideas
FPGA:
FPGA Main Blocks
FPGA Communication
FPGA UART
FPGA GPIO
FPGA Timestamp
FPGA SDRAM
FPGA PLL
[FPGA ID Reader](https://github.com/hampussandberg/HexConnect/wiki/FPGA-ID Reader)
FPGA LVDS
FPGA Monitor
FPGA Tips and Tricks
Learning Quartus II
Version 1:
Requirement Specification
Hardware Design
Hardware Rev 1 Fixes