29.06.2014, 23:30
|
|
Частый гость
Регистрация: 22.12.2013
Сообщений: 37
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Передача байтов по 16бит шине
День добрый.
К примеру, имеется у меня МК с SMC/FSMC 16бит контроллером и внешняя память. Могу ли я паковать два байта как одно слово и отправлять по 16бит шине внешней памяти? У меня куча байтовых массивов, а в случае с 16бит ОЗУ, я смогу использовать только ее половину.
Существуют ли какие-либо программные методы?
Надеюсь, понятно объяснил.
|
|
|
|
29.06.2014, 23:46
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Передача байтов по 16бит шине
У вас камень 32 бита, а вы все еще атмелями и пиками мыслите.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
30.06.2014, 01:13
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Вот вот. Скажу больше - можете писать сразу по 4 байта одним куском - контроллер сам разобьет передачу на две по 16 бит и запишет в ExtRam
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Hives за это сообщение:
|
|
|
30.06.2014, 08:29
|
|
Частый гость
Регистрация: 22.12.2013
Сообщений: 37
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Сообщение от Hives
|
Вот вот. Скажу больше - можете писать сразу по 4 байта одним куском - контроллер сам разобьет передачу на две по 16 бит и запишет в ExtRam
|
Хм. То есть, остается указать контроллеру, что шина шириной 16бит, а остальное он сам сделает?
Тогда простое копирование в память будет выглядеть так: ?
Код:
|
uint8_t massive[1024]; //Какой-нибудь массив
//......
memcpy((uint16_t*)0x60000000, massive, 1024); |
|
|
|
|
30.06.2014, 09:30
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Массив и так в памяти. Надо только сказать DMA с какой ячейки он начинается и сколько длится.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
30.06.2014, 10:21
|
|
Частый гость
Регистрация: 22.12.2013
Сообщений: 37
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Спасибо, действительно работает. Проверил опытным путем.
|
|
|
|
30.06.2014, 11:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Сообщение от void F()
|
Проверил опытным путем.
|
Вы всегда опытным путём ищите то, что объяснено в даташите? Там ведь даже таблицы есть
|
|
|
|
30.06.2014, 14:58
|
|
Частый гость
Регистрация: 22.12.2013
Сообщений: 37
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Сообщение от niXto
|
Вы всегда опытным путём ищите то, что объяснено в даташите? Там ведь даже таблицы есть
|
Весь даташит раз десяток пересматривал, там ничего про эту "технологию" пакования нет. Впрочем, для 32-ух битых контроллеров это должно быть в порядке вещей.
|
|
|
|
30.06.2014, 15:38
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Передача байтов по 16бит шине
void F() там здоровая таблица на целую страницу: раздел FSMC, пункт "Supported memories and transactions"
вот чем ты смотрел - другой вопрос
|
|
|
|
30.06.2014, 16:15
|
|
Частый гость
Регистрация: 22.12.2013
Сообщений: 37
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Передача байтов по 16бит шине
Сообщение от Hives
|
void F() там здоровая таблица на целую страницу: раздел FSMC, пункт "Supported memories and transactions"
вот чем ты смотрел - другой вопрос
|
У меня не обязательно STM c FSMC контроллером. У разных компаний разные даташиты.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:34.
|
|