Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 26.02.2014, 20:36  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

sergeyye, еще не стоит забывать о макросе sizeof, возвращающего размер массива. Тогда можно функцию копирования массива переписать так:
Код:
u8 ArrayLen = sizeof(ArrayA);
while (ArrayLen--)
{
  * ArrayA ++ = * ArrayB ++;
}
Реклама:
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
sergeyye (26.02.2014)
Непрочитано 26.02.2014, 20:50  
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
...не стоит забывать о макросе sizeof,...
До него я еще не добрался. Спасибо, сейчас займусь.

Не нашёл пока хорошей литературы на тему "Си для ARM". Лучше для STM32.
sergeyye вне форума  
Непрочитано 26.02.2014, 21:09  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
А еще надо поставить const
Так Array[] же в области локальных переменных, в стеке. Или с const компилятор его в указатель на flash преобразует? Надо проверить.

Как-то так
Код:
void Load_Buffer_LCD (void)
 {
 char *Array = "trulala@tralala.trololoFigfam";   //(с) eddy
 char Screen [32]; // Массив в ОЗУ для вывода в дисплей

 memcpy((void *)Screen, (void *)Array, sizeof(Array));
...
В этом варианте нужна будет проверка размера Array.

Последний раз редактировалось AJScorp; 26.02.2014 в 21:22.
AJScorp вне форума  
Непрочитано 26.02.2014, 21:17  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

У вас каша в голове, AJScorp.
Easyrider83 вне форума  
Непрочитано 26.02.2014, 21:18  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
У вас каша в голове, AJScorp.
Что не так?
AJScorp вне форума  
Непрочитано 26.02.2014, 21:24  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Все переменные лежат в ОЗУ. На то они и переменные. А константы лежат во флеши (ПЗУ).
Никакой области локальных переменных не существует. А стек вообще сюда отношения не имеет.
Easyrider83 вне форума  
Непрочитано 26.02.2014, 21:57  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
Все переменные...
Хорошо, проверим
случай А
Код:
char *Array = "trulala@tralala.trololoFigfam";
Указатель на строку загружается в регистр

Код:
volatile char Screen[32];

void testfunc(void)
{
char *Array = "trulala@tralala.trololoFigfam";
[0xe59f1c7c] * ldr      r1,0x00005324 ; = #0x00006194

memcpy((void *)Screen, (void *)Array, sizeof(Array));
случай B
Код:
char Array[] = {"trulala@tralala.trololoFigfam"};
создается копия строки в стеке

Код:
volatile char Screen[32];

void testfunc(void)
{
[0xe52de004]   str      r14,[r13,#-4]!
[0xe24dd024]   sub      r13,r13,#0x24
char Array[] = {"trulala@tralala.trololoFigfam"};
[0xe3a0201e]   mov      r2,#0x1e
[0xe59f101c]   ldr      r1,0x00006e8c ; = #0x00006fe0
[0xe28d0004]   add      r0,r13,#4
[0xebffe4ff]   bl       __rt_memcpy

memcpy((void *)Screen, (void *)Array, sizeof(Array))
Проанализируете, или расписать подробнее?
AJScorp вне форума  
Непрочитано 26.02.2014, 22:11  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
Никакой области локальных переменных не существует.
Угу. Ознакомьтесь, чем отличаются переменные, объявленные внутри функции от переменных, объявленных вне функции.
AJScorp вне форума  
Непрочитано 26.02.2014, 22:39  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,561
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Где создаются локальные переменные?
Можно ли стек назвать областью локальных переменных?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 27.02.2014, 10:51  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Мда, вы сюда пришли относительно контроллеров подучиться или померяться своими убогими знаниями по ЯВУ?
Hives вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 09:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot