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

Вопросы програмирования LPC2294

On 7/21/2023 at 4:28 AM, MPetrovich said:

А я где-то в коде читаю значения этих регистров?

zltigo на вас нет :moil:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/21/2023 at 3:20 PM, MPetrovich said:

А здесь..."вектор сброса флэш-памяти пользователя должен содержать инструкцию перехода к точке входа кода пользовательского приложения"...

Вы точно правильно перевели ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в KEIL не первую программу компилирую для разных МК и процов и ни разу не заморачивался "точкой входа". Что за серия такая утырочная! Если б не по работе нужда проверить, то и не пользовался бы этими LPC никогда!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, MPetrovich сказал:

И что в обработчике сброса надо указать? Где он, кстати должен находиться, в Startap?

; Reset Handler

                EXPORT  Reset_Handler
Reset_Handler   

Это вот оно?

Вот тут и должна находиться инструкция (-и), передающая управление на __main. Все ровно так же, как в STM32...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, MPetrovich сказал:

BOOT[1:0] = 11 selects internal flash memory. Вроде бы так должно быть, поскольку программа после сброса должна из FLASHa выполняться. Правильно я понимаю?

Видимо да.

1 час назад, MPetrovich сказал:

А я где-то в коде читаю значения этих регистров?

А что по-вашему делает операция "|=" си?

1 час назад, MPetrovich сказал:

A в файле Stsrtap.s разве не настраиваются стек и прерывания?

Вы ясновидящих тут ищете???  :fool:  Кто знает что там в вашем коде где делается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, MPetrovich сказал:

Я в KEIL не первую программу компилирую для разных МК и процов и ни разу не заморачивался...

... потому что понятия не имели, как происходит процесс загрузки, где у кого какая точка входа и т.д.

Неужели вы не нашли каких-нибудь примеров под свой процессор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, dimka76 said:

Вы точно правильно перевели ?

Hence the user flash reset vector should contain a jump instruction to the entry point of the user application code.

так написано в User Manual. Что я неправильно перевёл?

1 minute ago, Arlleex said:

Неужели вы не нашли каких-нибудь примеров под свой процессор?

Нашёл. Но ни один не запустился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 минуты назад, dimka76 сказал:

И в каждой программе, адреса в этой таблице, могут иметь разные значения. Поэтому не может быть универсального Stsrtap.s

LPC2xxx - это или ARM7 или ARM9. А значит в таблице векторов прерываний не адреса, а команды. И они могут быть одинаковыми. В простейшем случае - в каждом векторе может быть одна команда: LDR PC, [PC, #24]. В этом случае контрольная сумма не будет зависеть от адресов ISR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, MPetrovich сказал:

Нашёл. Но ни один не запустился.

А контрольную сумму векторов кто-нибудь правильную в нужное место таблицы кладет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, jcxz said:

А что по-вашему делает операция "|=" си?

осуществляет "ИЛИ" регистра с числом после равенства и записывает результат в регистр

Вы к тому, что сначала надо считать в буфер значение регистра, потом считать туда число... Ага, кажется дошло - из этого регистра нельзя считать в буфер. Верно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/21/2023 at 3:37 PM, MPetrovich said:

Hence the user flash reset vector should contain a jump instruction to the entry point of the user application code.

Я так понимаю, под  user application code они подразумевают ResetHandler

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, Arlleex said:

А контрольную сумму векторов кто-нибудь правильную в нужное место таблицы кладет?

Не проверял. Я потому и решил простую мигалку написать, чтобы понять жизнеспособен ли МК в принципе.

1 minute ago, dimka76 said:

Я так понимаю, под  user application code они подразумевают ResetHandler

Может подскажите как этот обработчик то вообще должен выглядеть и куда вставляться? В main.c?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/21/2023 at 3:40 PM, jcxz said:

В простейшем случае - в каждом векторе может быть одна команда: LDR PC, [PC, #24]. В этом случае контрольная сумма не будет зависеть от адресов ISR.

Никогда над этим не задумывался, а теперь это уже не актуально, т.к. оные канули в лету )))

Хотя, у NXP и  Cortex та же система с этой контрольной суммой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, Arlleex сказал:

Вот тут и должна находиться инструкция (-и), передающая управление на __main. Все ровно так же, как в STM32...

STM32 - это обычно Cortex-M, а LPC2xxx - это или ARM7 (LPC23xx, LPC24xx) или ARM9, у которых система прерываний и таблица векторов совсем по-другому устроены, чем в M-профиле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/21/2023 at 3:42 PM, MPetrovich said:

Не проверял. Я потому и решил простую мигалку написать, чтобы понять жизнеспособен ли МК в принципе.

Может подскажите как этот обработчик то вообще должен выглядеть и куда вставляться? В main.c?

Какой обработчик ? Что-то вы окончательно запутались уже.

Почитайте Тревор Мартин. Микроконтроллеры ARM7. Семейство LPC2000 компании Philips. Вводный курс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...