реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Переход AVR to ARM, посоветуйте с чего начать:)
zltigo
сообщение Oct 25 2009, 15:21
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Oct 25 2009, 15:06) *
Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS.

Да, а чей это там логотипчик на
http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm
затесался smile.gif Да и сам сайт Keil. Все смешалось в доме Облонских..


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 16:42
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Oct 25 2009, 18:21) *
Да, а чей это там логотипчик на
http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm
затесался smile.gif Да и сам сайт Keil. Все смешалось в доме Облонских..

Ну и что? RealView Developer Suite и входящие в его состав RealView Compilation Tools - разработка именно ARM, Keil-то тут причем?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 25 2009, 17:17
Сообщение #33


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(arm123 @ Oct 25 2009, 13:01) *
2zltigo, А есть где-нибудь просторах интернета исходники какого-нибудь проекта написанного не-"студенчески"?
Хочу проанализировать для общеобразовательных целей.


Держите. Надеюь, из состояния писанины "студенческих" исходников я уже вырос... Хотя, возможны недоработки в плане структуры программы.
Между прочим, как раз пример того, как я переходил с AVR (ATMega32) на ARM (AT91SAM7S64).

Тема здесь - http://forum.cqham.ru/viewtopic.php?t=17803

Для сборки ARM версии используется YAGARTO, для AVR - WinAVR.

Сообщение отредактировал Genadi Zawidowski - Oct 25 2009, 17:26
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 18:52
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Oct 25 2009, 19:42) *
Keil-то тут причем?

При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 19:07
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Oct 25 2009, 21:52) *
При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company.

Так таки и всеми?

Keil делал и делает (да, теперь в составе ARM) только MDK - "попсовую" среду, ориентированную на МК, ради которой он и был куплен.
RVDS же существовал и существует как отдельный продукт.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 19:36
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Oct 25 2009, 15:06) *
Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS.

смотрим на тот-же файл из поставки Keil:
CODE

;/*****************************************************************************/
;/* 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. Что-то я совсем не понимаю предмета спора sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 19:43
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Oct 25 2009, 22:36) *
Что-то я совсем не понимаю предмета спора sad.gif

А зачем тогда спорите? Просто Keil != ARM и не является компиляторостроителем последнего, а наоборот, использует наработки головной конторы в своем MDK.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 19:58
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Genadi Zawidowski @ Oct 25 2009, 20:17) *
Держите. Надеюь, из состояния писанины "студенческих" исходников я уже вырос...

Не sad.gif "студентов" тоже писавших, например, мультиплатформенный TI стек SimpleIT в извращениях превзойти трудно smile.gif.
Ну и такого типа фишки:
Код
        if ((baud_value % 10) >= 5)
                baud_value = (baud_value / 10) + 1;
        else
                baud_value /= 10;

Вместо:
Код
baud_value = ( (baud_value + 5) / 10)

Вполне по-студенчески - об округлении уже знают, но с реализацией sad.gif
P.S.
Не принимайте близко к сердцу - выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 20:04
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Oct 25 2009, 22:58) *
такого типа фишки

Это пять smile.gif

Цитата(zltigo @ Oct 25 2009, 22:58) *
...выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно.

Угу. Иногда хочется что-то выложить, да стыдно. Причесать можно но, лень. А с тем, за что изначально не стыдно, оказывается жалко расставаться.
Вот и остается выкладывать разве что фрагменты в 10 строк максимум.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 25 2009, 20:51
Сообщение #40


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(zltigo @ Oct 25 2009, 23:58) *
Не принимайте близко к сердцу - выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно.


Ох ничего себе! Честно говоря, этот кусок скопипастил сам знаете откуда...

Срочно поправил на

Код
        unsigned int baud_value = main_clock / baud_rate;

        return ((baud_value + 8) / 16);
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 21:02
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Genadi Zawidowski @ Oct 25 2009, 23:51) *
Честно говоря, этот кусок скопипастил сам знаете откуда...

Да, есть такой источник заразы, почему-то трепетно любимый многими.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2009, 21:05
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Oct 26 2009, 00:02) *
Да, есть такой источник заразы, почему-то трепетно любимый многими.

Неужели опять незабвенное светило образования Редькин?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 25 2009, 21:06
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Oct 26 2009, 00:05) *
Неужели опять незабвенный Редькин?

Нет, но все равно смешно - "либы" от Атмела.

Справедливости ради надо заметить, что большинство не напрягает себя copy-paste (что дает некоторой шанс увидеть и исправить маразм), а просто не задумываясь кидает "lib_AT91XXX.h" в проект.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 25 2009, 21:16
Сообщение #44


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Если бы вы, как внимательные читатели, не обратили внимание на этот кусок, так бы оно и неслось по волнам истории, не опускаясь на дно...

короче, чтобы закончить жизнь этого наследия, пишу так:
Код
const unsigned int divisor = baud_rate * 16;

return (main_clock + divisor / 2) / divisor;


Интересно, поможет ли начать программировать под ARM это кому-нибудь?

Прочитал про копи-пэйст. Поскольку осваивать пришлось весьма спешно, специально начал с минимального файла (единственный main и последовательность кода для ножкодрыгательства), без использования этого набора функций от атмела. Через некоторое время стала понятна идеология разработчиков периферии, уже знал что и где искать в даташите.
Startup сначала был от yagarto, потом слегка переделывал.

Сообщение отредактировал Genadi Zawidowski - Oct 25 2009, 22:08
Go to the top of the page
 
+Quote Post
Br.Misha
сообщение May 9 2011, 09:28
Сообщение #45


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Хай!
Я купил себе три STM32: две STM32F100C8T6B и еще одну какую то за 8 баксов. Завтра еще закажу стм32дискавери.
У меня теперь возник вопрос на счет софта. В инете советовали Keil, скачал, начал юзать. Очень понравилось то, что через визард(STM32_Init.c) можно настроить периферию. Но тут есть 2 очень серьезный как для меня недостатка: Не отображаются подсказки после -> или точки и нельзя кликнув на функцию перейти к ней (кто юзает еклипс, тот поймет). Слышал что в эклипсе можно и для стм32 программить, но можно ли в нем использовать визард как в кейле?
Ну или может есть какая то другая прога, посоветуйте плиз!
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.03244 секунд с 7
ELECTRONIX ©2004-2016