zltigo 1 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS. Да, а чей это там логотипчик на http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm затесался :) Да и сам сайт Keil. Все смешалось в доме Облонских.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Да, а чей это там логотипчик на http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm затесался :) Да и сам сайт Keil. Все смешалось в доме Облонских.. Ну и что? RealView Developer Suite и входящие в его состав RealView Compilation Tools - разработка именно ARM, Keil-то тут причем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 25 октября, 2009 Опубликовано 25 октября, 2009 (изменено) · Жалоба 2zltigo, А есть где-нибудь просторах интернета исходники какого-нибудь проекта написанного не-"студенчески"? Хочу проанализировать для общеобразовательных целей. Держите. Надеюь, из состояния писанины "студенческих" исходников я уже вырос... Хотя, возможны недоработки в плане структуры программы. Между прочим, как раз пример того, как я переходил с AVR (ATMega32) на ARM (AT91SAM7S64). Тема здесь - http://forum.cqham.ru/viewtopic.php?t=17803 Для сборки ARM версии используется YAGARTO, для AVR - WinAVR. Изменено 25 октября, 2009 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Keil-то тут причем? При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company. Так таки и всеми? Keil делал и делает (да, теперь в составе ARM) только MDK - "попсовую" среду, ориентированную на МК, ради которой он и был куплен. RVDS же существовал и существует как отдельный продукт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS. смотрим на тот-же файл из поставки Keil: ;/*****************************************************************************/ ;/* SWI.S: SWI Handler */ ;/*****************************************************************************/ ;/* This file is part of the uVision/ARM development tools. */ ;/* Copyright © 2005-2006 Keil Software. All rights reserved. */ ;/* This software may only be used under the terms of a valid, current, */ ;/* end user licence from KEIL for a compatible version of KEIL software */ ;/* development tools. Nothing else gives you the right to use this software. */ ;/*****************************************************************************/ T_Bit EQU 0x20 PRESERVE8 ; 8-Byte aligned Stack AREA SWI_Area, CODE, READONLY ARM EXPORT SWI_Handler SWI_Handler STMFD SP!, {R12, LR} ; Store R12, LR MRS R12, SPSR ; Get SPSR STMFD SP!, {R8, R12} ; Store R8, SPSR TST R12, #T_Bit ; Check Thumb Bit LDRNEH R12, [LR,#-2] ; Thumb: Load Halfword BICNE R12, R12, #0xFF00 ; Extract SWI Number LDREQ R12, [LR,#-4] ; ARM: Load Word BICEQ R12, R12, #0xFF000000 ; Extract SWI Number LDR R8, SWI_Count CMP R12, R8 BHS SWI_Dead ; Overflow ADR R8, SWI_Table LDR R12, [R8,R12,LSL #2] ; Load SWI Function Address MOV LR, PC ; Return Address BX R12 ; Call SWI Function LDMFD SP!, {R8, R12} ; Load R8, SPSR MSR SPSR_cxsf, R12 ; Set SPSR LDMFD SP!, {R12, PC}^ ; Restore R12 and Return SWI_Dead B SWI_Dead ; None Existing SWI SWI_Cnt EQU (SWI_End-SWI_Table)/4 SWI_Count DCD SWI_Cnt IMPORT __SWI_0 IMPORT __SWI_1 IMPORT __SWI_2 IMPORT __SWI_3 SWI_Table DCD __SWI_0 ; SWI 0 Function Entry DCD __SWI_1 ; SWI 1 Function Entry DCD __SWI_2 ; SWI 2 Function Entry DCD __SWI_3 ; SWI 3 Function Entry ; ... SWI_End END Главные отличия в свежих годах Copyright ну и естественно теперь ©Keil. Что-то я совсем не понимаю предмета спора :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Что-то я совсем не понимаю предмета спора :( А зачем тогда спорите? Просто Keil != ARM и не является компиляторостроителем последнего, а наоборот, использует наработки головной конторы в своем MDK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Держите. Надеюь, из состояния писанины "студенческих" исходников я уже вырос... Не :( "студентов" тоже писавших, например, мультиплатформенный TI стек SimpleIT в извращениях превзойти трудно :). Ну и такого типа фишки: if ((baud_value % 10) >= 5) baud_value = (baud_value / 10) + 1; else baud_value /= 10; Вместо: baud_value = ( (baud_value + 5) / 10) Вполне по-студенчески - об округлении уже знают, но с реализацией :( P.S. Не принимайте близко к сердцу - выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба такого типа фишки Это пять :) ...выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно. Угу. Иногда хочется что-то выложить, да стыдно. Причесать можно но, лень. А с тем, за что изначально не стыдно, оказывается жалко расставаться. Вот и остается выкладывать разве что фрагменты в 10 строк максимум. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Не принимайте близко к сердцу - выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно. Ох ничего себе! Честно говоря, этот кусок скопипастил сам знаете откуда... Срочно поправил на unsigned int baud_value = main_clock / baud_rate; return ((baud_value + 8) / 16); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Честно говоря, этот кусок скопипастил сам знаете откуда... Да, есть такой источник заразы, почему-то трепетно любимый многими. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Да, есть такой источник заразы, почему-то трепетно любимый многими. Неужели опять незабвенное светило образования Редькин? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 25 октября, 2009 Опубликовано 25 октября, 2009 · Жалоба Неужели опять незабвенный Редькин? Нет, но все равно смешно - "либы" от Атмела. Справедливости ради надо заметить, что большинство не напрягает себя copy-paste (что дает некоторой шанс увидеть и исправить маразм), а просто не задумываясь кидает "lib_AT91XXX.h" в проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 25 октября, 2009 Опубликовано 25 октября, 2009 (изменено) · Жалоба Если бы вы, как внимательные читатели, не обратили внимание на этот кусок, так бы оно и неслось по волнам истории, не опускаясь на дно... короче, чтобы закончить жизнь этого наследия, пишу так: const unsigned int divisor = baud_rate * 16; return (main_clock + divisor / 2) / divisor; Интересно, поможет ли начать программировать под ARM это кому-нибудь? Прочитал про копи-пэйст. Поскольку осваивать пришлось весьма спешно, специально начал с минимального файла (единственный main и последовательность кода для ножкодрыгательства), без использования этого набора функций от атмела. Через некоторое время стала понятна идеология разработчиков периферии, уже знал что и где искать в даташите. Startup сначала был от yagarto, потом слегка переделывал. Изменено 25 октября, 2009 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость Br.Misha 9 мая, 2011 Опубликовано 9 мая, 2011 · Жалоба Хай! Я купил себе три STM32: две STM32F100C8T6B и еще одну какую то за 8 баксов. Завтра еще закажу стм32дискавери. У меня теперь возник вопрос на счет софта. В инете советовали Keil, скачал, начал юзать. Очень понравилось то, что через визард(STM32_Init.c) можно настроить периферию. Но тут есть 2 очень серьезный как для меня недостатка: Не отображаются подсказки после -> или точки и нельзя кликнув на функцию перейти к ней (кто юзает еклипс, тот поймет). Слышал что в эклипсе можно и для стм32 программить, но можно ли в нем использовать визард как в кейле? Ну или может есть какая то другая прога, посоветуйте плиз! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться