Ярлыки

_GetPixelIndex (1) _SetPixelIndex (1) 3-phase (1) 800x480 (1) АЦП (1) генератор (1) синхронный усилитель (2) структура (1) учебный курс (1) шаговый двигатель (1) ШИМ (2) accert (1) AD7608 (1) AD8429 (1) ADC (5) amplifer (1) arccos (1) arcsin (1) arctang (2) arctg (3) ARM (2) arm_sqrt_q15 (2) assembler (6) ASSERT (1) atan (2) bit (1) Bitband (1) boot (3) bootlloader (1) BUTTON (1) C (5) C# (1) CAN (2) CC2530 (5) CMSIS (4) command (1) Cordic (1) Core746I (1) CubeMX (4) DBGMCU (2) debug (2) debug.ini (1) delegate (1) Digital Potentiometers (1) DigitalPOT (1) Discovery (1) DMA (9) DMA2D (1) DSP (1) DSP library (1) DWT (1) EFM32 (5) EmWin (9) EXTI (1) FATFS (1) FMC (2) FreeRTOS (2) gl868-dual cmux (1) GPIO (4) GUI (2) GUIBuilder (1) GUIDRV_CompactColor_16 (1) HAL (3) HappyGecko (1) Hard Fault (2) heap (1) I2C (1) ID (1) ILI9320 (1) ILI9325 (1) Initialisation (1) InitLTDC (1) Instrumentithion (1) Interrupt (4) ITR (1) JTAG (1) Keil (5) LCDConf (2) lock-in (1) LTCD (1) LTDC (3) main (1) memory (1) MINI_STM32 Revision 01 (1) nBoot0 (1) NVIC (1) OnePulse (2) OSAL (4) pack (1) phase (1) printf (3) Pulse (1) PWM (12) RCC (2) RCR (1) Register (1) RESET (2) RS232 (3) RSS (1) RTC (3) RTOS-RTX (1) RTT (1) RTX-RTOS (1) SDCard (1) SDRAM (6) Segger (2) SPI (3) sqrt (3) SSD1298 (1) SSD1963 (1) Standart Peripherial Library (3) STANDBAY (1) startup (1) STemWin (8) stepper motor (1) STlink (2) STM32 (17) STM32429ZI (1) STM32Cube (1) STM32DBG.IN (1) STM32F (28) STM32F0 (4) STM32F1 (13) STM32F4 (10) STM32F4 Discovery (1) STM32F407ZG (1) STM32F429 (2) STM32F746 (1) STOP (1) string (1) struct (1) SWD (1) SWD JTAG (1) Synhronization (1) system_stm32f4xx.c (1) SystemInit (1) SysTick (1) task (4) telit (1) TIM (27) typedef (1) UART (1) USART (9) viewer (2) WM_PAINT (1) Z-stack (5) ZigBee (5)
Показаны сообщения с ярлыком boot. Показать все сообщения
Показаны сообщения с ярлыком boot. Показать все сообщения

понедельник, 11 апреля 2016 г.

STM32F0 (STM32F042) BOOT problem (User Option bit - nBoot0 )

Start STM32 ST-LINK Target -> Connect



With STM32 ST-LINK after Taregt -> Option bytes


nBoot0_SW_Cfg -
Cheked: The BOOT0 is bonded to GPIO pin (PB8 for small packages,  PF11 for big packages)
Uncheked: Its allows user to disable BOOT0 pin completely and use User Option bit ( nBoot0 ).

If nBOOT0 is cheked (=1) Main Flash memory is selected as boot area.

Table from reference manual

среда, 30 апреля 2014 г.

Модернизация STM32VL DISCOVERY STlink в STM32F103 DISCOVERY Stlink/V2

    Одной из первых отладочных плат от STMicroelectronics была выпущена плата STM32VLDISCOVERY с процессором STM32F100RB и программатором  STlink. Недостатком данного программатора является отсутствие процесса трассировки. И кроме того в качестве отлаживаемого  применен не очень быстрый процессор, работающей на предельной тактовой частоте 24 Мгц.
    Данную плату довольно легко можно модернизировать. Процессор, стоящий на плате без каких либо изменений можно заменить на например STM32F103RB или другой подобный из 103 серии в корпусе QFTP64. Данная замена оправдана тем, что данная линейка процессоров полностью поддерживается в отладчике Keil. Кроме того существует огромное количество примеров для работы с этим типом процессоров.
    Для переделки STlink в STlink/V2 необходимо сделать следующее:

1. Необходимо заменить прошивку микросхемы STM32F103C8 на которой  собран программатор. Для этого можно воспользоваться Flash loader demonstrator которая позволяет с помощью штатного загрузчика изменить прошивку в самом программаторе. Для этого нам необходимо подключиться к выводам USART1_TX она же PA9 (30 вывод) и USART1_RX она же PA10 (31 вывод) - по ним будет осуществляться программирование процессора. А также к выводам BOOT0 (44 вывод) для перехода в режим встроенного загрузчика в системной памяти процессора и RST (7 вывод). Выводы 31 и 30 лучше всего подсоединить к пустым выводам (NC) на плате соответственно слева и справа (2-е выводы сверху). Процедура прогаммирования описывалась тут и тут. Вывод BOOT1(PB2) остается подключенным к земле. Прошивку для заливки в процессор программатора можно скачать тут. А саму программу Flash loader demonstrator тут.

2. После этого необходимо на процессоре программатора соединить PB12 (вывод 25)  и PB14 (вывод 27).

3. Соединить вывод PB3 он же JTDO (вывод 55 отлаживаемого процессора STM32F103RB) и PA10 он же TSWO (вывод 31 процессора программатора).

    В результате данной модернизации в среде Keil данный программатор определяется как STlink/V2.



суббота, 10 августа 2013 г.

STM32F распределение памяти

     Несмотря на то, что у МК STM32 имеется множество внутренних шин, адресное пространство для программиста предлагается как линейное размером 4 Гбайт. Поскольку МК STM32 выполнены на основе Cortex, то у них используется стандартное распределение памяти. Память программ начинается с адреса 0x00000000. Встроенное статическое ОЗУ стартует с адреса 0x20000000. Все ячейки статического ОЗУ расположены в области хранения бит. Регистры УВВ представлены в карте памяти, начиная с адреса 0x40000000, и также расположены в области хранения бит УВВ. Наконец, регистры Cortex находятся в их стандартном месте, начиная с адреса 0xE0000000.


    Карта памяти STM32 выполнена по стандарту Cortex. Первые 2 кбайт памяти могут быть связаны с Flash памятью, системной памятью или статическим ОЗУ, в зависимости от состояния выводов управления загрузкой.

    Область Flash памяти разделена на три секции. Первая - Flash память пользователя - начинается с адреса 0x0000000. Далее следует системная память, которая также называется большим информационным блоком. Она представляет собой Flash память размером 4 кбайт, которая запрограммирована производителем кодом программы загрузчика. Последняя секция, которая стартует с адреса 0x1FFFF800, называется малым информационным блоком. В ней находится группа опциональных байт, с помощью которых можно повлиять на некоторые системные настройки микроконтроллера STM32. Программа загрузчика позволяет посредством интерфейса USART1 загрузить код программы и запрограммировать его во Flash память пользователя. Чтобы перевести МК STM32 в режим загрузчика, нужно на внешних выводах BOOT0 и BOOT1 установить низкий и высокий уровни, соответственно. Если установить именно такие состояния на выводах управления загрузкой, то блок системной памяти начнется с адреса 0x00000000. После сброса, МК STM32, вместо выполнения прикладного кода из Flash памяти пользователя, начнет выполнение программы загрузчика. Чтобы пользователь имел возможность стирать и перепрограммировать Flash память на компьютере необходимо запустить еще одну программу загрузчика, которую можно скачать с сайта компании ST. Программа для ПК также доступна в виде DLL-файла, что позволяет создавать собственное ПО для программирования микроконтроллеров на фазах производства или эксплуатации продукции.

    С помощью выводов управления загрузкой адрес 0x00000000 вместо Flash памяти пользователя может быть также связан со статическим ОЗУ. Поскольку загрузка статического ОЗУ осуществляется более быстро, то эта возможность может оказаться полезной на фазе проектирования для исполнения кода программы из статического ОЗУ. Кроме того, появляется возможность сократить частоту перепрограммирования Flash памяти.