Public Documentation
  • Introduction
  • Getting started
    • Introduction
    • 1. Welcome Page
    • 2. Introduction (Beginner's Guide)
  • Portal Tools
    • Blocko
      • Ůvod do blocka
      • Flip-flop
      • REST-API bloček
    • Grid
      • Úvod do GRID
      • Základní Tlačítko (základy GRID)
      • vylepšený Přepínač (stylování a pokročilé možnosti GRID)
      • text generátor button (messeage type, two elements one widget)
      • graf (pokročilé funkce GRID)
      • Slider (User class v GRIDu)
      • Styly a jejich použití
  • Cloud
    • Cloud
    • Instancies
    • Rest-Api
  • General
    • What we plan
  • Hardware a programování
    • Úvod
      • Nahrání prvního programu
    • Konektivita
      • Specifikace zdroje internetu
      • GSM
      • 6LowPAN
      • Komunikace s portálem
      • Přepínání mezi servery
    • Hardware
      • Základní jednotky
        • IODAG3E
          • Rozhraní a periférie
          • Konektor X a Y
          • Napájení
          • Připojení zdroje k VBAT
          • Paměti
          • Technické specifikace
          • Schémata
        • IODAG3L
      • Rozšiřující moduly
        • GSM shield
        • LED shield
        • Relay shield
        • RFID shield
        • Ultrasonic shield
        • Meteo shield
        • Movement shield
        • PIR shield
        • RGB Displej shield
        • Serial shield
      • Ostatní
        • DevKitG3
          • Schéma
        • TK3G
          • Schéma
        • ZPPG3
          • Schéma
        • WEXP
    • Programování HW
      • Architektura FW
        • Aktualizace FW
        • Autobackup
      • Struktura programu
      • Byzance API
        • Vstupy a výstupy do Portálu
        • Callback Busy
        • Odložený restart
        • Callbacky připojení
        • Uživatelská makra
      • MBED API
        • Vstupy a výstupy
        • Komunikační rozhraní
        • Časování
        • RTOS
      • Knihovny
        • DHT
        • DS1820
        • Dali
        • EdgeStruct
        • I2CWrapper
        • Knock
        • MFRC522
        • MFRC522::MIFARE_Key
        • MPU9150
        • ms5637
        • OneWire
        • PCA9536
        • RGB_matrix
        • RollerDrive
        • SHT21
        • ST7565
        • Servo
        • TCA6424A
        • TLC59116
        • TripleSevenSeg
        • MFRC522::Uid
        • WS2812
        • WakeUp
      • Offline programování
        • Vlastní IDE
        • Upload kódu z GUI
        • Upload kódu z konzole
        • Upload kódu Drag&drop
    • Tutoriály
      • Datum a čas (RTC)
      • Komunikace po sériové lince (UART) s PC
        • Konfigurace sériové linky v PC
        • Programování sériové linky
      • Základní tutoriály
        • Digital Read
        • Analog Read/Write
        • PWM Fade
        • Timer/Ticker
        • State Change Detection
        • Ovládání LED modulu
        • BusOut
        • HC-SR04 Senzor
      • Pokročilé
    • Správa a diagnostika
      • Zdroj restartu
      • LED modul
      • Identifikace zařízení
      • Monitoring parametrů
      • Vytížení zařízení
      • Webové rozhraní
        • Základní přehled
        • Správce firmware
        • Vlákna
        • Definované vstupy
        • Konfigurace MQTT
        • Nastavení
      • Bootloader
        • Režimy bootloaderu
        • Command mód
        • Další vlastnosti bootloaderu
      • Webová konzole
      • Konfigurace zařízení
        • Confighash
      • Omezení konfigurace
        • Konfigurace
        • Binárky
        • Omezení MQTT
        • Lowpan
    • Knowledge base
      • Náhodná čísla
      • Watchdog
      • Paměť RAM
Powered by GitBook
On this page
  • Přehled
  • RAM
  • Rozdělení
  • Zaplněnost
  • FLASH v mikrokontroléru
  • Rozdělení sektorů
  • Důsledky existence sektorů
  • Přímá uživatelská práce s interní FLASH
  • OTP a statní části FLASH paměti
  • Externí FLASH
  1. Hardware a programování
  2. Hardware
  3. Základní jednotky
  4. IODAG3E

Paměti

PreviousPřipojení zdroje k VBATNextTechnické specifikace

Last updated 7 years ago

Přehled

Jednotka IODAG3E obsahuje několik druhů pamětí, kde každý typ má svůj účel a svá specifika. Jedná se o volatilní paměť RAM a nevolatilní paměť FLASH integrovanou v pouzdře mikrokontroléru a o větší externí FLASH paměť.

  • RAM

    • 256 kB SRAM (včetně 64 kB CCM)

    • 4 kB zálohované SRAM (zálohováno zdrojem)

    • součást mikrokontroléru sloužící pro data běžícího firmware

  • FLASH

    • 2 MB v mikrokontroléru

    • rozděleno na stránky o různých velikostech

    • slouží pro firmware a bootloader jednotky

  • externí FLASH

    • velikost 64 Mb

    • připojena přes SPI rozhraní k mikrokontroléru

    • slouží pro uložení konfigurace, záložního firmware a jako uživatelský prostor

RAM

Rozdělení

IODAG3E mí k dispozici výše uvedených 256 kB paměti. Paměť je rozdělena na více oblastí a při použití minimálního projektu jsou orientačně zaplněny podle následující tabulky. Přesné hodnoty závisí na verzi projektu i knihoven a může se měnit.

oblast

.bss

.data

heap

stack

umístění

CCM

CCM

RAM

RAM

velikost

1500 B

48 kB

48 kB

26 kB

Zaplněnost

Na grafu níže je pro daný projekt uvedeno využití paměti pro obě oblasti. Z grafu je patrné, že téměř polovina paměti RAM je dostupná pro uživatelskou aplikaci. Opět platí, že jde o orientační hodnoty.

FLASH v mikrokontroléru

Rozdělení sektorů

Většina mikrokontrolérů Cortex M4 má banky paměti rozdělené do menších částí, tzv. sektory. Platí to i pro mikrokontrolér použitý v jednotce IODAG3E a sektory jsou rozděleny podle tabulky níže. V případě použitého mikrokontroléru je paměť složena z více paměťových bank (dvě banky po 1 MB), struktura rozdělení sektorů se u druhé banky opakuje.

Blok paměti

Velikost bloku

Počáteční adresa

Sektor 0 až 3

16 kB

0x08000000

Sektor 4

64 kB

0x08010000

Sektor 5 až 11

128 kB

0x08020000

Sektor 12 až 15

16 kB

0x08100000

Sektor 16

64 kB

0x08110000

Sektor 17 až 23

128 kB

0x08120000

System memory

30 kB

0x1FFF0000

OTP

528 B

0x1FFF7800

Option bytes 1

16 B

0x1FFFC000

Option bytes 2

16 B

0x1FFEC000

Důsledky existence sektorů

Vzhledem k rozdělení paměti a existenci bootloaderu a hlavního programu je FLASH paměť logicky rozdělena na dvě části.

  • bootloader 64 kB - od adresy 0x08000000 po 0x0800FFFF, sektory 0 až 3

  • firmware 1984 kB - od adresy 0x8010000 po 0x80200000, - sektory 4 až 23

Přímá uživatelská práce s interní FLASH

Přímá uživatelská práce s interní FLASH pamětí mikrokontroléru se nedoporučuje, protože může dojít k poškození firmware nebo bootloaderu. Výše uvedené skutečnosti je třeba reflektovat (především při mazání, kde se může stát, že je třeba smazat jenom několik bytů dat, ale technologie FLASH smaže celou stránku společně i s jinými daty).

Pro ukládání uživatelských dat je určena externí FLASH paměť.

OTP a statní části FLASH paměti

Za zmíňku stojí OTP (one-time programmable memory) část, kde je např. uložena MAC adresa jednotky a kód revize zařízení. K tomu jsou rezervovány první 2 bloky OTP.

Blok 0 -> adresa od 0x1FFF7800 - [6 bytů MAC adresa][10 bytů rezervováno]
Blok 1 -> adresa od 0x1FFF7810 - [4 byty Revision][12 bytů rezervováno  ]

OTP paměť v zařízení IODAG3E má velikost 528 B, dostupných programově je 512 B.

OTP_BLOCKS * OTP_BYTES_IN_BLOCK
16 * 32 = 512 B

Externí FLASH

Na PCB jednotky IODAG3E je umístěna také externí SPI FLASH paměť o kapacitě 64 Mb. Částečně je využívání pro potřeby Byzance knihoven (OTA update, konfigurace, ...) a z části je plně dostupná pro uživatele. Uživatelsky dostupná část je velká 2 MB a pracuje se s ní výhradně přes API #TODO link na API.

Fyzický rozsah adres uživatelské části paměti

0x08400000 až 0x085FFFFF (2 MB)

Paměť RAM (Random Access Memory) je nevolatilní paměť sloužící pro data běžícího firmware. Pro správné pochopení je vhodné nejdříve přečíst si obecný článek o . Níže uvedený přehled obecné informace doplňuje a zpřesňuje pro konkrétní jednotku IODAG3E.

Adresy 0x08000000 a 0x08010000 je tedy třeba znát při bootloaderu nebo firmware (např přes ).

V tabulce výše jsou patrné také další čísti paměti kromě sektorů pro uložení firmware. Jejich význam a použití se lze dočíst v výrobce mikrokontroléru.

VBAT
nevolatilní paměti RAM
ručním nahrávání
ST-LINK
referenčních manuálech