Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: прпроблемы с HI-TECH C PRO 9.63PL2 и MPLAB IDE v8.40
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
another_one
Здравствуйте, нужна поддержка в следующей проблеме:

Задействую
Memory Summary:
Program space used 4B06h ( 19206) of 8000h bytes ( 58.6%)
Data space used C4h ( HEX File Usage Map

микроконтролера PIC18F258.

Также начиная с 7908H записываю константы(около 200).

Начились проблемы с кодом в процессе отладки когда линкер разместил код в 2-х областях(в последней назодятся константы)

т.е код разбит следующим образом:
первая область:
0000H-3FFC
вторая:
72BE-7DBC
Вектор прерывания использую тот который по умолчанию(высокий приоритет) по адерсу 000008H.


Т.к константы накладываются с кодом программа глючит(
Не пойму зачем такое разделение и как от него избавится, в коде стока нопов не ставил.


Заранее благодарен
DL36
Используйте СТД, ПРО пока недоделанная версия.
evc
Цитата(another_one @ Mar 19 2010, 21:19) *
...Также начиная с 7908H записываю константы(около 200)...


Как именно это делаете?

Недавно умудрился занять 98% памяти у 18F4550. Были и константы - массив 550. Ничего не накладывалось.
Для 18 серии, пользуюсь только Pro версиями от HI-TECH.
another_one
Спасибо большое за поддержку.

Попробую поставить std, запись во flash делаю след образом:
Код
void RTF()
{unsigned char u;
unsigned int offset;
unsigned char * addip=0, * addip2=0;
    /* flash initiate */
    SRAM_pointer = (unsigned char *)RAM_pnt;
    addip2 = (unsigned char *)(RAM_pnt-2);
    addip = (unsigned char *)(RAM_pnt-1);
    *addip2 = 0x55;
    flash_write(addip2,1,(unsigned char *)(FLASH_pnt-16));
    *addip = mes;
    flash_write(addip,1,(unsigned char *)(FLASH_pnt-8)); // base flag
    switch(curt)
    {
        case 0x01:
        SRAM_pointer += 0;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+0);
        break;
        case 0x02:
        SRAM_pointer += 21;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+21);
        break;
        case 0x03:
        SRAM_pointer += 42;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+42);
        break;
        case 0x04:
        SRAM_pointer += 63;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+63);
        break;
        case 0x05:    
        SRAM_pointer += 84;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+84);
        break;
        case 0x06:
        SRAM_pointer += 105;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+105);
        break;
        case 0x07:
        SRAM_pointer += 126;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+126);
        break;    
        case 0x08:
        SRAM_pointer += 147;
        flash_write(SRAM_pointer,21,(unsigned char *)FLASH_pnt+147);
        break;
        default:
        break;
    }
    SRAM_pointer = (unsigned char *)RAM_pnt;
}

Цитата
Используйте СТД, ПРО пока недоделанная версия.

Не подскажите где тиснуть(в личку)?

Заранее благодарен
evc
А я до сих пор думал, что константы это такие, которые не меняются в процессе исполнения программы...
А чем Вас eeprom не устраивает?
По вопросу "где тиснуть", посмотрите в этой ветке.
another_one
Спасибо за поддержку.

Константами обозвал данные которые записываю один раз при конфигурировании.

А Ипром не стал использовать вследствии меньшего количества циклов записи/чтения по сравнению со Флэш.

Скачал STD на 45 дней, но к сожалению он не хочит ничего компилить -
Error [593] C:\Program Files\HI-TECH Software\PICC-18\STD\9.51\lib\pic86l-c.lib(sbsr0.obj); 0. can't find 0x4904 words (0x4904 withtotal) for psect "text" in segment "CODE"
another_one
кажется я нашел решение изначальной проблемы:
http://kazus.ru/forums/showthread.php?t=6315
DL36
Цитата(evc @ Mar 20 2010, 14:08) *
Для 18 серии, пользуюсь только Pro версиями от HI-TECH.

Новых проектов под 18е нет, а те что сделаны под стд с jacOs не собираются.
Надо думать через год полтора будет приличный компилятор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.