Pull to refresh
28
0
Артём Литвин @HiSER

Электронщик

Send message

Не известно какой тип будет по умолчанию. int в разных архитектурах может иметь разный размер. Выравнивание тоже не известно какое.

Первая структура: 3, 4, 5, 8; какой ответ устроит?

Во второй структуре ошибка.

Микроконтроллеры существуют только ARM и только STM32?

Видимо мне сам автор снизошел поставить минус )) Тоже зашел посмотреть, что за каналы, а оказалось пайпы...

Почему "pipe" перевели как "канал", если "channel" не совсем "труба".

Вы сами не далеко ушли, изменяя и выдавая за своё авторство цитату: "Настали плохие времена, мир стареет и портится. Политики страшно продажны. Дети больше не уважают родителей. Каждый хочет выделиться и написать книгу. " © Нарам Син

Вы видимо сами не понимаете, что читаете, большой минус для программиста. Прочитайте всю главу 7 целиком, а не делайте удобные для вас вырезки сюда.
Каким образом это приводит к неопределенному поведению, что-то вы ахинею говорите. Несколько раз перечитал спойлер, так и не понял о чем вы. Увидел только определение зарезервированных идентификаторов. У меня переменная так объявлена потому-что она используется только в спец функциях save и load. Для использования в остальном коде переменная находится в ОЗУ и называется config.
А у вас вразрез с сегментами работает что ли ;D
NvVarList<100U, myStrData, myFloatData, myUint32Data>

Здесь начальный адрес видимо святой дух пишет.
Runtime адрес высчитываете вы в своем примере, в моём примере высчитывает компилятор. Какими ручками? Вам похоже самому ещё подучится надо.
Зачем постоянно читать/записывать EEPROM, особенно внешний, если он медленный и не предназначен для этого. Данные как минимум должны проверяться на корректность. Кого вы там учите.
Код совершенно простой и подходит для любой архитектуры:
typedef struct
{
    int data1;
    bool data2;
    uint8_t data3[4];
    /* ... */
    uint16_t crc;
} tConfig;

EEMEM tConfig __config;
tConfig config;

void load()
{
    uint16_t crc;
    eeprom_read_block(&__config, &config, sizeof(config));
    crc = config.crc;
    config.crc = 0;
    if (crc != crc16(&config, sizeof(config)))
    {
        /* load deafult config */
    }
}

void save()
{
    config.crc = 0;
    config.crc = crc16(&config, sizeof(config));
    eeprom_write_block(&config, &__config, sizeof(config));
}
Если уж давать ссылку, то по крайней мере, по ссылке должны быть теги, которые, есть в статье: developer.mozilla.org/ru/docs/Web/HTML/Element
Физ. лицо и так обязан платить НДФЛ (Налог на Доходы Физических Лиц). В случае с трудоустройством в РФ налоговым агентом обязан быть работодатель, иначе физ. лицо должен сам заплатить. Декларация НДФЛ-3, но кто её сдаёт.
В cygwin работает.

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Date of birth
Registered
Activity