Перейти к содержанию
    

ichthyandr

Участник
  • Постов

    91
  • Зарегистрирован

  • Посещение

Весь контент ichthyandr


  1. Да вообщето документировать надо, ато в отгадки поиграть можно
  2. modbus какой? кто мастер кто слейв, вопросов много или еще с производителем в контакт входить, ну такое за 20 ... а так да, голубой пилюли хватит за глаза, 240 рублей
  3. я линковщиком пользуюсь, в кружок бубна не хожу
  4. Всем привет. Ищу удаленку по программированию. С чем приходилось заниматься: - Разработка прикладного ПО C++/Qt/DirectX/windows - Разработка встраиваемого программного обеспечения для аппаратуры спецназначения на базе микрокомпьютеров с DSP Blackfin / Linux / VisualDSP++ / C - Разработка RLC-MAC уровня GSM/GPRS сети /C++/boost/stl - разработка (embedded) MAC-уровня ieee802.16-2004 абонентского терминала и драйвера модема SiGe v3.2 /Fujitsu MB87M3550/VxWorks 5.5 (Tornado II) /gcc 2.96/С,asm - разработка утилитарного ПО: freeradius/perl/postgresql/mysql/freebsd/linux - разработка Web приложений (ASP, PHP, javscript, jquery, xml, websockets ) - USB-MIDI драйвер для stm32/cubemx - ЦОС C++, CUDA, SIMD(SSE,AVX) - svn/git/gitlab местоположение: г.Владимир почта: wimax.peter[на]gmail.com
  5. статическая линковка дает единственный исполняемый файл, от языка не зависит нормально там всё
  6. в каком смысле хотелось бы реализовать? в виде api, библиотеки или что. http транспорт обеспечивают куча серверов, json отправить по http не проблема
  7. это каким боком С++ особо применяется на arm?))
  8. чтото странное - разработка сетевых драйверов, всяческие USB, SPI, I2C, PCIe, UART, RS232/485/422 и вдруг тадамм!!! BGP!
  9. У них операционка уже есть с компиллятором или речь о "bare metal"?
  10. хорошо, спасибо )) Вопрос под hal решен uint32_t vect = FIRMWARE_START; __set_MSP(*(__IO uint32_t*)vect); __DSB(); HAL_DeInit(); ((void(*)())(*((uint *)(FIRMWARE_START + 4))))(); нужно делать deinit в бутлоадере
  11. не знаю, как глухой с немым диалог, спросил непосредственно, к чему демагогия?
  12. StmCubeIDE. странно конечно, но на stackoverflow ответов больше
  13. пардон, если резко, но вопрос был задан конкретный
  14. там оффсет в прошивке задан, system_stm32f1xx.c: /* #define VECT_TAB_SRAM */ #define VECT_TAB_OFFSET 0x00010000U /*!< Vector Table base offset field. This value must be a multiple of 0x200. */ в SystemInit SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ м.б. таблицу покорежило, надо смотреть ... таблица правильная, systick хендлер описан верно
  15. Вобщем по первому вопросу всё решилось, для перемещения стартового адреса программы нужно править ld скрипт и в опциях запуска задавать адрес таблицы прерываний. Из под IDE норм работает и в дебаге и в релизе. Основная проблема вот в чем, в загружаемой бутлоадером прошивке перестают работать прерывания, таблица правильная, nvic по ходу не работает. На первом же HAL_Delay прошивка остается навсегда
  16. оно так и предполагается, по 0x08000000 будет бутлоадер. Бутлоадер уже работает, шьет прошивку, но при переходе на адрес 0x08010000 всё виснет, в main.c бутлоадера: #define FIRMWARE_START (FLASH_BASE + 0x10000) далее typedef void (*pFunction)(void); pFunction JumpToApplication; HAL_RCC_DeInit(); SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; __disable_irq(); __DSB(); JumpToApplication = (void (*)(void)) (*((uint32_t *) ((FIRMWARE_START + 4)))); __set_MSP(*(__IO uint32_t*) FIRMWARE_START); JumpToApplication();
  17. Всем привет. Есть StmCudeIDE, есть желание изменить дефолтный стартовый адрес с 0x08000000 на 0x08010000 и запустить отладчик. Изменил в скрипте линкера: /* Memories definition */ MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K FLASH (rx) : ORIGIN = 0x8010000, LENGTH = 192K } /* FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 256K */ в system_stm32f1xx.c изменил смещение таблицы прерываний: /* #define VECT_TAB_SRAM */ #define VECT_TAB_OFFSET 0x00010000U /*!< Vector Table base offset field. This value must be a multiple of 0x200. */ в настройках проекта с дефолта меняю стартовый адрес (vector table=0x08010000) в STMProgrammer вижу что бинарик залит по адресу 0x08010000. При попытке запуска отладчика программа падает. Кто сталкивался, что делаю не так или еще что-то нужно сделать? Спасибо.
  18. а нет, мой косяк, flash erase, хвост программы терла
  19. походу косяк в кубике тут
  20. stm32f105 hal usb host msc

    Всем привет. Столкнулся с траблой, нужно сделать чтение файла с флешки. Кубик генерит код и он валится на f_read, в частности падает на HCD_HC_OUT_IRQHandler(hhcd, (uint8_t)i) в stm32f1xx_hal_hcd.c. Кто сталкивался с подобным, как лечить? Спасибо.
  21. Вобщем решил проблему, в композитном проекте (который делал вручную) надо irq хендлер прописать правильно (у меня в stm32f1xx_it.c): void OTG_FS_IRQHandler(void) { /* USER CODE BEGIN OTG_FS_IRQn 0 */ if (HOST == role){ HAL_HCD_IRQHandler(&hhcd_USB_OTG_FS); } else if (DEVICE == role){ HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS); } return; /* USER CODE END OTG_FS_IRQn 0 */ /* USER CODE BEGIN OTG_FS_IRQn 1 */ /* USER CODE END OTG_FS_IRQn 1 */ }
×
×
  • Создать...