16+
Четверг
19 октября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Средства и методы разработки

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Adept  (04.08.2017 15:18 - 04.08.2017 15:43, просмотров: 1032)
дефайны для управления памятью при сборке проекта. 
всё жизнь жёстко прописывал адреса переменных в деф-файлах, и начальные адреса области памяти для библиотек (при этом порядок подключения библиотек важен, т.к дефайны записывались "цепочкой"/ захотелось странного красивого, чтобы библиотеки можно было подключать где и как угодно, без ручных правок адресов. При этом задумка была, чтобы переменная "OS_memory_END" была как бы "динамической", переопределяемой в каждой библиотеке примерно так: в главном файле, инклюды:
...
#include "system_def.inc"
#include "i2c_lib.inc"
#include "LCD_lib.inc"
#include "FSK_lib.inc"
и т.п. 
...
(это для файла "system_def.inc")
#define OS_memory_end 0x2500
(это для файла "i2c_lib.inc")
#define i2c_memory OS_memory_end+1
...
... здесь дефайны адресов переменных в инкрементальном формате (+1 от предыдущего адреса)
...
#define i2c_memory_end ....
#undef OS_memory_end 
#define OS_memory_end i2c_memory_end
(это для файла "LCD_lib.inc")
#define LCD_memory OS_memory_end+1
...
... здесь дефайны адресов переменных в инкрементальном формате (+1 от предыдущего адреса)
...
#define LCD_memory_end ....
#undef OS_memory_end 
#define OS_memory_end LCD_memory_end
и.т.д, до бесконечности :) однако при попытке реализации такого механизма - AVR-ассемблер при сборке проекта в 7-й студии вываливается с ошибкой ("задача завершена" и т.п....) причём, если заменяю в последних строчках (#define OS_memory_end) определение явным ислом, а не ссылкой на предыдущее определение, то всё компилируется нормально :(( чудеса, да и только. Надеюсь не очень сумбурно изложил :)) кто-нибудь знает как красиво реализовать механизм распределения памяти между библиотеками в ассемблерном проекте??
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII