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

 
 
> Размещение функций из подключамого файла, Как?
arttab
сообщение Apr 23 2007, 11:47
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



мега8. хочу из проги в NWWR переписать страницу flash в NWWR. В опциях линкера указал разместить функцию в которой происходят операция по перезаписи, в WWR.
Как указать что функции из подключаемого файла (flash) должны быть размещены в том же сегменте?


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Apr 24 2007, 09:01
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Уточню проблему:
есть основная программа на устройство. Так же должен быть bootloader (пока нет, но будет общим на серию разных приборов. подключаться к проекту в виде образа). В основной программе необходимо менять данные в NWWR области (МЕГА8). подключаю к проекту flash.h для использования функций
_WAIT_FOR_SPM();
_ENABLE_RWW_SECTION();
_FILL_TEMP_WORD(Buf_Adres, Data);
_PAGE_ERASE(List);
_PAGE_WRITE(List);

Из области NWWR переписать flash не могу. Решил определить сегмент в начале bootloaderа и поместить туда мою функцию (под загрузчик место еще есть). На встроенные функции располагаются где решить компилятор. В лоб не получилось решить проблему.

Есть Другой вариант:
Определить область на всю NWWR и поместить в нею всю мою прогу кроме функции котора я переписывает flash.
А есть способ заставить компилятор разместить где мне нужно определенные встроенные функции? inline не помогло.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 24 2007, 09:54
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(arttab @ Apr 24 2007, 08:01) *
Уточню проблему:
есть основная программа на устройство. Так же должен быть bootloader (пока нет, но будет общим на серию разных приборов. подключаться к проекту в виде образа).
Так сделайте в этом образе фиксированные точки входа в эти функции или разместите эти функции в зарезервированных сегментах при компиляции образа, а в приложении объявите их как внешние:
Код
Bootloader, .s90:
        RSEG    SYNTH_INIT : CODE:ROOT(1)
        PUBLIC    SynthInit
        EXTERN    SynthInitHandler
SynthInit                        //    SynthInit entry point
        RJMP    SynthInitHandler

// ****************************************************************
        RSEG    GET_SERIAL : CODE:ROOT(1)
        PUBLIC    SerialNo
SerialNo
        LDI        R16,0xFF        // will be overwritten by AVReAl
        LDI        R17,0xFF
        RET
Bootloader, .xcl:
-Z(CODE)GET_SERIAL=1826-1FFF
-Z(CODE)SYNTH_INIT=1826-1FFF
BootLoader, .map:
SYNTH_INIT
  Relative segment, address: CODE 0000182E - 0000182F (0x2 bytes), align: 1
  Segment part 1. ROOT.
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           SynthInit               0000182E        main (Application)
    -------------------------------------------------------------------------
GET_SERIAL
  Relative segment, address: CODE 00001826 - 0000182B (0x6 bytes), align: 1
  Segment part 2. ROOT.
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           SerialNo                00001826        main (Application)


Application, .h:
extern void SynthInit (uint16_t FrequencyCoeff);
extern uint16_t SerialNo(void);

Application, .xcl:
-DSerialNo=0x1826
-DSynthInit=0x182E
PS IgorKossak: Дуплетом бьем wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- arttab   Размещение функций из подключамого файла   Apr 23 2007, 11:47
- - arttab   Получается не возможности указать размещение функц...   Apr 24 2007, 05:23
- - IgorKossak   1. Общий проект бутлоадера и приложения. В командн...   Apr 24 2007, 09:58
- - arttab   bootloader еще нет и нескоро будет, а отладить про...   Apr 24 2007, 10:14
|- - Сергей Борщ   Цитата(arttab @ Apr 24 2007, 09:14) bootl...   Apr 24 2007, 10:22
- - arttab   bootloader еще нет и нескоро будет, а отладить про...   Apr 24 2007, 10:54
|- - Сергей Борщ   Цитата(arttab @ Apr 24 2007, 09:54) Т.е. ...   Apr 24 2007, 11:01
- - arttab   а как Вы организовывали передачу управления от заг...   Apr 24 2007, 11:54
|- - Сергей Борщ   Цитата(arttab @ Apr 24 2007, 10:33) а как...   Apr 24 2007, 11:55
- - arttab   Спасибо. буду дальше копаться   Apr 24 2007, 12:00
- - arttab   Блин, попробовал стереть страницу при помощи flash...   Apr 25 2007, 12:45
|- - Сергей Борщ   Цитата(arttab @ Apr 25 2007, 11:45) Люди...   Apr 25 2007, 15:18
- - arttab   при компиляции вылетает предепреждение Warning[w6]...   Apr 26 2007, 04:56
- - arttab   Эти дни я буду вспоминать долго - до следующей зап...   Apr 26 2007, 12:14
- - arttab   Ну вот, разобрался. Вопросы коллеги навели на мысл...   Apr 27 2007, 06:42


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

 


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


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