Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 11.01.2014, 01:39  
kvark85
Прописка
 
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
kvark85 на пути к лучшему
По умолчанию STM32 "глубокое" пояснение старта программы

программирую STM32 но так и нет полного понимания как ЭТО работает. Что происходит при старте программы. Почему при старте программа шагает по
Код:
        LDR     R0, =SystemInit
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0
файла startup_stm32f10x_md_vl.s и как это дело происходит если этот файл не добавлять (я пробовал, без него тоже компилируется, только работает на другой частоте). я не прошу чтоб мне все объяснили. посоветуйте что почитать. может сделать несколько простых программ на ASM для STM32 чтоб понять как у него память устроена где и как там прерывания объявлены. хочу все осознать
Реклама:
__________________
Kvsrk85(Андрей)
kvark85 вне форума  
Непрочитано 11.01.2014, 21:52  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Сообщение от majorka65 Посмотреть сообщение
К некоторым излишкам кода и неособо нужным сущностям,
Ну и что же там такое "не особо нужное" ?
Инициализация стека и кучи, настройка тактирования и латентости флэши ?
Что Вам так все мешает в Си ? Вы можете написать лучше и оптимальней компилятора ?
Уверен на 100 % что нет.
Может все проще , неспособность осознать парадигму модульного программирования и вообще Си .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 11.01.2014, 22:18  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Сообщение от majorka65 Посмотреть сообщение
что Вы все пытаетесь пободаться со мной,
Да не с Вами я бодаюсь , а с Вашими домыслами .
Кто то же Ваше мнение и за постулат может принять, осторожней с этим .
На счет характера это вы зря , я белый и пушистый.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 12.01.2014, 00:25  
kvark85
Прописка
 
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
kvark85 на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Сообщение от majorka65 Посмотреть сообщение
как Вы удаляете стартап из проекта? Project/Manage Components?
я пишу в IAR: создаю пустой проект, выбираю процессор, выбираю файл линкера и ставлю галочку "Use CMSIS". в main файле программы прописываю #include "stm32f10x.h" и добавляю к проекту всего два файла: stm32f10x.h и system_stm32f10x.h. Все, программа компилируется и запускается. Если убрать глочку в настройке дебагера "Run to main" то видим что программа начинает стартовать с адреса 0x8000068 если я правильно понимаю (для меня непонятно почему с именно с этого адреса).
В IAR довольно просто, как видите. В кеиле - не пробовал.
__________________
Kvsrk85(Андрей)

Последний раз редактировалось kvark85; 12.01.2014 в 00:33.
kvark85 вне форума  
Непрочитано 12.01.2014, 00:31  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

kvark85, Поставь бряк на вектор сброса и шагай по ассемблеру .
Все там ясно и понятно. Скрыто от юзера то что выше писал ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 12.01.2014, 00:52  
kvark85
Прописка
 
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
kvark85 на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Сообщение от dosikus Посмотреть сообщение
Поставь бряк на вектор сброса
бряк... а где этот вектор сброса? в каком файле? как его найти?
__________________
Kvsrk85(Андрей)
kvark85 вне форума  
Непрочитано 12.01.2014, 00:58  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Break Point , startup
Код:
 LDR     R0, =SystemInit ‹- Reset vector 
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 06.02.2014, 10:56  
AlexP74
Временная регистрация
 
Регистрация: 18.01.2010
Сообщений: 89
Сказал спасибо: 7
Сказали Спасибо 22 раз(а) в 14 сообщении(ях)
AlexP74 на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Вроде все просто, проц при старте инициализирует указатель стека MSP содержимым 0-го вектора сброса, а программный счетчик - содержимым вектора 1. Т.е. там лежат данные (адреса).
Вектора сброса лежат в стартап *.s файле:
Код:
        DATA
__vector_table
        DCD     sfe(CSTACK)
        DCD     Reset_Handler             ; Reset Handler
        DCD     NMI_Handler               ; NMI Handler
        DCD     HardFault_Handler         ; Hard Fault Handler
        DCD     MemManage_Handler         ; MPU Fault Handler
        DCD     BusFault_Handler          ; Bus Fault Handler
        DCD     UsageFault_Handler        ; Usage Fault Handler
Т.е. это 4-х байтовые адреса. Далее ищем, куда они указывают, в том же файле:
(как писал dosikus)
Код:
Reset_Handler
        LDR     R0, =SystemInit
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0
Это уже исполняемый код. Далее поиском по всему проекту можно найти, что делается дальше. Ну или отладкой идти...

А в AVR в векторах лежит команда перехода (обычно).
AlexP74 вне форума  
Непрочитано 16.09.2015, 21:45  
avp94
Почётный гражданин KAZUS.RU
 
Аватар для avp94
 
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
avp94 на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Сообщение от AlexP74 Посмотреть сообщение
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
А что означает аббревиатура DCD?
avp94 вне форума  
Непрочитано 17.09.2015, 09:17  
gks5
Прописка
 
Регистрация: 31.10.2006
Сообщений: 149
Сказал спасибо: 15
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
gks5 на пути к лучшему
По умолчанию Re: STM32 "глубокое" пояснение старта программы

Сообщение от avp94 Посмотреть сообщение
А что означает аббревиатура DCD?
http://infocenter.arm.com/help/index.../Babbfcga.html
gks5 вне форума  
Сказали "Спасибо" gks5
avp94 (17.09.2015)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаем STM32 Cortex M3 EugVor ARM 6166 19.02.2024 18:22
Программы расчета трансформаторов и дросселей Starichok51 Источники питания и свет 943 30.09.2022 18:23
stm32 после старта TIM6 сразу прерывание kvark85 ARM 8 04.07.2013 11:22
Мой STM32 Любые программы:) По половине разряда ИП шлет:) dmitriycor Микроконтроллеры, АЦП, память и т.д 3 13.08.2011 13:11


Часовой пояс GMT +4, время: 13:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot