Перейти к содержанию
    

Доброго времени суток !

 

1. Подскажите как разместить переменную в памяти программы ? [разобрался]

 

под С51 было так...

const uint8_t code var_name;

 

сейчас достаточно так...

const uint8_t var_name;

____________________________________________________________________

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

unsigned int const my_variable = 0x55555555;

 

если нужно по конкретному адресу, то, например, так:

 

unsigned int const secure __attribute__((at(0x1FC))) = 0x43218765;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ничего из предложенного не работает - переменная в секции .constdata, тип -data...

 

ЗЫ по конкретному адресу размещает - с этим вопросов нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

переменная в секции .constdata, тип -data...

Не уверен, что это означает, что переменная размещена в ОЗУ. Но я в этом небольшой специалист.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по всему тему создал с горяча...

 

const uint8_t Symbol[10] = {SYMBOL_0, SYMBOL_1, SYMBOL_2, SYMBOL_3, SYMBOL_4, SYMBOL_5, SYMBOL_6, SYMBOL_7, SYMBOL_8, SYMBOL_9};

 

Symbol                                   0x00000d48   Data          10  indic.o(.constdata)

 

что говорит о том, что массив лежит во флэш и спецификатора const вполне достаточно...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

говорит о том, что массив лежит во флэш и спецификатора const вполне достаточно...

для локальных переменных может и не хватить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос 2: Аппаратный I2C LPC1114 + EEPROM (AT24C01? например)

 

Вопрос несколько общий - кто поборол и у кого пошлО ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чего там бороть-то? Взял пример I2C из папки \arm\examples\NXP\LPC11xx\IAR-LPC-1114-SK в IAR EWARM 5.50.5 и с полпинка завел этот I2C. Правда у меня не EEPROM была подключена, а LCD на PCF8535.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дык...первым делом - мануал, вторым - примеры NXP...просто так сюда не пишу, в основном - читаю...

 

//=====================================================================

void Init_I2C (){
    LPC_IOCON->PIO0_4 |= ((1<<0));            //Selects I2C function SCL (open-drain pin)
    LPC_IOCON->PIO0_5 |= ((1<<0));            //Selects I2C function SDA (open-drain pin)

    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<5);            //Enables clock for I2C
    LPC_SYSCON->PRESETCTRL |= (1<<1);                //De-asserts reset for I2C
    LPC_I2C->SCLL = 480;
    LPC_I2C->SCLH = 480;

    LPC_I2C->CONCLR = ((1<<2) | (1<<3) | (1<<5));
    NVIC_EnableIRQ(I2C_IRQn);
    LPC_I2C->CONSET |= (1<<6);
}

//================================================================================
=======

void I2C_IRQHandler (){
    uint8_t StatValue = LPC_I2C->STAT;
    test_i2c = StatValue;
    switch(StatValue){
        case 0x08:
            LPC_I2C->DAT = 0xA1;
            LPC_I2C->CONCLR |= ((1<<3) | (1<<5));
            break;
        case 0x10:
            LPC_I2C->DAT = 0xA1;
            LPC_I2C->CONCLR |= ((1<<3) | (1<<5));
            break;
        case 0x18:
            LPC_I2C->DAT = 0xFF;
            break;
        default:
            LPC_I2C->CONCLR |= (1<<3);    
    }
    SW_1_TOG;
}

 

проблема состоит в том, что нет я не вижу сигнала START (осцил-ом), но он как-бы есть (test_i2c = 8 - слежу через модбас, зажигается SW_1) - а дальше тишина...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чего там бороть-то? Взял пример I2C из папки \arm\examples\NXP\LPC11xx\IAR-LPC-1114-SK в IAR EWARM 5.50.5 и с полпинка завел этот I2C. Правда у меня не EEPROM была подключена, а LCD на PCF8535.

 

если не сложно - прицепите тестовый проект ИАРа

 

START condition увидел...mdk-ARM симулирует...в железе - не работает...все еще нуждаюсь в пинкЕ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если не сложно - прицепите тестовый проект ИАРа
Не уверен, что вы сможете это очень просто адаптировать под Keil, но попробуйте.

IAR_LPC_1114_SK_I2C_simple.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

swisst, а резисторы-то к питанию притянуты?

 

разумеется - обе линии (и SCL, и SDA)...

 

Не уверен, что вы сможете это очень просто адаптировать под Keil, но попробуйте.

 

спасибо - поковыряю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лень создавать тему, спрошу про LPC111x здесь.

Что такое "Unique device serial number for identification" и где его посмотреть, кроме как в разделе "features" user manual'а ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...