Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-ноя-24 10:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: CC7A вопросы!
СообщениеДобавлено: 2011-сен-21 13:44 
Не в сети

Зарегистрирован: 2011-сен-21 13:13
Сообщения: 4
Доброго времени суток, возникли вопросы по использованию рекомендуемого вами компилятора:

1. При сдвиге на 8 16-разрядного целого, к прнимеру для выделения старшего байта, компилятор просто обнуляет регистры? вопрос снят, при повторной компиляции все оказалось нормально
2. создаю в памяти массив const uns16 table[1024] = {0,1,2,3,4,5...etc}, при просмотре сгенерированного ассемблерного кода видим:
DW 0x100
DW 0x302
DW 0x504
DW 0x706
DW 0x908
DW 0xB0A
DW 0xD0C
DW 0xF0E
DW 0x1110
DW 0x1312
DW 0x1514
DW 0x1716
DW 0x1918
DW 0x1B1A
DW 0x1D1C
DW 0x1F1E
DW 0x2120
DW 0x2322
DW 0x2524
DW 0x2726
DW 0x2928
DW 0x2B2A
DW 0x2D2C
DW 0x2F2E
DW 0x3130
DW 0x3332
DW 0x3534
DW 0x3736
DW 0x3938
DW 0x3B3A
DW 0x3D3C
DW 0x3F3E
DW 0x4140
DW 0x4342
..................
etc.
вопрос в каком формате храняться числа uns16 и применимы ли к ним битовые и логические операции, будут ли они корректны, потому как массива чисел 0x0000, 0x0001, 0x0002...etc я не увидел! более того я создаю константу на 1024 значения, а в ассемблерном файле вижу всего 511, да еще и блоки по 127 значений повторяются!!! WTF??

кстати, обнаружил тут файл main.err в котором присутствует запись: Warning[1] C:\COrrPR5\c\main.c 18 : Constant(s) are truncated - что это значит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CC7A вопросы!
СообщениеДобавлено: 2011-сен-21 15:39 
Не в сети

Зарегистрирован: 2011-сен-21 13:13
Сообщения: 4
еще вопрос в догонку:
почему нельзя создать указатель на массив указателей?
const uns16 *table[16] = {table0,table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15};

ругается:
38 C:\COrrPR5\c\main.c Initialized static and global RAM variables are not supported


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CC7A вопросы!
СообщениеДобавлено: 2011-сен-21 17:21 
Не в сети

Зарегистрирован: 2011-сен-21 13:13
Сообщения: 4
прогнал полученный код в Debug1886, похоже что выборка из массива table[i], где I=[0;1023], всегда возвращает одно и то же занчение... =( в чем подвох? компилятор не может корректно работать с массивами?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CC7A вопросы!
СообщениеДобавлено: 2011-сен-21 17:32 
Не в сети

Зарегистрирован: 2011-сен-21 13:13
Сообщения: 4
собрал вообще простенький тестовый проэкт:
#include <1886VE6.H>

const uns16 table[1024]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023};

void main(void)
{
volatile uns16 i,j;

for(i=0;i!=1024;i++)
{
j=table[i];
j>>=4;
j<<=4;
}
}

прогнал в Debug1886, теперь значения изменяются, но все равно остаются не корректными =(
возможно надо как то выравнивать таблицы в памяти?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CC7A вопросы!
СообщениеДобавлено: 2011-сен-21 19:16 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 2009-янв-20 10:05
Сообщения: 778
Jhon_S, уже все давным давно используют IDE1886. Debug1886 больше не поддерживается.

_________________
Правила форума!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CC7A вопросы!
СообщениеДобавлено: 2011-сен-27 11:46 
Не в сети

Зарегистрирован: 2009-май-25 15:07
Сообщения: 158
Откуда: АО "ПКК Миландр"
Jhon_S писал(а):
собрал вообще простенький тестовый проэкт:
Код:
const uns16 table[1024]={0,1,2,3,4,5,6,7,8,9,10,11,12,..............................1022,1023};
Восхищен Вашим трудолюбием...
Цитата:
возможно надо как то выравнивать таблицы в памяти?
Да, большие таблицы бывает необходимо выравнивать в памяти директивами #pragma codepage или #pragma origin.
Код:
    volatile uns16 i,j;
Это весьма оригинально. Однако volatile в данном компиляторе игнорируется, а для SFR действует по умолчанию. Возможно, в этом есть некоторые недостатки компилятора.
Для отладки программы возможно использование MPLAB c учетом некоторых особенностей наших контроллеров.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB