User Tag List

Показано с 1 по 10 из 43

Тема: sdcc. с чего начать.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.01.2012
    Адрес
    г.Винница, Украина
    Сообщений
    94
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как записать допустим какое-либо значение в какую-нибудь область памяти
    Обычно под С это прямо не требуется, там идёт работа с переменными и указателями.
    Но если очень надо:
    *(char*)0xAAAA =0x55; // Записываем 55h по адресу ААААh

    насчёт того как скомпилить - не скажу, кури документацию.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от predatoralpha Посмотреть сообщение
    Обычно под С это прямо не требуется, там идёт работа с переменными и указателями.
    Но если очень надо:
    *(char*)0xAAAA =0x55; // Записываем 55h по адресу ААААh

    насчёт того как скомпилить - не скажу, кури документацию.
    чёйто не требуется? Под контроллеры пишешь - постоянно так делаешь. Особливо под те, что порты и память не различают - ARM. Да и для AVR тоже можно.
    Только там обычно делают грамотно.

    Определяют макрос типа:

    #define MEMORY_REGISTER (*(unsigned char*)0xABCD)

    А потом можно записать в эту ячейку:

    MEMORY_REGISTER = 5;

    Или считать значение ячейки:

    unsigned char d = MEMORY_REGISTER;

    Например (для спека) очистка экрана:

    Код:
    #define SCREEN     ((unsigned char*)0x4000)
    #define SCREENL    6912
    
    void cls(){
          unsigned char* begin_scr = SCREEN;
          unsigned int i;
          for(i=0; i<SCREENL; i++){
                *(begin_scr++) = 0;
          }
    }
    Это учёбный пример, быстрее и короче очистить экран так:
    Код:
    #include <string.h>
    memset((void*)0x4000, 0, 6192);
    



    Цитата Сообщение от ALKO Посмотреть сообщение
    этот самый printf - работает как ассемблерный call(процедура печати символа в ПЗУ) ?[COLOR="Silver"]
    Не обязательно. printf выводит символы при помощи функции putchar. Напиши свой putchar и будет вывод куда угодно и как угодно

  4. #3

    Регистрация
    08.01.2012
    Адрес
    г.Винница, Украина
    Сообщений
    94
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    чёйто не требуется? Под контроллеры пишешь - постоянно так делаешь. Особливо под те, что порты и память не различают - ARM. Да и для AVR тоже можно.
    Только там обычно делают грамотно.
    Под контроллеры - да. Да и то, правильней расписать порты в структуру, а потом эту структуру опциями линкера разместить в нужных адресах памяти.
    Но это частности.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. БК-0011: С чего начать, или вопросы нуба
    от BYTEMAN в разделе БК-0010/0011
    Ответов: 82
    Последнее: 13.06.2021, 22:20
  2. Голая Амига с чего начать
    от alex51 в разделе Amiga
    Ответов: 335
    Последнее: 22.02.2016, 00:26
  3. C чего начать геймдэв для горбатыша?
    от ALKO в разделе Для начинающих
    Ответов: 69
    Последнее: 24.01.2012, 15:49
  4. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  5. Подскажите с чего начать знакомство со спекки...
    от aleksej в разделе Несортированное железо
    Ответов: 33
    Последнее: 28.12.2005, 23:00

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •