Место размещения конфигурационного макроса для порта (Cortex-M3).

54 views
Skip to first unread message

Andrey Chuikin

unread,
Jun 6, 2012, 10:41:17 PM6/6/12
to scmrtos-ru
Добрый день всем.

Недавно Антоха предложил небольшую оптимизацию порта для Cortex-M3. Но
у этой оптимизации есть ограничение. В коде присутствует относительный
переход (+-1MB) на функцию os_context_switch_hook.

В силу того, что объем памяти в новых микроконтроллерах растет быстро,
есть опасность, что в будущем, оптимизированный код порта может
"сломаться". Поэтому было решено дать юзеру возможность выбрать
вариант порта - оптимизированный (но с ограничением) или универсальный
(но более медленный).

Для этого определяется макрос:
// PendSVC_ISR optimization:
// 0 - use near (+- 1Mb) call for os_context_switch_hook (the
fastest)
// 1 - use far call (slower)
//
#define scmRTOS_CONTEXT_SWITCH_HOOK_IS_FAR 0

и далее условная компиляция.

Но у нас возникли разногласия в каком месте разместить
конфигурационный макрос.
Антоха считает, что его надо разместить в scmRTOS_CONFIG.h. Я считаю,
что его надо разместить в в scmRTOS_TARGET_CFG.h.
Т.к. нас двое и мнения разделились, то прошу членов группы высказать
свое мнение по данной ситуации.

P.S.
Небольшой фрагмент переписки.
Андрей> Нормально, но почему в scmRTOS_CONFIG.h, а не в
scmRTOS_TARGET_CFG.h

Антоха>Потому что это конфигурация проекта, а не таргета. Мне
показалось, что там будет правильнее.

Андрей>:) А мне кажется с точностью до наоборот. Это конфигурация
порта, а не проекта и не ядра scmRTOS.

Антоха>Ну вот смотри, что написано в мануале:
------
scmRTOS_CONFIG.h содержит большинство конфигурационных макросов,
задающих такие параметры, как количество процессов в программе, способ
передачи управления, включение функции системного времени, разрешение
использования пользовательских хуков, порядок нумерации значений
приоритетов и т. д.
В scmRTOS_TARGET_CFG.h размещён код управления ресурсами целевого
процессора, выбранными для реализации системных функций - всё тот же
системный таймер, прерывание переключения контекстов.
-------
То есть, в scmRTOS_CONFIG.h - конфигурационные макросы, а в
scmRTOS_TARGET_CFG.h - код. Имхо, scmRTOS_CONTEXT_SWITCH_HOOK_IS_FAR -
это как раз и есть конфигурационный макрос, разве нет? :)

Андрей>Но scmRTOS_TARGET_CFG.h имеет суффикс CFG, т.е. некоторое
конфигурирование порта вполне допускается. Например, там есть макросы
для конфигурации периода системного таймера.


Harry Zhurov

unread,
Jun 20, 2012, 3:51:12 AM6/20/12
to scmrt...@googlegroups.com
Greeting Andrey!
You wrote on Wed, 6 Jun 2012 19:41:17 -0700 (PDT)

Прошу прощения, давно почту не читал, только что заметил письмо.

AC> Недавно Антоха предложил небольшую оптимизацию порта для Cortex-M3. Но
AC> у этой оптимизации есть ограничение. В коде присутствует относительный
AC> переход (+-1MB) на функцию os_context_switch_hook.

[...]

AC> Но у нас возникли разногласия в каком месте разместить
AC> конфигурационный макрос.
AC> Антоха считает, что его надо разместить в scmRTOS_CONFIG.h. Я считаю,
AC> что его надо разместить в в scmRTOS_TARGET_CFG.h.
AC> Т.к. нас двое и мнения разделились, то прошу членов группы высказать
AC> свое мнение по данной ситуации.

Мне сложно судить тут об этом. Но поскольку оба эти файлы - уровень проекта, то, имхо, не очень важно, где именно будет размещён данный макрос. Пользователь вообще может его разместить в любом файле проекта, соблюдая требование, чтобы макрос был определён в момент его анализа. Т.е. даже вариант передачи его в командной строке через ключ -D будет работоспособным (т.е. можно указывать эту опцию можно вообще не в сорцах на в сборочном скрипте).

Субъективно, данная опция зависит, как я понимаю, от конкретного процессора, а не от порта - порт на всех СМ3 один и тот же. А процессор - это опция проекта. Вроде так по логике получается.

--
H.Z.

### Первый брак часто оказывается неудачным потому, что женщина торопится в него вступить, а торопится она потому, что хочет успеть вступить во второй брак, если первый окажется неудачным.

Harry Zhurov

unread,
Dec 11, 2012, 7:48:05 PM12/11/12
to scmrt...@googlegroups.com
Greeting All!

Тут письмецо пришло с sf.net на тему сабжа, суть (кратко) в том, что проекты на sf.net переводят на новую платформу и в связи с этим предлагают администраторам проектов проапргейдить свои проекты. Страшного, как я понимаю, ничего нет, единственное, что меня напрягло:

"Note that the URLs used to access your code repositories will change, and an email will be sent to all project developers with the new URLs after the upgrade is complete."

Т.е. нужно будет делать релокацию репозитория. В общем, довожу до сведения. Не знаю, как поступить. Вроде, особой альтернативы не предлагается - всё равно рано или поздно этот апгрейд проводить придётся, но необходимость руками делать релокацию в эн местах всем, кто юзает репозиторий как-то не очень нравится. Поэтому пока давить на кнопку Upgrade не стал.

Кто что думает?

--
H.Z.

### Hard disk error: (A)bort (R)etry (P)anic

Anton Gusev

unread,
Dec 11, 2012, 10:51:04 PM12/11/12
to scmrt...@googlegroups.com
Hi, Harry Zhurov!
You wrote on 12.12.2012 6:48

> Кто что думает?

Думаю, что деваться некуда, надо переходить.
Вроде как сейчас особой активности не наблюдается, так что должно пройти
более-менее безболезненно.
Давай на всякий случай выждем недельку, - и перейдём.



Oleksandr Redchuk

unread,
Dec 12, 2012, 4:15:46 AM12/12/12
to scmrtos-ru
2012/12/12 Anton Gusev <anto...@mail.ru>:

> Вроде как сейчас особой активности не наблюдается, так что должно пройти
> более-менее безболезненно.

Согласен, сейчас как раз "не на переправе".

--
wbr,
ReAl

Harry Zhurov

unread,
Dec 17, 2012, 5:44:58 AM12/17/12
to scmrt...@googlegroups.com
Greeting Anton!
You wrote on Wed, 12 Dec 2012 09:51:04 +0600

>> Кто что думает?

AG> Думаю, что деваться некуда, надо переходить.
AG> Вроде как сейчас особой активности не наблюдается, так что должно пройти
AG> более-менее безболезненно.
AG> Давай на всякий случай выждем недельку, - и перейдём.

Заметал апгрейд. Внешне никаких особых изменений по работе с репом не заметил - если сделать checkout, то путь к репу будет новый, но уже имеющаяся РК тоже работает исправно. Видимо, они там как-то трансляцию делают на ходу. Есть мнение (Сергей Пинигин), что если такая конвертация имеет место, то долго она жить не будет.

--
H.Z.

### Рассол - напиток завтрашнего дня!

Anton Gusev

unread,
Dec 17, 2012, 6:08:00 AM12/17/12
to scmrt...@googlegroups.com
Hi, Harry Zhurov!
You wrote on 17.12.2012 16:44

> Внешне никаких особых изменений по работе с репом не заметил

Что-то у меня не вышло сделать чекаут по https без авторизации. Если они
выпилили анонимный доступ к svn через http - это будет очень фигово.


Oleksandr Redchuk

unread,
Dec 17, 2012, 6:58:39 AM12/17/12
to scmrtos-ru
2012/12/17 Harry Zhurov <h...@oesd.ru>:

> Видимо, они там как-то трансляцию делают на ходу. Есть мнение (Сергей Пинигин),
> что если такая конвертация имеет место, то долго она жить не будет.

Т.е., "жевательно" в ближайшее время relocate сделать.

--
wbr,
ReAl

Harry Zhurov

unread,
Dec 17, 2012, 7:16:51 AM12/17/12
to scmrt...@googlegroups.com
Greeting Oleksandr!
You wrote on Mon, 17 Dec 2012 13:58:39 +0200

>> Видимо, они там как-то трансляцию делают на ходу. Есть мнение (Сергей
>> Пинигин), что если такая конвертация имеет место, то долго она жить не
>> будет.

OR> Т.е., "жевательно" в ближайшее время relocate сделать.

Вот письмо только что пришло:

"Your cloned repository code in project scmrtos is now ready for use.

Old repository url: http://scmrtos.svn.sourceforge.net/svnroot/scmrtos

New repository checkout command: svn checkout --username=harry_zhurov svn+ssh://harry_...@svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code

You and any other developers should do a fresh checkout using the new repository location."

Ясно, что для других пользователей именной доступ будет со своим именем.

--
H.Z.

### Почему "раздельно" пишется в одно слово, в то время как "в одно слово" пишется раздельно?

Harry Zhurov

unread,
Dec 17, 2012, 7:15:08 AM12/17/12
to scmrt...@googlegroups.com
Greeting Anton!
You wrote on Mon, 17 Dec 2012 17:08:00 +0600

>> Внешне никаких особых изменений по работе с репом не заметил

AG> Что-то у меня не вышло сделать чекаут по https без авторизации. Если они
AG> выпилили анонимный доступ к svn через http - это будет очень фигово.

Я так понял, что там есть разные уровни доступа.

Для RO: svn checkout svn://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code

А RW и HTTPS - они по авторизации. А зачем по HTTPS для чтения?

--
H.Z.

### Ну, выпил стакан, ну два, ну бутылку, две, но зачем же так нажираться?!

Harry Zhurov

unread,
Dec 17, 2012, 7:40:14 AM12/17/12
to scmrt...@googlegroups.com
Greeting Oleksandr!
You wrote on Mon, 17 Dec 2012 13:58:39 +0200


OR> Т.е., "жевательно" в ближайшее время relocate сделать.

Вдогонку. Сделал чекаут по https:


svn checkout --username=harry_zhurov https://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code

Получил реп со следующим url:

https://svn.code.sf.net/p/scmrtos/code


Ну, и там уже от него по разделам - например: https://svn.code.sf.net/p/scmrtos/code/trunk


--
H.Z.

### Сбор в 10 часов. У кого часы электронные - в 1000.

Sergey Pinigin

unread,
Dec 17, 2012, 8:41:19 AM12/17/12
to Harry Zhurov
Здравствуйте.

AG>> Что-то у меня не вышло сделать чекаут по https без авторизации. Если они
AG>> выпилили анонимный доступ к svn через http - это будет очень фигово.

> Я так понял, что там есть разные уровни доступа.

> Для RO: svn checkout svn://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code

> А RW и HTTPS - они по авторизации. А зачем по HTTPS для чтения?

В качестве резюме - нужно использовать тот адрес и схему доступа,
которые обозначены на самом ресурсе, сейчас это отображается на
странице http://sourceforge.net/p/scmrtos/code/

Список доступных для пользователя вариантов зависят от прав доступа к проекту.

Старые адреса и схемы доступа могут какое-то время работать, но они в
любой момент могут быть "прикрыты". Посему лучше использовать
актуальные явки, чтобы потом не ломать голову почему перестало
работать.

--
С уважением,
Sergei Pinigin

Anton Gusev

unread,
Dec 17, 2012, 10:56:13 PM12/17/12
to scmrt...@googlegroups.com
Hi, Harry Zhurov!
You wrote on 17.12.2012 18:15

> AG> Что-то у меня не вышло сделать чекаут по https без авторизации. Если они
> AG> выпилили анонимный доступ к svn через http - это будет очень фигово.
>
> Я так понял, что там есть разные уровни доступа.

Я тоже понял, что они там есть:) Раньше тоже были, но различались не на
уровне протоколов.

> Для RO: svn checkout svn://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code
>
> А RW и HTTPS - они по авторизации. А зачем по HTTPS для чтения?

Ну пусть не https, пусть http бы оставили. Далеко не у всех svn разрешён
наружу. Короче, зачем-то убрали, а зачем - непонятно. Неприятно.
(У меня конечно есть предположение, зачем это сделали: чтобы побольше
народу зарегистрировать. Но если это так, то оно совсем не красит sf..)

Anton Gusev

unread,
Dec 18, 2012, 2:29:32 AM12/18/12
to scmrt...@googlegroups.com
Hi, Anton Gusev!
You wrote on 18.12.2012 9:56

> Ну пусть не https, пусть http бы оставили.

Гы. Оказывается, оставили:) Проверил - по http есть анонимный доступ.
Нормуль.


Harry Zhurov

unread,
Dec 18, 2012, 4:48:46 AM12/18/12
to scmrt...@googlegroups.com
Greeting Anton!
You wrote on Tue, 18 Dec 2012 13:29:32 +0600

>> Ну пусть не https, пусть http бы оставили.

AG> Гы. Оказывается, оставили:) Проверил - по http есть анонимный доступ.
AG> Нормуль.

Дык,

HZ> Для RO: svn checkout svn://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code

это, вроде, оно и есть, т.е. такой чекаут и даст обычный доступ по http.

--
H.Z.

### Снимаю. Порчу.

Harry Zhurov

unread,
Dec 18, 2012, 5:08:22 AM12/18/12
to scmrt...@googlegroups.com
Greeting All!
You wrote on Tue, 18 Dec 2012 16:48:46 +0700

>>> Ну пусть не https, пусть http бы оставили.

AG>> Гы. Оказывается, оставили:) Проверил - по http есть анонимный доступ.
AG>> Нормуль.

HZ> Дык,

HZ>> Для RO: svn checkout svn://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code

HZ> это, вроде, оно и есть, т.е. такой чекаут и даст обычный доступ по http.

Не, прогнал, это будет, как и видно и ссылки, RO доступ по протоколу svn. А для простого http надо

svn checkout http://svn.code.sf.net/p/scmrtos/code/trunk scmrtos-code


--
H.Z.

### Макароны - ну, знаете тесто с дырочкой, как артиллерийский порох.

Anton Gusev

unread,
Jan 13, 2013, 6:45:45 AM1/13/13
to scmrt...@googlegroups.com
Hi, Harry Zhurov!
You wrote on 17.12.2012 16:44

> если сделать checkout, то путь к репу будет новый, но уже имеющаяся
> РК тоже работает исправно. Видимо, они там как-то трансляцию делают на
> ходу. Есть мнение (Сергей Пинигин), что если такая конвертация имеет
> место, то долго она жить не будет.

Я тут случайно провёл эксперимент. Залил правку в старый репозиторий
(выравнивание стека для порта ARM7). Так вот, уже несколько дней прошло,
а в новом репозитории эта правка так и не появилась. Выводы:
1. Это разные репозитории!
2. Синхронизация была однократной, больше не синхронизирует.
3. У кого ещё остались не переключёнными копии - срочно переключайте:)

ЗЫ. А веб-интерфейс корявый, в колонках Date, Author и Commit - данные
от каких-то древних версий.


Oleksandr Redchuk

unread,
Jan 13, 2013, 10:47:26 AM1/13/13
to scmrtos-ru
2013/1/13 Anton Gusev <anto...@mail.ru>


3. У кого ещё остались не переключёнными копии - срочно переключайте:)

Ой, я и забыл!

--
wbr,
ReAl

Oleksandr Redchuk

unread,
Jan 13, 2013, 11:14:47 AM1/13/13
to scmrtos-ru
Ругает оно меня. На svn switch --relocate говорит

svn: The repository at 'https://svn.code.sf.net/p/scmrtos/code/trunk' has uuid '25b526ac-3511-40f3-916a-959e9aa89f3e',
but the WC has 'caa8a3a7-c921-0410-bbf5-f1455b5e64be'

--
wbr,
ReAl

Anton Gusev

unread,
Jan 13, 2013, 10:45:35 PM1/13/13
to scmrt...@googlegroups.com
Hi, Oleksandr Redchuk!
You wrote on 13.01.2013 22:14
> svn: The repository at 'https://svn.code.sf.net/p/scmrtos/code/trunk'
> has uuid '25b526ac-3511-40f3-916a-959e9aa89f3e',
> but the WC has 'caa8a3a7-c921-0410-bbf5-f1455b5e64be'

Вот, это наверное как раз от того, что это разные репы. Или от того, что
в них теперь разные HEAD-ревизии. Я просто заново сделал checkout.
Осталось только убедиться, что нигде не забыл:)



Oleksandr Redchuk

unread,
Jan 14, 2013, 1:11:52 PM1/14/13
to scmrtos-ru
2013/1/14 Anton Gusev <anto...@mail.ru>


Я просто заново сделал checkout.

Да вот так и придётся. После чего внимательно проверить.

--
wbr,
ReAl
Reply all
Reply to author
Forward
0 new messages