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

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

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

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

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

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


Ответ
Опции темы

Изучаем STM32 Cortex M3

Непрочитано 26.02.2014, 20:36   #3961
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
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   #3962
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

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

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

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

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

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

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

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

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

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

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

Код:
volatile char Screen[32];

void testfunc(void)
{
char *Array = "[email protected]";
[0xe59f1c7c] * ldr      r1,0x00005324 ; = #0x00006194

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

Код:
volatile char Screen[32];

void testfunc(void)
{
[0xe52de004]   str      r14,[r13,#-4]!
[0xe24dd024]   sub      r13,r13,#0x24
char Array[] = {"[email protected]"};
[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   #3968
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

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

Где создаются локальные переменные?
Можно ли стек назвать областью локальных переменных?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума   Ответить с цитированием
Непрочитано 27.02.2014, 10:51   #3970
Hives
Гражданин KAZUS.RUN
 
Регистрация: 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, время: 12:11.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.