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

 
 
> __LDREX __STREX в STM32F407
_lexa_
сообщение Jun 4 2017, 13:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 23-03-15
Пользователь №: 85 852



Всем доброе время суток!

IDE - IAR+плагин IAR для eclipse+eclipse.
Решил проверить, как работает синхронизация с использованием __LDREX/__STREX. Пишем следующий код
CODE
typedef struct
{
...
volatile unsigned long sync; //переменная для синхонизации доступа к данному элементу
} burst_measur;

burst_measur cur_mes;

void mpu_cfg_test()
{
//настраиваем область внутренней RAM, как разделяемую
__DMB();
SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk;
MPU->CTRL = 0U;

MPU->RNR = 0UL;
MPU->RBAR = 0x20000000UL;
MPU->RASR = (0x10UL << MPU_RASR_SIZE_Pos) | MPU_RASR_C_Msk | MPU_RASR_S_Msk | (0x3 << MPU_RASR_AP_Pos) | MPU_RASR_ENABLE_Msk;

MPU->CTRL = MPU_CTRL_PRIVDEFENA_Msk | MPU_CTRL_ENABLE_Msk;
SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;
__DSB();
__ISB();

//выполняем запрос эксклюзивного доступа к переменной cur_mes.sync
DWORD sync=0;
sync = __LDREX(&cur_mes.sync);
__DMB();
soft_int_ini(); //настойка программного прерывания
soft_int_on(); //вызов программного прерывания
__WFI();
}


в обработчике программного прерывания:
CODE
DWORD sync;
do
{
sync = __LDREX(&cur_mes.sync);
sync++;
sync = __STREX(sync, &cur_mes.sync);
}
while (sync);


Т.е. сначала выполняется __LDREX(&cur_mes.sync), потом происходит прерывание и выполняется __LDREX(&cur_mes.sync) + __STREX(sync, &cur_mes.sync).
По всем документациям, как я их понял, __STREX(sync, &cur_mes.sync) должна возвратить "не ноль", однако возвращает "ноль".

Помогите, пожалуйста, разобраться, что я делаю не правильно?

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _lexa_   __LDREX __STREX в STM32F407   Jun 4 2017, 13:18
- - jcxz   Цитата(_lexa_ @ Jun 4 2017, 15:18) что я ...   Jun 4 2017, 17:10
|- - _lexa_   Цитата(jcxz @ Jun 4 2017, 17:10) STREX вс...   Jun 4 2017, 18:39
|- - KnightIgor   Цитата(_lexa_ @ Jun 4 2017, 19:39) Где-то...   Jun 4 2017, 19:34
||- - _lexa_   Цитата(KnightIgor @ Jun 4 2017, 19:34) .....   Jun 4 2017, 20:14
||- - KnightIgor   Цитата(_lexa_ @ Jun 4 2017, 21:14) Интере...   Jun 4 2017, 21:14
||- - AHTOXA   Цитата(KnightIgor @ Jun 5 2017, 02:14) Бл...   Jun 5 2017, 05:38
||- - Forger   Цитата(AHTOXA @ Jun 5 2017, 08:38) А в чё...   Jun 5 2017, 08:17
|||- - AHTOXA   Цитата(Forger @ Jun 5 2017, 13:17) Полага...   Jun 5 2017, 08:22
||||- - Forger   Цитата(AHTOXA @ Jun 5 2017, 11:22) Если, ...   Jun 5 2017, 08:24
||||- - AHTOXA   Цитата(Forger @ Jun 5 2017, 13:24) Почему...   Jun 5 2017, 08:54
|||- - jcxz   Цитата(Forger @ Jun 5 2017, 10:17) Полага...   Jun 5 2017, 08:49
|||- - Forger   Цитата(jcxz @ Jun 5 2017, 11:49) Так обра...   Jun 5 2017, 09:11
|||- - jcxz   Цитата(Forger @ Jun 5 2017, 11:11) Как ра...   Jun 5 2017, 09:37
|||- - Forger   Цитата(jcxz @ Jun 5 2017, 12:37) Вот имен...   Jun 5 2017, 09:49
|||- - jcxz   Цитата(Forger @ Jun 5 2017, 11:49) Выходи...   Jun 5 2017, 10:59
|||- - Forger   Цитата(jcxz @ Jun 5 2017, 13:50) Надо тол...   Jun 5 2017, 11:00
||||- - jcxz   Цитата(Forger @ Jun 5 2017, 13:00) Не пон...   Jun 5 2017, 11:09
||||- - Forger   Цитата(jcxz @ Jun 5 2017, 14:09) Так как ...   Jun 5 2017, 11:18
||||- - Forger   Попался полезный документ по теме: http://infocent...   Jun 5 2017, 12:22
|||||- - _lexa_   Цитата(Forger @ Jun 5 2017, 12:22) Попалс...   Jun 5 2017, 13:55
||||- - jcxz   Цитата(Forger @ Jun 5 2017, 13:18) Речь к...   Jun 5 2017, 13:47
|||- - _lexa_   Цитата(jcxz @ Jun 5 2017, 10:59) А что та...   Jun 5 2017, 13:26
|||- - AHTOXA   Цитата(_lexa_ @ Jun 5 2017, 18:26) В тако...   Jun 5 2017, 13:51
|||- - jcxz   Цитата(_lexa_ @ Jun 5 2017, 15:26) ...   Jun 5 2017, 14:21
|||- - scifi   Цитата(jcxz @ Jun 5 2017, 17:21) Изучать ...   Jun 5 2017, 14:31
||||- - AVI-crak   Начали за упокой, кончили за здравие. Как уже был...   Jun 5 2017, 17:37
||||- - jcxz   Цитата(AVI-crak @ Jun 5 2017, 19:37)...   Jun 5 2017, 21:35
||||- - _lexa_   Цитата(jcxz @ Jun 5 2017, 21:35) Похоже В...   Jun 5 2017, 23:19
||||- - AVI-crak   Цитата(jcxz @ Jun 6 2017, 03:35) Монитор ...   Jun 6 2017, 07:24
|||||- - jcxz   Цитата(AVI-crak @ Jun 6 2017, 09:24)...   Jun 6 2017, 08:20
|||||- - _lexa_   Цитата(jcxz @ Jun 6 2017, 08:20) Открывае...   Jun 6 2017, 20:56
|||||- - Alechek   Цитата(jcxz @ Jun 6 2017, 13:20) Фантазии...   Jun 7 2017, 08:31
|||||- - jcxz   Цитата(Alechek @ Jun 7 2017, 10:31) Опять...   Jun 7 2017, 08:56
||||- - KnightIgor   Цитата(jcxz @ Jun 5 2017, 22:35) Ну навер...   Jun 6 2017, 10:22
||||- - AVI-crak   Цитата(jcxz @ Jun 6 2017, 14:20) 1. зачем...   Jun 6 2017, 11:02
|||||- - KnightIgor   Цитата(AVI-crak @ Jun 6 2017, 12:02)...   Jun 6 2017, 20:34
|||||- - jcxz   Цитата(KnightIgor @ Jun 6 2017, 22:34) Ра...   Jun 6 2017, 21:36
|||||- - LightElf   QUOTE (jcxz @ Jun 7 2017, 00:36) Я писал ...   Jun 7 2017, 11:52
|||||- - Forger   Цитата(LightElf @ Jun 7 2017, 14:52) А пр...   Jun 7 2017, 12:39
|||||- - jcxz   Цитата(Forger @ Jun 7 2017, 14:39) Причем...   Jun 7 2017, 13:13
|||||- - Forger   Цитата(jcxz @ Jun 7 2017, 16:13) чтобы, е...   Jun 7 2017, 13:27
||||- - jcxz   Цитата(KnightIgor @ Jun 6 2017, 12:22) То...   Jun 6 2017, 12:08
|||- - _lexa_   Цитата(jcxz @ Jun 5 2017, 14:21) Видимо э...   Jun 5 2017, 17:40
|||- - AVI-crak   Цитата(_lexa_ @ Jun 5 2017, 23:40) Спасиб...   Jun 5 2017, 18:00
|||- - _lexa_   Цитата(AVI-crak @ Jun 5 2017, 18:00)...   Jun 5 2017, 19:28
||- - KnightIgor   Цитата(AHTOXA @ Jun 5 2017, 06:38) А в чё...   Jun 5 2017, 12:40
||- - jcxz   Цитата(KnightIgor @ Jun 5 2017, 14:40) Ес...   Jun 5 2017, 13:57
|||- - KnightIgor   Цитата(jcxz @ Jun 5 2017, 14:57) У меня ...   Jun 5 2017, 19:42
||- - AHTOXA   Цитата(KnightIgor @ Jun 5 2017, 17:40) Ка...   Jun 5 2017, 13:58
|- - jcxz   Цитата(_lexa_ @ Jun 4 2017, 20:39) Где-то...   Jun 5 2017, 07:49
|- - _lexa_   Цитата(jcxz @ Jun 5 2017, 07:49) Если меж...   Jun 5 2017, 10:17
|- - Alechek   ЦитатаНе тот мануал открываете Ну почему же не тот...   Jun 7 2017, 09:18
|- - jcxz   Цитата(Alechek @ Jun 7 2017, 11:18) Про у...   Jun 7 2017, 09:29
|- - Alechek   Цитата(jcxz @ Jun 7 2017, 14:29) В смысле...   Jun 7 2017, 10:21
|- - scifi   Цитата(Alechek @ Jun 7 2017, 13:21) В смы...   Jun 7 2017, 10:27
|- - jcxz   Цитата(Alechek @ Jun 7 2017, 12:21) В смы...   Jun 7 2017, 11:23
- - Alechek   Цитата(scifi @ Jun 7 2017, 15:27) Это наз...   Jun 7 2017, 12:22
|- - scifi   Цитата(Alechek @ Jun 7 2017, 15:22) Сдела...   Jun 7 2017, 12:50
|- - AHTOXA   Цитата(Alechek @ Jun 7 2017, 17:22) А поп...   Jun 7 2017, 13:30
- - Alechek   AHTOXA, спасибо, ознакомился. Но, опять противореч...   Jun 8 2017, 05:01
|- - jcxz   Цитата(Alechek @ Jun 8 2017, 07:01) - LDR...   Jun 8 2017, 06:17
|- - AHTOXA   Цитата(Alechek @ Jun 8 2017, 10:01) - LDR...   Jun 8 2017, 06:21
|- - LightElf   QUOTE (AHTOXA @ Jun 8 2017, 09:21) Именно...   Jun 8 2017, 13:44
|- - AHTOXA   Цитата(LightElf @ Jun 8 2017, 18:44) Есть...   Jun 8 2017, 14:52
- - Alechek   Цитата(jcxz @ Jun 8 2017, 11:17) И правил...   Jun 8 2017, 11:54
- - AVI-crak   Проверять нужно кодом на асме, чтобы gcc не наопти...   Jun 8 2017, 13:21
|- - jcxz   Цитата(AVI-crak @ Jun 8 2017, 15:21)...   Jun 8 2017, 20:32
|- - Forger   Коли SVC синхронное и его не получиться использова...   Jun 9 2017, 07:50
|- - jcxz   Цитата(Forger @ Jun 9 2017, 09:50) зы. Пр...   Jun 9 2017, 10:33
|- - Forger   Цитата(jcxz @ Jun 9 2017, 13:33) PendSV н...   Jun 9 2017, 10:58
|- - Шаманъ   Цитата(Forger @ Jun 9 2017, 13:58) как сд...   Jun 9 2017, 13:02
|- - Forger   Цитата(Шаманъ @ Jun 9 2017, 16:02) Очеред...   Jun 9 2017, 13:20
|- - Шаманъ   Цитата(Forger @ Jun 9 2017, 16:20) хочетс...   Jun 9 2017, 14:14
||- - Forger   Цитата(Шаманъ @ Jun 9 2017, 17:14) Интере...   Jun 9 2017, 14:30
||- - Шаманъ   Цитата(Forger @ Jun 9 2017, 17:30) При че...   Jun 9 2017, 15:40
||- - Forger   Цитата(Шаманъ @ Jun 9 2017, 18:40) Это ка...   Jun 9 2017, 16:27
||- - Шаманъ   Цитата(Forger @ Jun 9 2017, 19:27) Я гово...   Jun 9 2017, 17:08
||- - Forger   Цитата(Шаманъ @ Jun 9 2017, 20:08) От же ...   Jun 9 2017, 17:23
||- - Шаманъ   Цитата(Forger @ Jun 9 2017, 20:23) Чтобы ...   Jun 9 2017, 17:40
|||- - Forger   Цитата(Шаманъ @ Jun 9 2017, 20:40) Если н...   Jun 9 2017, 17:48
|||- - Шаманъ   Цитата(Forger @ Jun 9 2017, 20:48) Не, эт...   Jun 9 2017, 17:56
|||- - Forger   Цитата(Шаманъ @ Jun 9 2017, 20:56) Конечн...   Jun 9 2017, 18:04
|||- - Шаманъ   Цитата(Forger @ Jun 9 2017, 21:04) И само...   Jun 9 2017, 18:54
|||- - jcxz   Цитата(Forger @ Jun 9 2017, 20:04) Я дела...   Jun 9 2017, 19:37
|||- - Forger   Цитата(jcxz @ Jun 9 2017, 22:31) Вот как ...   Jun 9 2017, 19:39
||||- - jcxz   Цитата(Forger @ Jun 9 2017, 21:39) Самое ...   Jun 9 2017, 20:27
|||- - Forger   Цитата(jcxz @ Jun 9 2017, 22:37) Допустим...   Jun 9 2017, 20:44
|||- - jcxz   Цитата(Forger @ Jun 9 2017, 22:44) Понима...   Jun 9 2017, 20:58
||||- - Forger   Цитата(jcxz @ Jun 9 2017, 23:58) К работе...   Jun 9 2017, 21:15
||||- - jcxz   Цитата(Forger @ Jun 9 2017, 23:15) Пусть ...   Jun 9 2017, 21:20
|||||- - Forger   Цитата(jcxz @ Jun 10 2017, 00:17) Ещё раз...   Jun 9 2017, 21:20
|||||- - Forger   Цитата(jcxz @ Jun 10 2017, 00:20) Да хоть...   Jun 9 2017, 21:27
||||- - jcxz   Цитата(Forger @ Jun 9 2017, 23:15) При че...   Jun 9 2017, 21:24
|||- - Forger   Кстати, при очистке очереди изменяются оба указате...   Jun 9 2017, 20:59
|||- - jcxz   Цитата(Forger @ Jun 9 2017, 22:59) Кстати...   Jun 9 2017, 21:10
||- - jcxz   Цитата(Forger @ Jun 9 2017, 19:23) А в фо...   Jun 9 2017, 19:18
||- - Forger   Цитата(jcxz @ Jun 9 2017, 22:12) И в фоно...   Jun 9 2017, 19:18
|- - AVI-crak   Защищённый режим: стек для потоков psp, стек для п...   Jun 9 2017, 14:38
- - AHTOXA   Цитата(Alechek @ Jun 8 2017, 16:54) Вобще...   Jun 8 2017, 13:39
2 страниц V   1 2 >


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:57
Рейтинг@Mail.ru


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