-
- Может Кнута посоветовать. Он как раз сперва и говорит о абстрактной ЭВМ, а потом переходит к алгоритмам. - Xитpый Kитaeц(12.09.2020 12:16)
- Речь всё же не о каком-то чипе какой-то фирмы, а о вполне
абстрактной форме записи (__IO uint32_t *). Я, как человек в теме
свежий, естественно, интересуюсь на предмет детали "__IO" в записи.
В говорите, что она не нужна, но зачем-то же она там присутствует.
Должен я понять зачем или нет?! Абстракции вещь понятная, когда
понятА уже. Скажем, дифференциальное счисление штука абстрактная, но
становится откровенно понятнее и интереснее, если знать, как с
помощью teap0t(68 знак., 12.09.2020 09:43)
- #define __IO volatile il-2(103 знак., 12.09.2020 09:52)
- Включил листинг препроцессора и тутже узрел "*(volatile uint32_t *)
(((uint32_t)0x42000000) + ((((...." - teap0t(13.09.2020 12:03)
- И где вы только такие страшные слова откапываете :), С - предельно
простой язык. - Kceния(13.09.2020 15:34)
- Я вот тоже не понимаю - зачем сразу лезть в самые тёмные углы? Это
всё равно что увидев строчку printf("Hello, world\n"); смотреть
сорсы функции printf. Да там чёрт ногу сломит, многие этих сорсов в
глаза не видели, но прекрасно принтфом пользуются. Так и здесь -
напишите #include "stm32f10x.h", и без нужды внутрь не
заглядывайте. Зато вы сможете написать что-нибудь вроде
USART1->CR1 = USART_CR1_UE | USART_CR1_TE | USART_CR1_TCIE; и
нужные биты попадут в нужный регистр йцyкeн(1 знак., 13.09.2020 16:27)
- Я так не умею. Понятно, что надо доверять коду IAR или ST, но в
данном случае я получаю HardFault при полном отсутствии ошибок и
предупреждений. Плюс, попробовал попереключать опции компилятора, и
всё завертелось... - teap0t(13.09.2020 16:41)
- Так не начинайте с того, что не работает. Начните с того, что
работает, неужели такое нельзя найти? Я бы вам сам что-нибудь
подкинул, но я с L не работал, только с F. Ну там светодиодом
мигните, или пресловутые два байта переслать через UART. - йцyкeн(13.09.2020 17:38)
- Это проект из STM32L-Discovery_FW_Pack, который можно взять у ST,
но плата MB963B - старенькая с 152RBT (без "A"). На шабаше у
Компела давно тому всё работало. Сейчас компилирую - ошибок нет, но
получаю HF и всё. Про светодиод понятно, но интересно же в чём
дело. Я же не первый год программизмом занимаюсь, просто на Си этим
не страдал. Полностью перезалил проект - работает, хотя и не вполне
корректно. Я сам дурак. - teap0t(13.09.2020 19:18 - 20:20)
- в свое время, если склероз не изменяет fk0 подсказал быстрого выяснения места выпада в HF Aleksey_75(242 знак., 13.09.2020 19:23)
- Это проект из STM32L-Discovery_FW_Pack, который можно взять у ST,
но плата MB963B - старенькая с 152RBT (без "A"). На шабаше у
Компела давно тому всё работало. Сейчас компилирую - ошибок нет, но
получаю HF и всё. Про светодиод понятно, но интересно же в чём
дело. Я же не первый год программизмом занимаюсь, просто на Си этим
не страдал. Полностью перезалил проект - работает, хотя и не вполне
корректно. Я сам дурак. - teap0t(13.09.2020 19:18 - 20:20)
- Компилятор принципиально не может предупредить о некоторых вещах,
например об обращении к выключенной периферии. С таким подходом
можно загнать себя в угол. Есть конкретный проект, или "изучение
ради изучения"? - VLLV(13.09.2020 17:19)
- Спасибо за наводку. Удалил весь проект и установил из архива
заново. Работает, но температура -218 градусов. Приятно сознавать,
что сам дурак, а мир светел и прекрасен. - teap0t(13.09.2020 20:19)
- Народ, есть ли какой способ подключиться к плате отладчиком IAR?.
Плата живая и с прошивкой, не защищена (STM Discovery). Хочется
глянуть в память с заводскими значениями термодатчика и опорника на
предмет сохранения. - teap0t(15.09.2020 15:40)
- JLinkExe или JLink.exe VVB(233 знак., 15.09.2020 16:09)
- jlink.exe работать не хочет. Ладно позже вернусь к этому вопросу. teap0t(1 знак., 15.09.2020 16:25, картинка)
- Для сброса дампа flash нужно использовать j-flash - BlackMorda(15.09.2020 16:43)
- Проще через savebin (команда в JLink.exe). VVB(53 знак., 15.09.2020 17:43)
- Для сброса дампа flash нужно использовать j-flash - BlackMorda(15.09.2020 16:43)
- jlink.exe работать не хочет. Ладно позже вернусь к этому вопросу. teap0t(1 знак., 15.09.2020 16:25, картинка)
- в настройках отладчика включить подключение без ресета - Aleksey_75(15.09.2020 15:44)
- Пытался сделать так. Взял левый проект, скомпилял, установил отказ
от заливки и попытался запустить отладку. Шыш. Tue Sep 15, 2020
15:58:17: ELF/DWARF Error: Unknown teap0t(2 знак., 15.09.2020 16:05, картинка, картинка)
- На плате распаян огрызок ST-LINK/V2 у которого есть только SWD, а JTAG-а нет. ЫЫyкпy(654 знак., 15.09.2020 22:17, ссылка, ссылка)
- Нужно еще J-link/J-trace сконфигурировать. Выбрать JTAG/SWD,
Ethernet/USB - BlackMorda(15.09.2020 16:47)
- С USB он не хочет. И вообще у меня такого железа нет. У меня только ST-Link на демоплате. - teap0t(15.09.2020 20:34)
- Пытался сделать так. Взял левый проект, скомпилял, установил отказ
от заливки и попытался запустить отладку. Шыш. Tue Sep 15, 2020
15:58:17: ELF/DWARF Error: Unknown teap0t(2 знак., 15.09.2020 16:05, картинка, картинка)
- JLinkExe или JLink.exe VVB(233 знак., 15.09.2020 16:09)
- Народ, есть ли какой способ подключиться к плате отладчиком IAR?.
Плата живая и с прошивкой, не защищена (STM Discovery). Хочется
глянуть в память с заводскими значениями термодатчика и опорника на
предмет сохранения. - teap0t(15.09.2020 15:40)
- Спасибо за наводку. Удалил весь проект и установил из архива
заново. Работает, но температура -218 градусов. Приятно сознавать,
что сам дурак, а мир светел и прекрасен. - teap0t(13.09.2020 20:19)
- Так не начинайте с того, что не работает. Начните с того, что
работает, неужели такое нельзя найти? Я бы вам сам что-нибудь
подкинул, но я с L не работал, только с F. Ну там светодиодом
мигните, или пресловутые два байта переслать через UART. - йцyкeн(13.09.2020 17:38)
- Я так не умею. Понятно, что надо доверять коду IAR или ST, но в
данном случае я получаю HardFault при полном отсутствии ошибок и
предупреждений. Плюс, попробовал попереключать опции компилятора, и
всё завертелось... - teap0t(13.09.2020 16:41)
- Я вот тоже не понимаю - зачем сразу лезть в самые тёмные углы? Это
всё равно что увидев строчку printf("Hello, world\n"); смотреть
сорсы функции printf. Да там чёрт ногу сломит, многие этих сорсов в
глаза не видели, но прекрасно принтфом пользуются. Так и здесь -
напишите #include "stm32f10x.h", и без нужды внутрь не
заглядывайте. Зато вы сможете написать что-нибудь вроде
USART1->CR1 = USART_CR1_UE | USART_CR1_TE | USART_CR1_TCIE; и
нужные биты попадут в нужный регистр йцyкeн(1 знак., 13.09.2020 16:27)
- И где вы только такие страшные слова откапываете :), С - предельно
простой язык. - Kceния(13.09.2020 15:34)
- Включил листинг препроцессора и тутже узрел "*(volatile uint32_t *)
(((uint32_t)0x42000000) + ((((...." - teap0t(13.09.2020 12:03)
- #define __IO volatile il-2(103 знак., 12.09.2020 09:52)