|
void const *argument, Что это? |
|
|
|
 |
Ответов
|
Jan 14 2014, 13:10
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jan 14 2014, 18:09
|

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

|
Цитата(Tarbal @ Jan 14 2014, 15:10)  Вот документ. Опустим тот факт, что это документ лохматого года, когда ИАР знал только 6 моделей AVR. Цитата(Tarbal @ Jan 14 2014, 15:10)  А здесь на странице 6 утверждают:CONST Holds variables declared as const Ненаказуемо. Цитата(Tarbal @ Jan 14 2014, 15:10)  ....... The CONST and CSTR should only be included in the XLINK file if there is an external PROM in the system. Я уже не помню, а копаться лень. Для доступа ко внешней ЕПРОМ и для доступа ко внутренней ОЗУ используются одинаковые команды на ассемблере? Если разные, то это может объяснить многое в декларации функции с константным параметром. Если повесите свою параллельную ПЗУ на внешнюю шину как память данных - команды будут одинаковые. Но опять же, это не компилятор положит во флеш, а вы запихнете ПЗУ в адресное пространство ОЗУ, этакое чесание левого уха правой ногой. Обе эти памяти будут находиться в одном адресном пространстве. Обратите внимание на свой же документ: Цитата 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. Также обратите внимание, что в этой таблице все константы, не имеющие спецификатора flash имеют сноску номер 2, которая гласит: Цитата The initialized information is copied from program to data memory at startup. This is done in the ?C_STARTUP function in CSTARTUP.S90. The application accesses the variable in the data space. The used program space is never accessed after startup is fulfilled Дальше будете спорить?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
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 demiurg_spb Цитата(Tarbal @ Jan 14 2014, 17:10) Вот д... Jan 14 2014, 15:42  Tarbal Цитата(demiurg_spb @ Jan 14 2014, 19:42) ... Jan 14 2014, 16:09   demiurg_spb Цитата(Tarbal @ Jan 14 2014, 20:09) Прост... Jan 14 2014, 16:34    Tarbal Цитата(demiurg_spb @ Jan 14 2014, 20:34) ... Jan 14 2014, 18:46     Сергей Борщ Цитата(Tarbal @ Jan 14 2014, 20:46) О ста... Jan 15 2014, 07:37 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|