реклама на сайте
подробности

 
 
> CortexM3, запись данных в Program Counter.
Danis
сообщение Nov 28 2011, 11:09
Сообщение #1


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Привет, коллеги по цеху!

Работаю в IAR, пишу на Си. Имеется надобность прочитать данные из ячейки flash по адресу 0x08000804 и записать их в регистр PC (R15). Походу тут без ассемблера не обойтись. Прошу помощи в реализации кода. Спасибо!


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
shreck
сообщение Nov 29 2011, 09:15
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



У меня загрузчик прыгает на основное приложение так (основа - примеры от ST):
Код
// Адрес начала основного приложения.
#define APLICATION_ADDRESS                  0x08003000

//------------------------------------------------------------------------------
// Запуск основного приложения, если оно зашито. Иначе возврат из функции.
void run_app_if()
{
    typedef  void (*pFunction)(void);
    pFunction Jump_To_Application;
    uint32_t JumpAddress;
    
    if (((*(__IO uint32_t*)APLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
    {
        // Jump to user application
        JumpAddress = *(__IO uint32_t*) (APLICATION_ADDRESS + 4);
        Jump_To_Application = (pFunction) JumpAddress;
        // Initialize user application's Stack Pointer
        __set_MSP(*(__IO uint32_t*) APLICATION_ADDRESS);
        Jump_To_Application();
    }
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 01:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016