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

 
 
> void const *argument, Что это?
ViKo
сообщение Jan 6 2014, 19:06
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



В Keil CMSIS-RTOS RTX в параметрах задач указано:
Код
void job1 (void const *arg)

Что это, зачем? Писал, не задумываясь. Теперь хочу просветиться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tarbal
сообщение Jan 14 2014, 13:10
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Вот документ.
На странице 5 есть информация о размещении констант в памяти.
http://netstorage.iar.com/SuppDB/Public/SU...memoryusage.pdf

Константы могут находиться в програмной памяти, оперативной памяти и внешней ЕПРОМ.

А здесь на странице 6 утверждают:
CONST Holds variables declared as const
.......
The CONST and CSTR should only be included in the XLINK file if there is an external
PROM in the system.

http://www.atmel.ca/Images/doc1079.pdf

Я уже не помню, а копаться лень. Для доступа ко внешней ЕПРОМ и для доступа ко внутренней ОЗУ используются одинаковые команды на ассемблере? Если разные, то это может объяснить многое в декларации функции с константным параметром.

Примечание: Я прекрасно знаю стандартное объяснение константного указателя как параметра функции, однако это всем известно. Разные способы адресации же это довольно неочевидное свойство.


Сообщение отредактировал Tarbal - Jan 14 2014, 13:38
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 14 2014, 15:42
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Tarbal @ Jan 14 2014, 17:10) *
Вот документ.
А теперь замените iar на avr-gcc...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 14 2014, 16:09
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(demiurg_spb @ Jan 14 2014, 19:42) *
А теперь замените iar на avr-gcc...


Простите, что вы имели ввиду?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 14 2014, 16:34
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Tarbal @ Jan 14 2014, 20:09) *
Простите, что вы имели ввиду?
К тому что ваши ссылки, как собственно и измышления, исключительно для IAR. Но ведь есть и другие, более распространённые компиляторы, где const не гарантирует размещения данных в ПЗУ, что никак не противоречит стандарту. Об этом вам Сергей пытался намекнуть...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 14 2014, 18:46
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(demiurg_spb @ Jan 14 2014, 20:34) *
К тому что ваши ссылки, как собственно и измышления, исключительно для IAR. Но ведь есть и другие, более распространённые компиляторы, где const не гарантирует размещения данных в ПЗУ, что никак не противоречит стандарту. Об этом вам Сергей пытался намекнуть...


Я допускаю, что вы невнимательно читали то что я писал. Опять же ваши замечания о GCC мимо кассы, поскольку стартовый постинг был про Кейл.
О стандарте: Сколько я знаю компиляторов, у каждого есть свои особенности.

Цитата(Сергей Борщ @ Jan 14 2014, 22:09) *
Если повесите свою параллельную ПЗУ на внешнюю шину как память данных - команды будут одинаковые. Но опять же, это не компилятор положит во флеш, а вы запихнете ПЗУ в адресное пространство ОЗУ, этакое чесание левого уха правой ногой. Обе эти памяти будут находиться в одном адресном пространстве.


Я это допускал, поэтому в предпоследнем постинге и написал:
"Я уже не помню, а копаться лень. Для доступа ко внешней ЕПРОМ и для доступа ко внутренней ОЗУ используются одинаковые команды на ассемблере? Если разные, то это может объяснить многое в декларации функции с константным параметром."

Цитата(Сергей Борщ @ Jan 14 2014, 22:09) *
Обратите внимание на свой же документ:
Table comments:
(*) Each combination of processor option and memory model has a default memory type, and also one or more additionally available memory types. All constant and variable data which are put into the segments CCSTR, ECSTR, CSTR, CONST and CSTACK are always implicitly belonging to the default memory type.

Мне это ничего не говорит в контексте нашей дискуссии.

Цитата(Сергей Борщ @ Jan 14 2014, 22:09) *
Дальше будете спорить?

Я не спорю, а ищу ответы.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   void const *argument   Jan 6 2014, 19:06
- - megajohn   ну к примеру у вас на контроллере два UART и в од...   Jan 6 2014, 19:57
|- - ViKo   Цитата(megajohn @ Jan 6 2014, 22:57) то е...   Jan 6 2014, 20:35
- - kosyak©   Вот зачем оно конст...?   Jan 6 2014, 20:14
|- - megajohn   если оно будет на стеке, то по моменту запуска сам...   Jan 6 2014, 20:18
- - kosyak©   тогда уж task_start( mb_task, ..., (void const*)...   Jan 6 2014, 20:40
- - GetSmart   Вообще-то компилятор должен "съедать" эт...   Jan 6 2014, 23:38
|- - ViKo   Цитата(GetSmart @ Jan 7 2014, 02:38) Кака...   Jan 7 2014, 08:50
||- - GetSmart   Цитата(ViKo @ Jan 7 2014, 14:50) Возможно...   Jan 7 2014, 10:08
|||- - ViKo   Цитата(GetSmart @ Jan 7 2014, 13:08) Чем ...   Jan 7 2014, 10:18
|||- - GetSmart   Цитата(ViKo @ Jan 7 2014, 16:18) Led9_id ...   Jan 7 2014, 10:38
||||- - ViKo   Цитата(GetSmart @ Jan 7 2014, 13:29) Пред...   Jan 7 2014, 10:42
|||- - GetSmart   Цитата(ViKo @ Jan 7 2014, 16:18) Тем, что...   Jan 8 2014, 06:38
|||- - ViKo   Цитата(GetSmart @ Jan 8 2014, 09:38) А (v...   Jan 8 2014, 09:21
|||- - Сергей Борщ   Цитата(ViKo @ Jan 8 2014, 11:21) Мое мнен...   Jan 8 2014, 10:51
|||- - GetSmart   Цитата(ViKo @ Jan 8 2014, 15:21) Проверьт...   Jan 8 2014, 10:56
|||- - ViKo   Цитата(GetSmart @ Jan 8 2014, 13:56) Кейл...   Jan 8 2014, 11:10
|||- - Сергей Борщ   Цитата(ViKo @ Jan 8 2014, 13:10) На uin...   Jan 8 2014, 18:11
|||- - ViKo   Цитата(Сергей Борщ @ Jan 8 2014, 21:11) Е...   Jan 8 2014, 18:30
|||- - Сергей Борщ   Цитата(ViKo @ Jan 8 2014, 20:30) Почему ж...   Jan 9 2014, 01:29
||- - GetSmart   Цитата(ViKo @ Jan 7 2014, 14:50) В C можн...   Jan 10 2014, 11:45
||- - ViKo   Цитата(GetSmart @ Jan 10 2014, 14:45) Ну ...   Jan 10 2014, 11:59
||- - GetSmart   Цитата(ViKo @ Jan 10 2014, 17:59) Как это...   Jan 10 2014, 12:07
||- - ViKo   Цитата(GetSmart @ Jan 10 2014, 15:07) Ещё...   Jan 10 2014, 14:13
|- - megajohn   Цитата(GetSmart @ Jan 7 2014, 03:38) Квал...   Jan 7 2014, 10:20
- - Tarbal   В процессорах с Гарвардской архитектурой AVR, PIC,...   Jan 9 2014, 02:47
|- - Сергей Борщ   Цитата(Tarbal @ Jan 9 2014, 04:47) В проц...   Jan 9 2014, 07:28
||- - Herz   Цитата(Сергей Борщ @ Jan 9 2014, 09:28) А...   Jan 9 2014, 08:11
|||- - Сергей Борщ   Цитата(Herz @ Jan 9 2014, 10:11) А каким ...   Jan 9 2014, 12:19
|||- - ViKo   Цитата(Сергей Борщ @ Jan 9 2014, 15:19) Я...   Jan 9 2014, 12:24
|||- - Сергей Борщ   Цитата(ViKo @ Jan 9 2014, 14:24) Да, с ло...   Jan 9 2014, 12:44
||- - ViKo   Цитата(Сергей Борщ @ Jan 9 2014, 10:28) А...   Jan 9 2014, 08:16
||- - Tarbal   Цитата(Сергей Борщ @ Jan 9 2014, 10:28) Н...   Jan 9 2014, 18:55
|- - GetSmart   Цитата(Tarbal @ Jan 9 2014, 08:47) В проц...   Jan 10 2014, 19:22
- - andrewlekar   При чём тут static вообще? На ARMах const в опреде...   Jan 9 2014, 10:17
- - XVR   Использование ключевых слов static и/или const для...   Jan 9 2014, 10:20
|- - ViKo   Цитата(XVR @ Jan 9 2014, 13:20) Поэтом, п...   Jan 9 2014, 10:36
- - andrewlekar   Цитатадля каких именно компиляторов Ни для каких. ...   Jan 9 2014, 10:27
- - andrewlekar   Что, вашему компилятору не хватает ума разместить ...   Jan 9 2014, 10:40
- - andrewlekar   Что вы этим гениальным кодом хотите проверить? В c...   Jan 10 2014, 05:29
|- - Tarbal   Цитата(andrewlekar @ Jan 10 2014, 08:29) ...   Jan 10 2014, 14:22
- - редактор   Цитатато надо было указать квалификатор __flash. О...   Jan 10 2014, 08:04
|- - andrew_b   Цитата(редактор @ Jan 10 2014, 12:04) con...   Jan 10 2014, 08:54
- - ViKo   Удостоверился в Кейл для глобальных переменных: - ...   Jan 10 2014, 09:45
|- - Сергей Борщ   Цитата(ViKo @ Jan 10 2014, 11:45) Удостов...   Jan 10 2014, 11:05
- - andrewlekar   ЦитатаУ кого есть IAR AVR? ЦитатаДля процессора с ...   Jan 10 2014, 17:30
|- - Tarbal   Цитата(andrewlekar @ Jan 10 2014, 21:30) ...   Jan 10 2014, 22:35
- - andrewlekar   ЦитатаНичего не понял. Может попробуете еще раз вы...   Jan 11 2014, 06:32
|- - Tarbal   Цитата(andrewlekar @ Jan 11 2014, 10:32) ...   Jan 11 2014, 18:22
|- - Сергей Борщ   Цитата(Tarbal @ Jan 11 2014, 20:22) Я вам...   Jan 11 2014, 19:33
|- - Tarbal   Цитата(Сергей Борщ @ Jan 11 2014, 22:33) ...   Jan 13 2014, 12:28
||- - Сергей Борщ   Цитата(Tarbal @ Jan 14 2014, 20:46) О ста...   Jan 15 2014, 07:37
|- - Сергей Борщ   Цитата(Tarbal @ Jan 14 2014, 15:10) Вот д...   Jan 14 2014, 18:09
- - andrewlekar   Ну вот я собрал ваш код при помощи IAR AVR 5.3. Во...   Jan 15 2014, 04:53
|- - Tarbal   Цитата(andrewlekar @ Jan 15 2014, 08:53) ...   Jan 15 2014, 13:13
|- - Сергей Борщ   Цитата(Tarbal @ Jan 15 2014, 15:13) И как...   Jan 15 2014, 15:23
- - dxp   Очень плотно использовал IAR для AVR в конце девян...   Jan 15 2014, 13:49
- - Tarbal   Цитата(dxp @ Jan 15 2014, 17:49) Очень пл...   Jan 16 2014, 23:40


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

 


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


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