sierra 0 13 июля, 2013 Опубликовано 13 июля, 2013 · Жалоба Проблема такая: при прямой инициализации массива, длиной 256 long, на Си, CCS просто не записывает числа в память данных. Что делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба Что значит "не записывает CCS"? Вы заполняете массив через JTAG в отладчике? Или всё-таки - не записывает CPU в программе? Если 2-е - покажите сюда соответствующий участок листинга. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sierra 0 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба Что значит "не записывает CCS"? Вы заполняете массив через JTAG в отладчике? Или всё-таки - не записывает CPU в программе? Если 2-е - покажите сюда соответствующий участок листинга. вот код си: с самого начала. тело проги убрала потому что в начале уже если смотреть watch он отображает нули long ssss[256]= { 6588387, 19764913, 32940695, 46115236, 59288042, 72458615, 85626460, 98791081, 111951983, 125108670, 138260647, 151407418, 164548489, 177683365, 190811551, 203932553, 217045877, 230151030, 243247517, 256334847, 269412525, 282480061, 295536961, 308582734, 321616889, 334638936, 347648383, 360644742, 373627523, 386596237, 399550396, 412489512, 425413098, 438320667, 451211734, 464085813, 476942419, 489781069, 502601279, 515402566, 528184448, 540946445, 553688076, 566408860, 579108319, 591785976, 604441351, 617073970, 629683357, 642269036, 654830534, 667367379, 679879097, 692365218, 704825272, 717258790, 729665303, 742044345, 754395449, 766718151, 779011986, 791276492, 803511207, 815715670, 827889421, 840032003, 852142959, 864221832, 876268167, 888281511, 900261412, 912207419, 924119082, 935995952, 947837582, 959643527, 971413341, 983146583, 994842809, 1006501581, 1018122458, 1029705003, 1041248781, 1052753356, 1064218296, 1075643168, 1087027543, 1098370992, 1109673088, 1120933406, 1132151521, 1143327011, 1154459455, 1165548435, 1176593532, 1187594332, 1198550419, 1209461381, 1220326808, 1231146290, 1241919421, 1252645793, 1263325005, 1273956652, 1284540337, 1295075658, 1305562221, 1315999631, 1326387493, 1336725418, 1347013016, 1357249900, 1367435684, 1377569985, 1387652421, 1397682613, 1407660183, 1417584755, 1427455956, 1437273414, 1447036759, 1456745625, 1466399644, 1475998455, 1485541695, 1495029005, 1504460029, 1513834410, 1523151796, 1532411836, 1541614182, 1550758488, 1559844407, 1568871600, 1577839726, 1586748446, 1595597427, 1604386334, 1613114837, 1621782607, 1630389318, 1638934646, 1647418268, 1655839867, 1664199124, 1672495724, 1680729357, 1688899710, 1697006478, 1705049354, 1713028036, 1720942224, 1728791619, 1736575926, 1744294852, 1751948106, 1759535401, 1767056449, 1774510970, 1781898680, 1789219304, 1796472564, 1803658188, 1810775906, 1817825448, 1824806551, 1831718951, 1838562387, 1845336603, 1852041343, 1858676354, 1865241387, 1871736195, 1878160534, 1884514160, 1890796836, 1897008324, 1903148391, 1909216806, 1915213339, 1921137766, 1926989863, 1932769410, 1938476189, 1944109986, 1949670588, 1955157787, 1960571374, 1965911147, 1971176905, 1976368449, 1981485584, 1986528117, 1991495859, 1996388621, 2001206221, 2005948477, 2010615209, 2015206244, 2019721407, 2024160528, 2028523441, 2032809981, 2037019987, 2041153301, 2045209766, 2049189230, 2053091543, 2056916559, 2060664132, 2064334123, 2067926393, 2071440807, 2074877232, 2078235539, 2081515602, 2084717297, 2087840504, 2090885104, 2093850984, 2096738031, 2099546138, 2102275198, 2104925108, 2107495769, 2109987084, 2112398959, 2114731304, 2116984030, 2119157053, 2121250291, 2123263665, 2125197099, 2127050521, 2128823861, 2130517051, 2132130029, 2133662733, 2135115106, 2136487094, 2137778643, 2138989707, 2140120239, 2141170196, 2142139540, 2143028233, 2143836243, 2144563538, 2145210091, 2145775879, 2146260880, 2146665075, 2146988449, 2147230990, 2147392689, 2147473541 }; int aaa( long* inarray, int N, int ph, int fr, int ampl) { int cur_ph, fin_ph, n; ************* } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба ну значит всё-таки JTAG.... И похоже что у вас проблемы с загрузкой программы JTAG-ом в CPU. Либо в компиляции. Я же говорил - "листинг", а листинг - это не исходник :) Посмотрите по map-файлу куда у вас этот массив попадает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sierra 0 15 июля, 2013 Опубликовано 15 июля, 2013 · Жалоба ну значит всё-таки JTAG.... И похоже что у вас проблемы с загрузкой программы JTAG-ом в CPU. Либо в компиляции. Я же говорил - "листинг", а листинг - это не исходник :) Посмотрите по map-файлу куда у вас этот массив попадает по адресу 0xa0e, там отображаются нули листинг-это же код программы, не?))что тогда? .text, __text, ksu_singen: 0x0023C8: 4ef7 AADD #-9,SP 0x0023CA: ca0a MOV AR2,*SP(#05h) 0x0023CC: c908 MOV AR1,*SP(#04h) 0x0023CE: c506 MOV T1,*SP(#03h) 0x0023D0: c404 MOV T0,*SP(#02h) 0x0023D2: eb0085 MOV XAR0,dbl(*SP(#00h)) 0x0023D5: a906 MOV *SP(#03h),AR1 0x0023D7: c90e MOV AR1,*SP(#07h) 0x0023D9: e61000 MOV #0,*SP(#08h) 0x0023DC: aa10 MOV *SP(#08h),AR2 0x0023DE: a904 MOV *SP(#02h),AR1 0x0023E0: 12a890 CMP AR2 >= AR1, TC1 0x0023E3: 6d6400fe BCC C$DW$L$_ksu_singen$12$E,TC1 C$DW$L$_ksu_singen$2$B, C$L1: 0x0023E7: a908 MOV *SP(#04h),AR1 0x0023E9: d60e99 ADD *SP(#07h),AR1,AR1 0x0023EC: 7d03ff09 AND #1023,AR1,AC0 0x0023F0: c00c MOV AC0,*SP(#06h) 0x0023F2: 2209 MOV AC0,AR1 0x0023F4: c90e MOV AR1,*SP(#07h) 0x0023F6: 760100a8 MOV #256,AR2 0x0023FA: a90c MOV *SP(#06h),AR1 0x0023FC: 1298a0 CMP AR1 >= AR2, TC1 0x0023FF: 046420 BCC C$DW$L$_ksu_singen$3$E,TC1 C$DW$L$_ksu_singen$3$B, C$DW$L$_ksu_singen$2$E: 0x002402: 7a00000a MOV #0 << #16,AC0 0x002406: a10c MOV *SP(#06h),AC1 0x002408: ed00bf MOV dbl(*SP(#00h)),XAR3 0x00240B: 7e0a0e00 OR #2574,AC0,AC0 0x00240F: 5010 SFTL AC1,#1 0x002411: 90b2 MOV XAR3,AC2 0x002413: 2410 ADD AC1,AC0 0x002415: 900b MOV AC0,XAR3 0x002417: a110 MOV *SP(#08h),AC1 0x002419: 5010 SFTL AC1,#1 0x00241B: 2421 ADD AC2,AC1 0x00241D: 901a MOV AC1,XAR2 0x00241F: 806100 MOV dbl(*AR3),dbl(*AR2) C$DW$L$_ksu_singen$4$B, C$L2, C$DW$L$_ksu_singen$3$E: 0x002422: 760100a8 MOV #256,AR2 0x002426: a90c MOV *SP(#06h),AR1 0x002428: 1294a0 CMP AR1 < AR2, TC1 0x00242B: 046433 BCC C$DW$L$_ksu_singen$6$E,TC1 C$DW$L$_ksu_singen$5$B, C$DW$L$_ksu_singen$4$E: 0x00242E: 760200a8 MOV #512,AR2 0x002432: 1298a0 CMP AR1 >= AR2, TC1 0x002435: 046429 BCC C$DW$L$_ksu_singen$6$E,TC1 C$DW$L$_ksu_singen$6$B, C$DW$L$_ksu_singen$5$E: 0x002438: 76020098 MOV #512,AR1 0x00243C: d70c99 SUB *SP(#06h),AR1,AR1 0x00243F: c90c MOV AR1,*SP(#06h) 0x002441: 7a00000a MOV #0 << #16,AC0 0x002445: a10c MOV *SP(#06h),AC1 0x002447: ed00bf MOV dbl(*SP(#00h)),XAR3 0x00244A: 7e0a0e00 OR #2574,AC0,AC0 0x00244E: 5010 SFTL AC1,#1 0x002450: 90b2 MOV XAR3,AC2 0x002452: 2410 ADD AC1,AC0 0x002454: 900b MOV AC0,XAR3 0x002456: a110 MOV *SP(#08h),AC1 0x002458: 5010 SFTL AC1,#1 0x00245A: 2421 ADD AC2,AC1 0x00245C: 901a MOV AC1,XAR2 0x00245E: 806100 MOV dbl(*AR3),dbl(*AR2) C$DW$L$_ksu_singen$7$B, C$L3, C$DW$L$_ksu_singen$6$E: 0x002461: 760200a8 MOV #512,AR2 0x002465: a90c MOV *SP(#06h),AR1 0x002467: 1294a0 CMP AR1 < AR2, TC1 0x00246A: 04642f BCC C$DW$L$_ksu_singen$9$E,TC1 C$DW$L$_ksu_singen$8$B, C$DW$L$_ksu_singen$7$E: 0x00246D: 760300a8 MOV #768,AR2 0x002471: 1298a0 CMP AR1 >= AR2, TC1 0x002474: 046425 BCC C$DW$L$_ksu_singen$9$E,TC1 C$DW$L$_ksu_singen$9$B, C$DW$L$_ksu_singen$8$E: 0x002477: 7a00000a MOV #0 << #16,AC0 0x00247B: a10c MOV *SP(#06h),AC1 0x00247D: 7e0a0e00 OR #2574,AC0,AC0 0x002481: 5010 SFTL AC1,#1 0x002483: 2410 ADD AC1,AC0 0x002485: 900b MOV AC0,XAR3 0x002487: ed6108 MOV dbl(*AR3),AC0 0x00248A: ed00bf MOV dbl(*SP(#00h)),XAR3 0x00248D: a010_3502 MOV *SP(#08h),AC0 || NEG AC0,AC2 0x002491: 5000 SFTL AC0,#1 0x002493: 90b1 MOV XAR3,AC1 0x002495: 2410 ADD AC1,AC0 0x002497: 900b MOV AC0,XAR3 0x002499: eb6128 MOV AC2,dbl(*AR3) C$DW$L$_ksu_singen$10$B, C$L4, C$DW$L$_ksu_singen$9$E: 0x00249C: 760300a8 MOV #768,AR2 0x0024A0: a90c MOV *SP(#06h),AR1 0x0024A2: 1294a0 CMP AR1 < AR2, TC1 0x0024A5: 04642e BCC C$DW$L$_ksu_singen$11$E,TC1 C$DW$L$_ksu_singen$11$B, C$DW$L$_ksu_singen$10$E: 0x0024A8: 76040098 MOV #1024,AR1 0x0024AC: d70c99 SUB *SP(#06h),AR1,AR1 0x0024AF: c90c MOV AR1,*SP(#06h) 0x0024B1: 7a00000a MOV #0 << #16,AC0 0x0024B5: a10c MOV *SP(#06h),AC1 0x0024B7: 7e0a0e00 OR #2574,AC0,AC0 0x0024BB: 5010 SFTL AC1,#1 0x0024BD: 2410 ADD AC1,AC0 0x0024BF: 900b MOV AC0,XAR3 0x0024C1: ed6108 MOV dbl(*AR3),AC0 0x0024C4: ed00bf MOV dbl(*SP(#00h)),XAR3 0x0024C7: a010_3502 MOV *SP(#08h),AC0 || NEG AC0,AC2 0x0024CB: 5000 SFTL AC0,#1 0x0024CD: 90b1 MOV XAR3,AC1 0x0024CF: 2410 ADD AC1,AC0 0x0024D1: 900b MOV AC0,XAR3 0x0024D3: eb6128 MOV AC2,dbl(*AR3) C$DW$L$_ksu_singen$12$B, C$L5, C$DW$L$_ksu_singen$11$E: 0x0024D6: f7100001 ADD #1,*SP(#08h) 0x0024DA: a904 MOV *SP(#02h),AR1 0x0024DC: aa10 MOV *SP(#08h),AR2 0x0024DE: 12a490 CMP AR2 < AR1, TC1 0x0024E1: 6d64ff02 BCC C$L1,TC1 C$L6, C$DW$L$_ksu_singen$12$E: 0x0024E5: a40e MOV *SP(#07h),T0 0x0024E7: 4e09 AADD #9,SP 0x0024E9: 4804 RET Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sierra 0 15 июля, 2013 Опубликовано 15 июля, 2013 (изменено) · Жалоба ну значит всё-таки JTAG.... И похоже что у вас проблемы с загрузкой программы JTAG-ом в CPU. Либо в компиляции. Я же говорил - "листинг", а листинг - это не исходник :) Посмотрите по map-файлу куда у вас этот массив попадает вообще суть в том, что есть основная программа, в которой есть несколько задач (так же си-файлы). для каждой задачи есть место в стеке-ограниченное. для одной из задач требуется этот массив. как можно сделать так, чтобы он записывался=инициализировался не в стеке для этой задачи, а в общей памяти данных, т.к. стек для каждой из задач меньше и чтобы массив на стек не влиял и не урезал его) Пример: файл задача 1: extern int fun( long*, int, int, int, int); des dd; int Stack1[128]; long in_x[1024]; task1(des* dd) { int p; p=0; while(1) {fun( in_x, 1024, p, 1, 0); } } Файл с функцией: long ss[256]= { записываем 256 значений}; //строка записи массива int fun( long* inarray, int N, int p, int fr, int ampl) //строка вызываемой функции { .... inarray[n] = ss[cur_ph]; .... } В общих чертах так. Как мне кажется проблема в том, что из task1 сразу перепрыгивается на строку вызываемой функции, и при этом все, что записано до( строка записи массива) игнорируется. как сделать правильно не знаю( Изменено 15 июля, 2013 пользователем sierra Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 16 июля, 2013 Опубликовано 16 июля, 2013 · Жалоба по адресу 0xa0e, там отображаются нули листинг-это же код программы, не?))что тогда? Вообще-то расположение переменной или функции в памяти определяется не по листингу, а по map-файлу. Ну если 0xa0e - далее берёте даташит на свой CPU и смотрите есть-ли по этим адресам память и какая. ... В общих чертах так. Как мне кажется проблема в том, что из task1 сразу перепрыгивается на строку вызываемой функции, и при этом все, что записано до( строка записи массива) игнорируется. как сделать правильно не знаю( Да... не думал что всё так печально... :crying: Барышня, как правильно - вам надо найти книжку по си и читать-читать-читать.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sierra 0 17 июля, 2013 Опубликовано 17 июля, 2013 · Жалоба Вообще-то расположение переменной или функции в памяти определяется не по листингу, а по map-файлу. Ну если 0xa0e - далее берёте даташит на свой CPU и смотрите есть-ли по этим адресам память и какая. Да... не думал что всё так печально... :crying: Барышня, как правильно - вам надо найти книжку по си и читать-читать-читать.... map пишет 0000020e _in_x 000023c8 _fun 00000a0e _ss 00002603 _task1 по даташиту к TMS C55xx Rev3.0 CPU Cycle Accurate Simulator: Timer Registers 0x1000 0x2400 McBSP 0x2800 0x2C00 0x3000 =)читать нужно всегда) насколько я знаю(=читала) такой массив Си должен записать в память после запуска. И во многих примерах видела именно подобную запись. Может в CCS4 это происходит по-другому...поэтому и спрашиваю. Может здесь использовать запись массива в заданные ячейки памяти, возможно ли это в CCS? т.е. через #pragma section("") ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lotor 0 17 июля, 2013 Опубликовано 17 июля, 2013 · Жалоба Забавная тема. У автора топика явно каша в голове. Еще и вопросы формируются так, чтобы эта каша стала у пытающихся понять суть проблемы... %) Совет - вдумчиво почитайте про работу линкера, секции. Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Russky 0 17 июля, 2013 Опубликовано 17 июля, 2013 · Жалоба Может быть не в тему, но у меня подобное было из-за кеша. Кеш просто не обновлялся правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sierra 0 18 июля, 2013 Опубликовано 18 июля, 2013 · Жалоба Забавная тема. У автора топика явно каша в голове. Еще и вопросы формируются так, чтобы эта каша стала у пытающихся понять суть проблемы... %) Совет - вдумчиво почитайте про работу линкера, секции. Удачи. Есть такое) может ссылки скинете? почитаю. читаю что есть- отсюда каша и нерешенный вопрос Может быть не в тему, но у меня подобное было из-за кеша. Кеш просто не обновлялся правильно. Как это исправить?(либо прочитать об этом) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lotor 0 19 июля, 2013 Опубликовано 19 июля, 2013 · Жалоба может ссылки скинете? Увы, у меня нет таких ссылок, чтобы раз - и стало всё понятно. Понимание приходит с опытом (моё кстати еще в пути :))... Хотя может у Вас будет по-другому - попробуйте найти у техаса какой-нибудь workshop на Ваше семейство процессоров (аля такое), может поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться