firstvald 13 27 октября, 2020 Опубликовано 27 октября, 2020 · Жалоба Столкнулся с тем, что параметры функции типа double передаются внутрь как 0. Если типы сменить на float - передается нормально. Keil 517 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба Указанных данных вполне достаточно ... для составления гороскопов А вот для решения указанной проблемы нужно хотя бы это: 1) версия компилятора (не путать с версией среды!) 2) ключи/опции компилятора, 3) код, Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба 2 часа назад, firstvald сказал: Столкнулся с тем, что параметры функции типа double передаются внутрь как 0. Если типы сменить на float - передается нормально. Keil 517 Была cхожая проблема, но оказалось сам дурак: в функции параметры double, а в вызове и использовании было extern float. Keil при компиляции не ругался... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба 2 hours ago, firstvald said: Столкнулся с тем, что параметры функции типа double передаются внутрь как 0. Если типы сменить на float - передается нормально. Keil 517 Воспользуйтесь окном дизассемблера. Посмотрите в каких регистрах (должно быть в r0-r3) передаются ваши double, и что получается, когда начинает выполнятся код функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба спасибо. буду смотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба Компилятор 506 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба 30 minutes ago, firstvald said: Компилятор 506 А остальное? 13 hours ago, Forger said: 2) ключи/опции компилятора, 3) код, Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба 56 минут назад, Forger сказал: А остальное? Партизаны так просто не сдаются. Гестапо надо приложить усилия! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба 19 minutes ago, jcxz said: Партизаны так просто не сдаются. Гестапо надо приложить усилия! Партизану по ходу нужна не помощь в решении проблемы, а просто потрещать о том, о сём ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба 14 часов назад, V_G сказал: в функции параметры double, а в вызове и использовании было extern float. Keil при компиляции не ругался... И не должен был. Он поверил вам на слово и сделал ровно то, что вы ему сказали (сгенерировал в местах вызова функции вызов функции с параметром типа float). Соответствие применения (вызова) и реализации он проверить не может из-за раздельной компиляции файлов. Чтобы исключить такие ситуации к файлу реализации инклудят его же хедер. А в использующем файле вместо extern ... также инклудят хедер. Тогда компилятор может проверить соответствие объявления определения и использования функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 28 октября, 2020 Опубликовано 28 октября, 2020 · Жалоба --c99 -c --cpu Cortex-M4.fp -g -O1 --apcs=interwork --split_sections -I../Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I..\Drivers\STM32L4xx_HAL_Driver\Inc\ --C99 --feedback=aaa.txt -I "C:\Keil_v5\ARM\workspace\FLOW\V69 15 10 2020\TST_PRG\MDK-ARM\RTE" -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -I C:\Keil_v5\ARM\PACK\Keil\STM32L4xx_DFP\2.4.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include -I C:\Keil_v5\ARM\PACK\Keil\STM32L4xx_DFP\2.4.0 -D__UVISION_VERSION="517" -D_RTE_ -DSTM32L476xx -DUSE_HAL_DRIVER -DSTM32L476xx -o "TST_PRG\*.o" --omf_browse "TST_PRG\*.crf" --depend "TST_PRG\*.d" struct to_stand_t { double tau;//T/Têð double pi;//P/Pêð double omega_stand; }; struct to_stand_t to_stand; double omega_stand(double param_tau,double param_pi); to_stand.omega_stand=omega_stand((to_stand.tau),(to_stand.pi)); и проверю подозрение на дату лицензии Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 29 октября, 2020 Опубликовано 29 октября, 2020 · Жалоба и, я бы сказал вот какую штуку. простейший тест - беру параметр и возвращаю его тут же из функции. когда параметры функции делел флоатами - я их видел правильно и вьювером (при наведении курсором на параметр) и в регистрах процессора. когда я делаю дабл, то я не вижу правильно ни вьювером, ни в регистрах. возвращенное функцией значение - правильное. double omega_stand(double param_tau,double param_pi) { return(param_tau); }//double omega_stand(double param_tau,double param_pi) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 29 октября, 2020 Опубликовано 29 октября, 2020 · Жалоба Оптимизацию в -O0 выкрутите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 29 октября, 2020 Опубликовано 29 октября, 2020 (изменено) · Жалоба 10 часов назад, firstvald сказал: возвращенное функцией значение - правильное. Да это классика - так оно обычно и получается. потмоу что флотовые параметры в регистрах ФПУ передаются. и у них бывает какойто свой ABI. а дебагеры насколько я понимаю, такой трюк пока не умеют ловить, только на стеке параметры показывают. Изменено 29 октября, 2020 пользователем AlexRayne Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ashr 0 30 октября, 2020 Опубликовано 30 октября, 2020 · Жалоба Если речь идет о кортексе... Стек на 8 выровняли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться