Незнаю... может на данный момент и в музей...
Обстановочка весьма напряжная - ценочки растут несоизмерно, ЖАБА ЗЕЛЕНА&ЖЕНА сатршная давилка всяческого "самомыслия" (особо его финансирования)... да и количественный рост новинок в год (при усложнении их структур) заматывает - по старому описание настроек всей системы сейчас для одного МК вычитывать надо (и это при том, что тот МК раз в год потребоваться может, а то и просто "на будущее")... - при таком подходе приходится на некоторое самоограничение идти...
Пока еще есть силы подавлять в себе графоманский зуд Но когда он все-таки прорвется, выложу в своем блоге, и первая статея будет называться "Похвальное слово заказчику" ( не ПЗ ! )
ммнняяя... несколько не по теме :
"мемуары ободранного кота" от "застоя" к дикой "самостiйностi" через "беспердел" 90-х с помощью перестройки с ускорением методом пинка в зад
или "как выжила моя бригада" (имеем ввиду работников производства/сферы услуг в сравнении со знаменитым сериалом)
DIHALT писал(а):Если бы не программатор, то я бы вообще рекомендовал АТ89С51 Мировой камень. Периферии практически нет, путаться негде. Для задач новичка хватит за глаза. Когда же полезут ограничения, то переход на другую архитектуру будет прост и осознан.
Как правило цепляются за одну архитектуру и сидят на ней...
А после длительного сидения на АСМе переход на СИ, а тем более на другую архитектуру, уже практически становится невозможным... убивается абстракция мышления...
Ну не скажи.... Это кто как.
Я начинал с ассемблера на AVR и сидел на нем, до первого сложного проекта.
Далее я тупо перешел на Си даже не раздумывая.
А освоение STM32 для меня вообще не оказалось проблемой. Даже начал с огромного камня STM32F407VGxx
Все потому, что я больше интересовался не одной конкретной архитектурой, а принципом работы процессорных систем в целом.
А вот мой знакомый тащится от 51й архитектуры. Кстати, SiLabs ее неплохо реализовали в своих МК.
Только вот приходится ему работать с мегами и АРМами.
I am DX168B and this is my favourite forum on internet!
Здравствуйте.
Имею отладочную плату STM32L DISCOVERY и желание разобратся с этим "зверьком".
Собственно с контроллером проблем больших нет,а вот с средой IAR я подружится никак не могу.
Программирую на ассемблере .Проблема заключается в стартовом коде. К примеру:уважаемый Satyr в одном из своих постов
предложил следующий код:
MODULE ?cstartup
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
EXTERN main
PUBLIC __vector_table
PUBLIC __iar_program_start
DATA
__vector_table
DCD sfe(CSTACK)
DCD Reset_Handler ; Reset Handlerwaitcyclewaitcycle
GPIO_A_BASE
DCD 0x40010800
RCC_APB2BASE
DCD 0x40021000
WAITVALUE
DCD 1000000
APB2OFS_ENR DEFINE 0x18
APB2BIT_GPIOA DEFINE 4
PIN1PP2MHZ DEFINE (2 << 4)
GPIOOFS_CRL DEFINE 0
GPIOOFS_BSRR DEFINE 0x10
GPIOBIT1 DEFINE 2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Default interrupt handlers.
;;
THUMB
Загружаю ,компилирую, запускаю отладку - все OK(я имею ввиду компиляция и отладка проходит нормально ,естественно камни разные
и то что задумано программа не делает).
Если немного изменить код( вернее удалить некоторые строки):
MODULE ?cstartup
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
EXTERN main
PUBLIC __vector_table
PUBLIC __iar_program_start
DATA
__vector_table
DCD sfe(CSTACK)
DCD __iar_program_start ; Reset Handlerwaitcyclewaitcycle
GPIO_A_BASE
DCD 0x40010800
RCC_APB2BASE
DCD 0x40021000
WAITVALUE
DCD 1000000
APB2OFS_ENR DEFINE 0x18
APB2BIT_GPIOA DEFINE 4
PIN1PP2MHZ DEFINE (2 << 4)
GPIOOFS_CRL DEFINE 0
GPIOOFS_BSRR DEFINE 0x10
GPIOBIT1 DEFINE 2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Default interrupt handlers.
;;
THUMB
то проект компилируется , собирается ,но при отладке (симулятором или ST_LINK) дебагер ругается .
Warning: __vector_table symbol not found.
e_entry value: 0x08000000 does not match reset vector value: 0x00000000 Initial SP_main value:0x00000000 uncertain.
От чего зависит "невидимость" таблицы векторов?
Что подразумевается под __iar_program_start?
Где искать проблему?
Вприницпе, программер волен любые метки называть как угодно, но чтоб CSPY разобрался, откуда начинать исполнение и где таблицы прерываний, для них предусмотрены стандартны имена меток.
как раз эти самые __iar_program_start, куда по умолчанию автоматом ставится точка остановки и __vector_table - таблица прерываний.
В хитрых бинарниках, типа загрузчиков, всяких 'оверлеев' с наличием этих меток могут быть проблемы и дебагер путается, но на корректность нормальной работы оно не влияет -))
У тебя какой МК ? и линкерскрипт используется мой или соответвующий камню.
Дебагер говорит, что его как бы смущает, что заявленный адрес начала кода 0х08000000 сильно не совпадает с тем, где он по описанию чипа для дебагера находится 0х00000000