skripach 6 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба On 7/21/2023 at 4:28 AM, MPetrovich said: А я где-то в коде читаю значения этих регистров? zltigo на вас нет 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 61 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба On 7/21/2023 at 3:20 PM, MPetrovich said: А здесь..."вектор сброса флэш-памяти пользователя должен содержать инструкцию перехода к точке входа кода пользовательского приложения"... Вы точно правильно перевели ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба Я в KEIL не первую программу компилирую для разных МК и процов и ни разу не заморачивался "точкой входа". Что за серия такая утырочная! Если б не по работе нужда проверить, то и не пользовался бы этими LPC никогда! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 5 минут назад, MPetrovich сказал: И что в обработчике сброса надо указать? Где он, кстати должен находиться, в Startap? ; Reset Handler EXPORT Reset_Handler Reset_Handler Это вот оно? Вот тут и должна находиться инструкция (-и), передающая управление на __main. Все ровно так же, как в STM32... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 1 час назад, MPetrovich сказал: BOOT[1:0] = 11 selects internal flash memory. Вроде бы так должно быть, поскольку программа после сброса должна из FLASHa выполняться. Правильно я понимаю? Видимо да. 1 час назад, MPetrovich сказал: А я где-то в коде читаю значения этих регистров? А что по-вашему делает операция "|=" си? 1 час назад, MPetrovich сказал: A в файле Stsrtap.s разве не настраиваются стек и прерывания? Вы ясновидящих тут ищете??? Кто знает что там в вашем коде где делается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба Только что, MPetrovich сказал: Я в KEIL не первую программу компилирую для разных МК и процов и ни разу не заморачивался... ... потому что понятия не имели, как происходит процесс загрузки, где у кого какая точка входа и т.д. Неужели вы не нашли каких-нибудь примеров под свой процессор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 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: Неужели вы не нашли каких-нибудь примеров под свой процессор? Нашёл. Но ни один не запустился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 33 минуты назад, dimka76 сказал: И в каждой программе, адреса в этой таблице, могут иметь разные значения. Поэтому не может быть универсального Stsrtap.s LPC2xxx - это или ARM7 или ARM9. А значит в таблице векторов прерываний не адреса, а команды. И они могут быть одинаковыми. В простейшем случае - в каждом векторе может быть одна команда: LDR PC, [PC, #24]. В этом случае контрольная сумма не будет зависеть от адресов ISR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 1 минуту назад, MPetrovich сказал: Нашёл. Но ни один не запустился. А контрольную сумму векторов кто-нибудь правильную в нужное место таблицы кладет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 7 minutes ago, jcxz said: А что по-вашему делает операция "|=" си? осуществляет "ИЛИ" регистра с числом после равенства и записывает результат в регистр Вы к тому, что сначала надо считать в буфер значение регистра, потом считать туда число... Ага, кажется дошло - из этого регистра нельзя считать в буфер. Верно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 61 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MPetrovich 6 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба Just now, Arlleex said: А контрольную сумму векторов кто-нибудь правильную в нужное место таблицы кладет? Не проверял. Я потому и решил простую мигалку написать, чтобы понять жизнеспособен ли МК в принципе. 1 minute ago, dimka76 said: Я так понимаю, под user application code они подразумевают ResetHandler Может подскажите как этот обработчик то вообще должен выглядеть и куда вставляться? В main.c? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 61 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба On 7/21/2023 at 3:40 PM, jcxz said: В простейшем случае - в каждом векторе может быть одна команда: LDR PC, [PC, #24]. В этом случае контрольная сумма не будет зависеть от адресов ISR. Никогда над этим не задумывался, а теперь это уже не актуально, т.к. оные канули в лету ))) Хотя, у NXP и Cortex та же система с этой контрольной суммой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба 9 минут назад, Arlleex сказал: Вот тут и должна находиться инструкция (-и), передающая управление на __main. Все ровно так же, как в STM32... STM32 - это обычно Cortex-M, а LPC2xxx - это или ARM7 (LPC23xx, LPC24xx) или ARM9, у которых система прерываний и таблица векторов совсем по-другому устроены, чем в M-профиле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 61 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба On 7/21/2023 at 3:42 PM, MPetrovich said: Не проверял. Я потому и решил простую мигалку написать, чтобы понять жизнеспособен ли МК в принципе. Может подскажите как этот обработчик то вообще должен выглядеть и куда вставляться? В main.c? Какой обработчик ? Что-то вы окончательно запутались уже. Почитайте Тревор Мартин. Микроконтроллеры ARM7. Семейство LPC2000 компании Philips. Вводный курс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться