Size: a a a

2017 December 15

AS

Andrew Strokov in embedded.rs
я думал .data это константные значения, которые лежат во флеше
источник

AS

Alexey Shmalko in embedded.rs
Константы в .rodata
источник

AS

Andrew Strokov in embedded.rs
да, точно, и процедура называется CopyDataInit
источник

AS

Andrew Strokov in embedded.rs
и FillZerobss
источник

AS

Alexey Shmalko in embedded.rs
Ну то уже кто как назовет
источник

AS

Andrew Strokov in embedded.rs
ну я так понимаю, это куски CMSIS'а
источник

AS

Andrew Strokov in embedded.rs
а, не, это startup файл от ST
источник

AS

Andrew Strokov in embedded.rs
так вот. Я код разбил на
        let v_level_mV: i32 = (adc_data[0] as i32);
       let v_level_mV: i32 = v_level_mV * Vref;
       let v_level_mV: i32 = v_level_mV / 4096;
источник

AS

Andrew Strokov in embedded.rs
первая строчка должна быть эквивалентна просто let v_level_mV: i32 = adc_data[0];
источник

AS

Andrew Strokov in embedded.rs
и тут вопрос, он копирует значение adc_data[0] в v_level_mV?
источник

AS

Andrew Strokov in embedded.rs
валится на умножении
источник

AS

Alexey Shmalko in embedded.rs
Там переполнения нет?
источник

AS

Alexey Shmalko in embedded.rs
Компилер может вставлять проверки и бросать панику
источник

AS

Alexey Shmalko in embedded.rs
(проверь асм)
источник

AS

Andrew Strokov in embedded.rs
походу переполняется
источник

AS

Andrew Strokov in embedded.rs
чо за щит, там нули
источник

AS

Alexey Shmalko in embedded.rs
Где?
источник

AS

Andrew Strokov in embedded.rs
это не паника, это hardfault
источник

AS

Andrew Strokov in embedded.rs
в adc_data[] нули, я его нулями же инициализировал
источник

AS

Alexey Shmalko in embedded.rs
А как у тебя обработчик паники реализован?
источник