Size: a a a

2021 August 23

ED

Electronics Designer in Embedded Group
Так что по факту работать без внешнего конфигурационного ПЗУ FPGA не могут.
источник

ED

Electronics Designer in Embedded Group
Только для отладки, разве.
источник

A

Alexander in Embedded Group
Причем даже unsafe код все равно имеет ряд защит от выстрела себе в ногу.

По сравнению с С.
источник

KA

Konstantin Akmarov in Embedded Group
А есть микросхемы, которые без питания - не кирпич?
источник

ED

Electronics Designer in Embedded Group
Вы уже поняли, о чем я, но хотите похоливарить. :) Сорян, я сейчас на работе. :)
источник

AK

Aleksey Kislitsa in Embedded Group
Имеет. Потому и применяют его.
Но много кто думает, что само по себе использование Rust это +200 к безопасности
источник

jp

jon pedro in Embedded Group
Вопрос на засыпку, что-то я не могу уловить в чём проблема может быть. Какая разница в выделении памяти под эти 2 типа?
typedef struct
{

       struct
       {
           union
           {
               _IO Uint16 all;
               _IO XP3_BITS DATA_bit;
           }XP3_DOUT;

           union
           {
               _IO Uint16 all;
               _IO XP4_BITS DATA_bit;
           }XP4_DOUT;
       }Connector;
}NT_GPIO_TypeDef;

и
typedef struct
{

   union
   {
       Uint32 all;
       struct
       {
           union
           {
               _IO Uint16 all;
               _IO XP3_BITS DATA_bit;
           }XP3_DOUT;

           union
           {
               _IO Uint16 all;
               _IO XP4_BITS DATA_bit;
           }XP4_DOUT;
       }Connector;
   }p;
}NT_GPIO_TypeDef;

Вроде же одинаковое количество памяти должно же выделяться. Первый пример собирается, второй нет и выдаёт ошибку
источник

jp

jon pedro in Embedded Group
источник

jp

jon pedro in Embedded Group
если что, size 2 = 32 битам. Тут байт 16 бит
источник

VK

Viacheslav Kaloshin in Embedded Group
sizeof твой друг 🙂 (ваш кэп)
источник

jp

jon pedro in Embedded Group
да вот хз, в онлайн компиляторе всё одинаково. Поэтому и не понимаю в чём прикол
источник

VK

Viacheslav Kaloshin in Embedded Group
Посмотрел подробнее. Да, структуры одинаковые. Как минимум в gcc. значит, ошибка где-то в другом месте.
источник

jp

jon pedro in Embedded Group
похоже именно в той ячейке памяти нельзя хранить 32 битные данные, только 2 по 16. хз на сколько это возможно
источник

jp

jon pedro in Embedded Group
этот вариант проходит
typedef struct
{
   Uint16 a;
   Uint16 b;
} NT_GPIO_TypeDef;

а этот уже нет
typedef struct
{
   Uint32 a;
} NT_GPIO_TypeDef;
источник

VK

Viacheslav Kaloshin in Embedded Group
А какая целевая платформа-то?
источник

A

Alexander in Embedded Group
Мб по адресам смещение?
источник

A

Alexander in Embedded Group
А невыровненный доступ не работает?
источник

jp

jon pedro in Embedded Group
В первой структуре же выравнивание по 16, во второй вообще 1 элемент.
Я помещаю свою структуру таким образом в памяти.
#pragma DATA_SECTION(DoutRegs,"DOUT_Regs");
volatile NT_GPIO_TypeDef  DoutRegs;
источник

A

Alexander in Embedded Group
Посмотри в .map файле куда линкер разложил.
Если всё одинаково - мб аппаратная особенность регистра.
источник

AL

Artem Lyzhin in Embedded Group
Есть у кого-нибудь Pineapple Mark7? Или у знакомых
источник