Sargass 0 13 июля, 2010 Опубликовано 13 июля, 2010 · Жалоба Добрый день. Недавно начал осваивать сабж, для меня это первый опыт работы с ARM-ми. В качестве инструментария выбрал WinARM. Посмотрел примеры, которые идут с ним. По похожести контроллера самый близкий пример там для ADuC7020. Как я понял из этого примера, чтобы скомпилировать прогу под 7060, мне понадобятся кое-какие файлы, типа ADuC7060.h, ADuC7060-RAM.ld, ADuC7060-ROM.ld, может еще что-то... ADuC7060.h я нашел в интернетах, а вот с файлами *.ld пока туговато. Если в make-файле я поменяю SUBMDL = ADuC7020 на SUBMDL = ADuC7060, то естественно проект перестает компилироваться, требуя эти файлы. Не могло бы уважаемое сообщество помочь мне разобраться, как имеющуюся прогу под 7020 переделать на 7060? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
etoja 0 13 июля, 2010 Опубликовано 13 июля, 2010 · Жалоба В местных закромах есть компилятор rowley crossstudio, который представляет собой графическую оболочку и GNU C. Настроечные файлы для ADUC70xx можно взять с сайта разработчика www.rowley.co.uk/arm/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 13 июля, 2010 Опубликовано 13 июля, 2010 · Жалоба Как я понял из этого примера, чтобы скомпилировать прогу под 7060, мне понадобятся кое-какие файлы, типа ADuC7060.h, ADuC7060-RAM.ld, ADuC7060-ROM.ld, может еще что-то...Вы можете пересохранить под этими названиями имеющиеся файлы и исправить их под ADuC7060. ADuC7060.h я нашел в интернетахА вы уверены, что он писан под ваш компилятор? а вот с файлами *.ld пока туговато.Вам нужно один раз прочитать документацию на линкер. Вероятнее всего вам потребуется лишь изменить размер памяти кристалла в секции MEMORY в начале файла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 14 июля, 2010 Опубликовано 14 июля, 2010 · Жалоба Вот минимальный проект для aduc706x под gcc: aduc_minimal_c.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 14 июля, 2010 Опубликовано 14 июля, 2010 · Жалоба В качестве инструментария выбрал WinARM. Выбрали самый древний из существующих. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sargass 0 15 июля, 2010 Опубликовано 15 июля, 2010 · Жалоба Выбрали самый древний из существующих.Какой посоветуете из бесплатных и современных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
etoja 0 15 июля, 2010 Опубликовано 15 июля, 2010 · Жалоба Какой посоветуете из бесплатных и современных? Бесплатные: Yagarto: http://www.yagarto.de/ Eclipse: http://forum.puppyrus.org/index.php?action...ge;topic=2645.0 Платные: Rowley Crossstudio (ссылка была ранее) : 150 USD Imagecraft http://www.imagecraft.com/ : 249 USD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 15 июля, 2010 Опубликовано 15 июля, 2010 · Жалоба Какой посоветуете из бесплатных и современных? Code Sourcery Lite. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sargass 0 16 июля, 2010 Опубликовано 16 июля, 2010 · Жалоба Вы можете пересохранить под этими названиями имеющиеся файлы и исправить их под ADuC7060.В общем переделал вроде бы все файлы под себя, пока прога отказывается работать. #include "aduc7060.h" static void delay(const unsigned long length) { volatile unsigned long cnt; cnt = length; while (cnt > 0) { cnt--; } } int main(void) { T1LD = 0x80; // 32,768 clock ticks T1CON = 0xC0; // Periodic mode, enable // timer, 32,768 Hz clock/1 IRQEN |= 0x10; // Enable Timer1 interrupt // source PLLKEY1 = 0xAA; // Switch to external crystal PLLCON = 0x02; PLLKEY2 = 0x55; POWKEY1 = 0x01; // Enter nap mode POWCON0 = 0x70; //10mhz POWKEY2 = 0xF4; GP0DAT = 0x04000000; // P0.2 configured as an output. LED is turned on while (1) { GP0DAT ^= 0x00040000; // Complement P0.2 delay(2000UL); } return 0; /* never reached */ } Осциллографом смотрел - на P0.2 получается постоянная еденица, на XTAL1 и XTAL0 тоже постоянные уровни, хотя по идее выбран внешний кристалл, согласно даташиту. Знач что-то не так компилируется, хотя ошибок не выдает. Понять бы что не так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurila 0 16 июля, 2010 Опубликовано 16 июля, 2010 · Жалоба Какой посоветуете из бесплатных и современных? А про IAR (32KB KickStart edition) забыли? Для ADuC7060 (32 kB (16 kB × 16) Flash/EE memory) самое то! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sargass 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба А про IAR (32KB KickStart edition) забыли? Для ADuC7060 (32 kB (16 kB × 16) Flash/EE memory) самое то! Если честно, я про него и не знал, чтобы забыть) Спасибо за подсказку, поставил, попробовал - решает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sargass 0 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба Понадобилось переключить aduc на внешний кристалл, в даташите пишут: To switch to an external crystal, users must follow this procedure: 1. Enable the Timer1 interrupt and configure it for a timeout period of >120 μs. 2. Follow the write sequence to the PLLCON register, setting the OSEL bits to [10] and clearing the EXTCLK bit. 3. Force the part into nap mode by following the correct write sequence to the POWCON register. 4. When the part is interrupted from nap mode by the Timer1 interrupt source, the clock source has switched to the external crystal. Example source code T1LD = 0x80; // 32,768 clock ticks T1CON = 0xC0; // Periodic mode, enable timer, 32,768 Hz clock/1 IRQEN |= 0x10; // Enable Timer1 interrupt source PLLKEY1 = 0xAA; // Switch to external crystal PLLCON = 0x2; PLLKEY2 = 0x55; POWKEY1 = 0x1; // Enter nap mode POWCON0 = 0x73; POWKEY2 = 0xF4; Сделал простейший код, генерирующий импульсы на P0.2, когда вставил в него приведенный кусок - импульсов нема. Ощущение, что ядро не выходит из power-down. Почитав еще немного, заметил, что хотя везде говорится про "nap mode", в примере получается не "nap" а "pause". Поменял. Не работает. В какую сторону копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sargass 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба Почему может не работать синхронизация PWM от внешнего сигнала? GP1CON = BIT9; GP2CON = BIT5 + BIT4 + BIT1 + BIT0; //Enable P2.0 & P2.1 as PWM0 & PWM5 Outputs PWMCON = BIT14 + BIT8 + BIT7 + BIT6 + BIT0; //SYNC + PWMEN + /256 PWM0COM0 = 0x190; PWM0COM1 = 0xC8; PWM0COM2 = 0x40; PWM0LEN = 0x190; PWMCLRI=0x00; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 24 сентября, 2010 Опубликовано 24 сентября, 2010 · Жалоба да бы не плодить темы - спрошу здесь. вопрос дилетантский, но тем не менее... мк ADuC7060. нужен SPI интерфейс , но весь. можно ли и будет ли работать, если ноги SPI будут конфигурированы след образом: MOSI -> MOSI SCK -> SCK MISO -> GPIO SS -> GPIO писать по SPI хочу аппаратно (по прерываниям) в 2 микросхемы. в целях экономии ног - хочу использовать MISO и SS в качестве сигналов CS для этих микросхем. так вот - будет ли такое работать и нет ли подводных камней (вопрос тем, кто работал с SPI ADuC7060) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swisst 0 29 сентября, 2010 Опубликовано 29 сентября, 2010 · Жалоба еще вопрос - в каком состоянии будут ноги контроллера после резета (интересно, что в датащите об этом ни слова) или где еще это может быть документально описано ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться