реклама на сайте
подробности

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> Cortex-M4(F) порт под GCC залит в репозиторий.
сарматъ
сообщение Aug 19 2013, 13:47
Сообщение #46


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



еще раз спасибо, буду осмысливать
Go to the top of the page
 
+Quote Post
arm-user
сообщение Aug 27 2013, 07:21
Сообщение #47





Группа: Новичок
Сообщений: 2
Регистрация: 27-08-13
Пользователь №: 78 061



Добрый день.

Пользуюсь SCM под LPC17xx продолжительное время, но сама операционка для меня как черный ящик.
Подскажите, насколько реально сделать порт под LPC43xx ?
Степень сложности ?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 27 2013, 09:54
Сообщение #48


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (arm-user @ Aug 27 2013, 09:21) *
Степень сложности ?
Как вижу, там внутри Cortex-M4 и Cortex-M0. Степень сложности равна нулю - под оба эти ядра существуют порты операционки, от конкретной периферии кристалла в самой операционке ничего не зависит, зависят лишь инициализация, махание ногами и сброс флагов в прерывании таймера в примерах. То есть просто берете порт для M4 (для M0 лежит в репозитории), выкидываете все лишнее (собственно сам пример) и пишете инициализацию периферии под свой пример.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
arm-user
сообщение Aug 27 2013, 17:16
Сообщение #49





Группа: Новичок
Сообщений: 2
Регистрация: 27-08-13
Пользователь №: 78 061



Цитата(Сергей Борщ @ Aug 27 2013, 13:54) *
Как вижу, там внутри Cortex-M4 и Cortex-M0. Степень сложности равна нулю ...

Спасибо, подбодрили. Будем пробовать.
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Aug 28 2013, 07:55
Сообщение #50


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



добрый день, подскажите а ТMutex.lock() запрещает прерывания или только блокирует переключение задач и запрет прерываний нужно делать отдельно?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 28 2013, 09:22
Сообщение #51


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (сарматъ @ Aug 28 2013, 09:55) *
подскажите а ТMutex.lock() запрещает прерывания или только блокирует переключение задач и запрет прерываний нужно делать отдельно?
Он не делает ни того ни другого. Он просто переводит этот TMutex в такое состояние, что задача, выполняющая следующий lock() будет поставлена на ожидание до тех пор, пока первая не сделает unlock(). Это описано в документации, с примерами.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Aug 28 2013, 10:37
Сообщение #52


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



а вот эта функция
static __INLINE void __disable_irq() { __ASM volatile ("cpsid i"); }
запретит переключение задач?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 28 2013, 11:01
Сообщение #53


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Да, запретит.
Но удобнее для этого пользоваться TCritSect:
Код
void foo(){
    TCritSect cs;
    ... // всё отсюда до выхода из функции будет выполняться при запрещённых прерываниях.
}


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Aug 28 2013, 11:22
Сообщение #54


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



спасибо, сейчас почитаю что это

вот что нашел http://embedders.org/blog/teap0t/miro-same...u.html?page=0,7 кому интересно, позже будут вопросы в связи с прочитанным, там в седьмой статье описывается как грамотно запрещать прерывания в арм7 - как понимаю для порта на кортекс это актуально (хотя могу и ошибаться)
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Aug 28 2013, 11:55
Сообщение #55


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



А не проще ли почитать документацию на scmRTOS отсюда?


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Aug 28 2013, 12:01
Сообщение #56


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



наверное проще и этот файл у меня открыт, вот только вхождений "критическая секция" в нем 2 штуки
SYS_TIMER_CRIT_SECT - 3 штуки, или куда именно предлагаете глазом упереться?

ах 2.3.3. вот сюда;-)

Сообщение отредактировал сарматъ - Aug 28 2013, 12:14
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Aug 28 2013, 12:15
Сообщение #57


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(сарматъ @ Aug 28 2013, 16:01) *
наверное проще и этот файл у меня открыт, вот только вхождений "критическая секция" в нем 2 штуки
SYS_TIMER_CRIT_SECT - 3 штуки, или куда именно предлагаете глазом упереться?

Так ведь есть же исходные тексты. Файл OS_Target.h в помощь и AHTOXA код привел.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Aug 28 2013, 12:28
Сообщение #58


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



мдмитрий и опять вы правы

антоха, снова я уперся в незнание асемблера, я правильно понимаю, что конструктор этого класса запоминает были ли запрещены прерывания на момент его вызова, а в момент вызова деструктора прерывания остаются запрещенными если на момент вызова конструктора они были запрещены?

еще раз перечитал 2.3.3. вроде именно это там и написано(смущающийся колобок)

новый вопрос, антоха, а в функции PendSVC_ISR() не происходит сохранения состояния статуса разрешения\запрещения прерываний до их запрещения?

Сообщение отредактировал сарматъ - Aug 28 2013, 12:48
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 28 2013, 14:33
Сообщение #59


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(сарматъ @ Aug 28 2013, 18:28) *
а в функции PendSVC_ISR() не происходит сохранения состояния статуса разрешения\запрещения прерываний до их запрещения?

Нет, потому что PendSVC_ISR() - это прерывание, и оно может выполниться только при разрешённых прерыванияхsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Aug 28 2013, 15:13
Сообщение #60


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



аааааа.... вот как раз по поводу этого я ссылку выше и приводил

там касаемо ситуации возникновения прерывания во время выполнения инструкции запрещения прерывания

то есть выполняется где либо инструкция запрещения прерывания и во времяя этого возникает прерывание PendSVC_ISR() оно исполняется и разрешает прерывания и вываливается обратно в место где прерывания должны быть запрещены но по факту с разрешенными прерываниями

или я что то путаю?

вот еще одна ссылка http://infocenter.arm.com/help/index.jsp?t....faqs/3677.html

Сообщение отредактировал сарматъ - Aug 28 2013, 15:20
Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th July 2025 - 15:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016