Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

Ответ
 
Опции темы Опции просмотра
Старый 26.07.2017, 16:07   #1
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 41
Сообщений: 4,070
Вес репутации: 2080/99
maagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond repute
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Вопрос по скорости выполнения программы..

У меня PSoC4 (ядро CORTEX M0), частота 24МГц, накидал простейшую программку чтобы оценить реальную скорость работы
Код:
             for(;;)
            {

                if(temp)
                {
                    Pin_Write(0); 
                    temp=0;
                }
                else
                {
                    Pin_Write(1); 
                    temp=1;
                }
            }
В итоге получаю смену уровней с частотой всего навсего 350кГц!..
Удвоил тактовую, выставил в среде 48Мгц, получил удвоенную около 700кГц..Я понимаю что отъедаются такты на конвейер, что компилятор неэффективен..но настолько .. это нормально?
maagalex вне форума   Ответить с цитированием
Старый 26.07.2017, 16:25   #2
bzx
Senior Member
 
Аватар для bzx
 
Регистрация: 25.02.2007
Адрес: St. Petersburg
Возраст: 44
Сообщений: 436
Вес репутации: 1021/53
bzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud of
Отправить сообщение для bzx с помощью ICQ Отправить сообщение для bzx с помощью Skype™
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от maagalex Посмотреть сообщение
.. это нормально?
Возможно Вы собрали Debug, пересоберите как релиз с оптимизацией по скорости.
__________________
Для связи email: info собака qbit.su
bzx вне форума   Ответить с цитированием
Старый 26.07.2017, 16:46   #3
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 31
Сообщений: 1,278
Вес репутации: 2210/69
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от maagalex Посмотреть сообщение
В итоге получаю смену уровней с частотой всего навсего 350кГц!..
Удвоил тактовую, выставил в среде 48Мгц, получил удвоенную около 700кГц..Я понимаю что отъедаются такты на конвейер, что компилятор неэффективен..но настолько .. это нормально?
Для получения реальной скорости "ногодрыга" нужно поставить следующие подряд команды смены логического уровня. На осцилографе будетут видны пачки импульсов, циклы и условия забирают часть ресурсов.
Во вторых, замечено по IAR, при отключеной оптимизации С код транслируется в ассемблерный 1:1, с Medium оптимизацией С выбрасываются промежуточные переменные и указатели.
Рак на форуме   Ответить с цитированием
Старый 26.07.2017, 17:07   #4
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 31
Сообщений: 1,278
Вес репутации: 2210/69
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Вопрос по скорости выполнения программы..

Update:
Еще нужно убедится, что тактовая реально 24МГц, в stm32 есть возможность вывести сигнал тактовой на ножку mco.
Рак на форуме   Ответить с цитированием
Старый 26.07.2017, 17:42   #5
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 41
Сообщений: 4,070
Вес репутации: 2080/99
maagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond repute
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Вопрос по скорости выполнения программы..

Мне нужно проверить скорость записи на sd карту, запускаю такой вот цикл
Код:
            for(intemp=0;intemp<2000;intemp++)
            {
                resultF = f_write ( &fileO,  Buff, 512, &bf );
                if(temp)
                {
                    Pin_Write(0); 
                    temp=0;
                }
                else
                {
                    Pin_Write(1); 
                    temp=1;
                }
            }
Десять раз происходит запись со скоростью 125 пакетов в секунду (каждый пакет через 8мсек), потом пауза 67 мсек непонятно чем вызванная, опять 10 раз запись и тд..Из за этой паузы я не смогу записывать поток..
maagalex вне форума   Ответить с цитированием
Старый 26.07.2017, 18:00   #6
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 31
Сообщений: 1,278
Вес репутации: 2210/69
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от maagalex Посмотреть сообщение
Мне нужно проверить скорость записи на sd карту, запускаю такой вот цикл
Код:
            for(intemp=0;intemp<2000;intemp++)
            {
                resultF = f_write ( &fileO,  Buff, 512, &bf );
                if(temp)
                {
                    Pin_Write(0); 
                    temp=0;
                }
                else
                {
                    Pin_Write(1); 
                    temp=1;
                }
            }
Десять раз происходит запись со скоростью 125 пакетов в секунду (каждый пакет через 8мсек), потом пауза 67 мсек непонятно чем вызванная, опять 10 раз запись и тд..Из за этой паузы я не смогу записывать поток..
Объективней будет если перед входом в функцию записи установить 1, после завершения записи сбросить, тогда будет понятно, сколько цикл, сколько запись жрет.
Рак на форуме   Ответить с цитированием
Старый 26.07.2017, 21:35   #7
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,668
Вес репутации: 3694/96
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от maagalex Посмотреть сообщение
Десять раз происходит запись со скоростью 125 пакетов в секунду (каждый пакет через 8мсек), потом пауза 67 мсек непонятно чем вызванная, опять 10 раз запись и тд..Из за этой паузы я не смогу записывать поток..
Как вчера родился... Клади данные в буфер... большой такой буфер... Даже два... Пока один буфер будет заталкиваться в карту... другой не должен переполняться новыми данными... А ваще... тема избитая... Поройся на элхе... там много об этом сказано... и уже давно...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 27.07.2017, 01:27   #8
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 41
Сообщений: 4,070
Вес репутации: 2080/99
maagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond repute
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
Как вчера родился... Клади данные в буфер..
Когда же мне их в буфер то класть, если они потоком летят и я их еле успеваю ловить?..Собственно в карту я их уже писал давно, но без поддержки фат тупо секторами, а сейчас хочу поприличнее сделать..
Нашел еще настройку битрейта записи, поднял с 2Мбит сек до макс.8 Мбит-сек, скорость записи увеличилась процентов на 10, с теми же паузами между каждыми 10 записями..Вот узнать бы что за паузы такие, может обновления фат какие срабатывают через равные промежутки времени, но прерываний в проекте нет вообще..страница с ними пустая..
maagalex вне форума   Ответить с цитированием
Старый 27.07.2017, 06:24   #9
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,668
Вес репутации: 3694/96
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: Вопрос по скорости выполнения программы..

Да никого не волнует как тебе плохо... Есть реальность... Твоя "дыра" зависит от типа карты, размера, производителя, как карта отформатирована... но она есть всегда и везде... Бей поиском...
Вот поэтому и нужен буфер... Чтобы пока карта занята, ты не терял данные... т.е. его размер должен компенсировать время таймаута карты...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 27.07.2017, 07:38   #10
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,266
Вес репутации: 4411/101
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Вопрос по скорости выполнения программы..

успевал же раньше? Чего решил поменять метод записи? Sony в смарт теликах вообще свой ни к кому не подходящий формат записи использует. И ничего. (ну с ними то понятно. чтобы не нарушать авторсике права. сам себе записал, даже к другому телику не подойдет)
ampersant вне форума   Ответить с цитированием
Старый 27.07.2017, 14:36   #11
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 41
Сообщений: 4,070
Вес репутации: 2080/99
maagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond repute
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
Да никого не волнует как тебе плохо... Есть реальность... Твоя "дыра" зависит от типа карты, размера, производителя, как карта отформатирована... но она есть всегда и везде... Бей поиском...
Вот поэтому и нужен буфер... Чтобы пока карта занята, ты не терял данные... т.е. его размер должен компенсировать время таймаута карты...
Спасибо, это я и хотел услышать что задержки не в моем проекте а в карте. То была карта сандиск 2Гиг 2 класса, попробовал самсунг 16Гиг 10 класса, скорость записи сектора осталась прежней, вероятно это ограничение скорости контроллера без использования DMA, но паузы между записями изменились..Теперь пауза появляется только после большого числа записаных секторов (сотни), и она то одна ,то пять подряд ..
Порадовала полная поддержка современных карт..
Почему решил отказаться от старого метода-он не поддерживает карт больше 2Г, не поддерживается современными контроллерами и средой, да и вообще возможность работы с картами пригодиться для разных проектов..
maagalex вне форума   Ответить с цитированием
Старый 28.07.2017, 20:11   #12
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 44
Сообщений: 1,329
Вес репутации: 1908/67
DimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant future
По умолчанию Re: Вопрос по скорости выполнения программы..

Цитата:
Сообщение от maagalex Посмотреть сообщение
Спасибо, это я и хотел услышать что задержки не в моем проекте а в карте.
Карта согласно спееку, имеет полное прево сделать задержку, если мне память не изменяет до 300мс. Так что без большого FIFO ты не обойдшешся. И лучше конечно работать с картой по DMA.
DimaS вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизировать участок кода по скорости выполнения Tronix Вопросы начинающих 10 02.01.2015 23:19
еще один вопрос по контроллеру опережения зажигания на pic 16f84a 4,0мгц дмитрий626 Вопросы начинающих 6 26.12.2009 09:08
вопрос по PICC EXT_INT Вопросы начинающих 13 26.08.2008 07:53
Вопрос новичка по Си ramonchik Продукция MICROCHIP 3 05.03.2007 16:28


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


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