roboforum.ru

Технический форум по робототехнике.

Keil uVision3

ARM7, ARM9, ARM11 etc.

Re: Keil uVision3

Сообщение EdGull » 23 фев 2010, 20:44

так я его специально и выставил чтоб убедится в правильности кода.

Добавлено спустя 5 минут 51 секунду:
а почему если отладчиком выставить виглер, то дальше этого окна ничего не идет?

2.PNG


Добавлено спустя 2 минуты 13 секунд:
а... вроде понял, потому что виглер не правильно в кейле настроен, я-то прошиваю прямо из вигреровской софтинки, а не из кейла

Добавлено спустя 8 минут 53 секунды:
кстати, кто нибудь настраивал виглер под кеил?
я вроде всё правильно настроил согласно инструкции с его сайта

Q. How to configure KEIL?
A. KEIL->PROJECT->OPTIONS FOR TARGET->DEBUG->USE RDI Interface Driver->SETTING->BROWSER->Choose H-JTAG.DLL loacted in the installation folder.


Добавлено спустя 14 минут 28 секунд:
тут всё правильно настроено?

3.PNG


Добавлено спустя 23 минуты 19 секунд:
Настройка Wiggler совместно со средой IAR, Keil, CrossWorks

http://www.evodbg.com/index.php?option= ... 5&Itemid=1
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение boez » 23 фев 2010, 21:09

Не поленился поставить кейл (правда четвертый). Короче - чтобы программа работала из ОЗУ, если это пример кейловский (я взял пример MCB2100) - у него есть 3 конфигурации, MCB2100 Flash, MCB2100 RAM и Simulator. Вот настройки, которые прописались когда я выбрал RAM. Главный смысл я так понимаю в адресах IROM1/IRAM1 и в Initialization file: . \RAM.ini

Добавлено спустя 1 минуту 6 секунд:
Да, злой прикол в том, что когда меняешь тип контроллера - настройки памяти скидываются. На флешевые.
Вложения
target.PNG
debug.PNG
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Keil uVision3

Сообщение EdGull » 23 фев 2010, 21:24

а на последнем скриншоте Ram.ini ты сам прописвал?
Он по какому пути находится?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение galex1981 » 23 фев 2010, 21:52

Адреса IROM И IRAM выставляются автоматически, в зависимости от типа МК на адрес функции main. Если используют закгрузчики, Линукс, тогда их меняют
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Keil uVision3

Сообщение EdGull » 23 фев 2010, 22:18

а чем отличается работа из флеша и из ОЗУ?
и зачем ввели вообще такую неразбериху?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение avr123.nm.ru » 23 фев 2010, 22:35

Наверно тем чо во флэше прога хранится может и без питания, а в ОЗУ ее загрузить нужно после включения питания.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Keil uVision3

Сообщение Vooon » 24 фев 2010, 03:38

Эд, здесь ядро быстрое, а флешь тормозная.
Буфер это исправляет, но не полностью.
А оперативка быстрая, в нее можно выгрузить некоторые особо используемые функции и таким образом улучшить производительность своей программы.
Хотя на мой взгляд это скорее метод оптимизации на случай, если все уже почти готово, но не влезает по производительности :)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Keil uVision3

Сообщение EdGull » 24 фев 2010, 08:07

а как и что сказать Keil, что программу писать во флеш или в ОЗУ?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение Сергей » 24 фев 2010, 08:41

А документацию почитать и примеры посмотреть слабо? Поиск в гугле рулит. http://www.keil.com/support/man/docs/ca/ca_le_ram.htm
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Keil uVision3

Сообщение EdGull » 24 фев 2010, 08:57

да я не про то...
я имел ввиду что так и не понял куда прошивается мой код
т.е. такое впечатление что прошиваю во флеш, а арм стартует из ОЗУ, ну или на оборот.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение Сергей » 24 фев 2010, 09:08

Скажи какой камень и кварц, я тебе могу пример скинуть ножкой помигать или там в uart вывести что-нибудь
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Keil uVision3

Сообщение EdGull » 24 фев 2010, 09:14

LPC2294 14,7456Мгц
светодиод висит на P0.30
кнопка на P0.29
а если еще и из usb (uart0) будет в терминалку чё нибудь передоваться я ваще умру от счастья
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение avr123.nm.ru » 24 фев 2010, 09:45

Интересно справится ли с такой задачей мастер кода для ARM маленького компилятора ICC ARM http://imagecraft.com
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Keil uVision3

Сообщение EdGull » 24 фев 2010, 09:46

боюсь мы этого никогда не узнаем... :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Keil uVision3

Сообщение boez » 24 фев 2010, 12:34

Работа кода из ОЗУ применяется в двух случаях:
1. Чтобы работало побыстрее. Вроде как на LPC не сильно актуально, там MAM есть, аффтары утверждают что программа из флеши тоже исполняется на полной скорости. Реализация: прога вся пишется во флеш, но при старте часть кода, который должен исполняться из ОЗУ, копируется туда (механизм тот же, что и для инициализированных данных).
2. Чтобы флешу зря не мучать. Это тот вариант, про который я говорил. Вся прога, в том числе и векторы прерываний, собирается для работы в ОЗУ и записывается в ОЗУ прямо через JTAG из среды. Естественно размер кода ограничен размером ОЗУ - но это не проблема для светодиодной мигалки. В общем, это идеальный режим для мелких тестов - потому как все очень просто, нажал в IDE кнопку "Debug" - и прога скомпилилась, залилась в МК и побежала. Или встала на начале функции main(), а дальше по шагам.

К сожалению не работал всерьез с кейлом, только с CrossWorks. На приведенных скринах ничего не менял, просто открыл первый попавшийся пример-мигалку и выбрал конфигурацию RAM - файл Ram.ini именно в таком виде прописался сам. Поиск показал, что такой файл есть во многих папках с примерами, в нем написаны некие инструкции для отладчика. Что это за формат - я не знаю, но действия достаточно очевидные: загрузить скомпилированный файл в ОЗУ, установить PC на 0x40000000 (начало ОЗУ) и запустить исполнение. Еще упомянута функция main, возможно на нее поставится брейкпоинт.

А что касается вопроса откуда стартует LPC - вообще он всегда стартует с бутлоадера. Бутлоадер проверяет состояние ножки P0.14 (на олимексовской плате переключатель ICSP), если на ней 0 - переходит в режим ISP. Если 1 - он проверяет, есть ли во флеши программа. Прошивающий софт при прошивке считает контрольную сумму векторов прерываний и помещает ее в специальную ячейку. Бутлоадер считает контрольную сумму векторов во флеши, затем сверяет ее с этой ячейкой. Если сошлось - значит во флеши валидная программа, тогда управление передается ей на адрес 0x00000000. Если нет - опять же ISP (ну то есть он ждет заливки программы по уарту).

Если отладка по JTAG работает, определить куда плюхнулся МК, легко - нажать "стоп" и посмотреть адрес в PC. Флеш находится с нулевого адреса, ОЗУ с 0x40000000, бутлоадер еще дальше (0x7fff....). Отладчик через JTAG может менять ОЗУ и любые регистры - поэтому ему на эти перемычки-суммы глубоко пофиг, он может ручками заставить проц выполнять то, что ему надо.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Пред.След.

Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3