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

 
 
> Infineon и Keil, Infineon XC167CL-16 bit и Keil uVision3 asm
Lalka
сообщение Aug 16 2009, 17:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



Всем привет. Никогда раньше не работала с ассемблером. Чайник еще тот)) А тут надо писать в Keil uVision3 на ассемблере. Микроконтроллер - XC167Cl 16 разрядный. Нигде нет даже примера на ассемблере,везде все по С. Помогите пожалуйста, люди добрые, кто чем может. Не имею никакого понятия что это и с чем едят. Пока пишу всякую ерунду. Может посоветуете какую-нибудь литературу. Желательно на русском, но на худой конец можно и на английском. Или пришлет кто-нибудь на почту шаблон программы. Я даже вступления не знаю. Вобщем я ничего не знаю,помогите! :-D
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Axel
сообщение Aug 17 2009, 06:26
Сообщение #2


Местный
***

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



Цитата(Lalka @ Aug 16 2009, 21:48) *
...помогите!...


Куда помогать? (в смысле e-mail)...
Да, и еще - не про ARM это. Надо бы во "Все остальные ...".
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 17 2009, 13:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Lalka @ Aug 16 2009, 21:48) *
Всем привет. Никогда раньше не работала с ассемблером. Чайник еще тот)) А тут надо писать в Keil uVision3 на ассемблере. Микроконтроллер - XC167Cl 16 разрядный. Нигде нет даже примера на ассемблере,везде все по С. Помогите пожалуйста, люди добрые, кто чем может. Не имею никакого понятия что это и с чем едят. Пока пишу всякую ерунду. Может посоветуете какую-нибудь литературу. Желательно на русском, но на худой конец можно и на английском. Или пришлет кто-нибудь на почту шаблон программы. Я даже вступления не знаю. Вобщем я ничего не знаю,помогите! :-D

А зачем с ассемблером? Чужой код разгребать?
Вообще-то обычная практика - писать всё на Си и переделывать на ассемблере только те куски, которые на Си не получаются (обычно если не хватает скорости).
Кстати, для программирования на ассемблере Keil рекомендует скомпилировать исходник на Си с каркасами функций и переменными, получив на выходе компилятора файл на языке ассемблера. Потом править этот файл.
Ну а что касается литературы, то первоисточники - это C166S V2 Core User's Manual от Infineon и руководства от Keil.
Go to the top of the page
 
+Quote Post
Lalka
сообщение Aug 18 2009, 05:46
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



Потому что надо на ассемблере.
Еще, что такое [Rw]? Не могу понять как работает. Все время в памяти С0FA и новое число записать невозможно.И как записывать в память адресов большие числа? Больше FFFF не помещается,причем записывать в адрес можно только из регистра.Так задумано?
Как задать переменной конкретный адрес?
Go to the top of the page
 
+Quote Post
Shandy
сообщение Aug 18 2009, 06:22
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 3-03-06
Пользователь №: 14 931



Rw = это значит, что регистр 16-битный (word)
Чтобы разобраться с обозначениями, прочитайте описание системы команд (см. прикрепленный файл)
Возьмите за основу файл template.a66 из папки Keil\c166\asm. Он специально написан, чтобы использовать его как образец.
Прикрепленные файлы
Прикрепленный файл  C166_Instruction_Set.pdf ( 359.99 килобайт ) Кол-во скачиваний: 58
 
Go to the top of the page
 
+Quote Post
Axel
сообщение Aug 18 2009, 06:41
Сообщение #6


Местный
***

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



Цитата(Lalka @ Aug 18 2009, 08:46) *
...как записывать в память адресов большие числа?


Почитайте про режимы адресации...

Цитата(Lalka @ Aug 18 2009, 08:46) *
...Как задать переменной конкретный адрес?


В сегменте данных директива "ORG".
Go to the top of the page
 
+Quote Post
Lalka
сообщение Sep 10 2009, 06:21
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



А как работать с массивами?
Я задаю массив:
?NC?HELLO SECTION DATA WORD 'NCONST'
MASS DW 11,22,33,44,...
?NC?HELLO ENDS

потом хочу брать эти числа по одному и записывать в регистр

MOV R1,MASS
MOV R2,MASS+2
MOV R3,MASS+4
...

Что можно взять вместо +2,+4... и инкрементировать?
Go to the top of the page
 
+Quote Post
Lalka
сообщение Oct 6 2009, 17:35
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



...сдалась и перешла на Си...
Правильно ли я поняла, что для работы с файлами нужен файл AR166.h? Что-то его у меня нету. Может у кого-нибудь есть? unsure.gif
Go to the top of the page
 
+Quote Post
Lalka
сообщение Oct 10 2009, 09:10
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



Люди! Кричу о помощи! Мне действительно нужно работать с массивами в ассемблере и с файлами на Си в uVision-е! С меня требуют, а я понятия не имею почему компилятор не распознает FILE. Да еще это оценочная версия, всего 8К, 98% процентов я уже заполнила. Не подскажете, где и как можно приобрести полную версию, где заодно будет и библиотека AR166.h ? Ооошинама надеюсь на помош!!!
Go to the top of the page
 
+Quote Post
тау
сообщение Oct 10 2009, 10:15
Сообщение #10


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



http://www.keil.com/c166/

может в C166 Evaluation Software найдется
https://www.keil.com/c166/demo/eval/c166.htm
Go to the top of the page
 
+Quote Post
prgjz
сообщение Oct 13 2009, 10:39
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Я обычно пишу на Си потом рассматриваю листинг ассемлера и если есть необходимость оптимирую в ассемблере.
Для XC16x нужно с сегментами быть внимательным и, как и для любого другого проца, знать адресацию и регистры
(или хотя бы знать где читатьsmile.gif.
Go to the top of the page
 
+Quote Post
Axel
сообщение Oct 14 2009, 16:06
Сообщение #12


Местный
***

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



Определите пожалуйста, что есть "файл" в Вашем случае (например в смысле определения из Википедии). Может тогда ситуация станет понятнее... А файл "AR166.H" - это из кейловой операционки ARTX-166.
Go to the top of the page
 
+Quote Post
Lalka
сообщение Oct 16 2009, 16:51
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



файл - всмысле обычный файл

#include<stdio.h>
FILE *fopen(),*f;

void main(void)
{
f=fopen("c:\my_file.txt","w");
printf("Enter the word: ");scanf("%s",&word);
fclose(f);
printf("File created!");
}
...
f=fopen("c:\my_file.txt","a");
...
f=fopen("c:\my_file.txt","r");
...

prgjz,я не очень понимаю для чего эти сегменты,что это такое вообще. Знаю только, что NCONST - это ROM, а NDATA - это RAM. Не могли бы вы немного пояснить или посоветовать литературу?

И неужели никто никогда не работал с массивами в ассемблере?
Go to the top of the page
 
+Quote Post
prgjz
сообщение Oct 20 2009, 12:40
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



могу посоветовать прикреплённый файл где очень хорошо описана структкра XC167. Если ваш массив должен находится во встроенной памяти то это будет намного просче. Через сегменты адрессуются встроенная флеш и/или память подключенная к наружней шине EBC.
Во встроенной памяти всё просто:
MOV R5, Value
MOV R6, Index
MOV R4,R6 ;
SHL R4,#01H ; если ваш массив 16бит #01h, для 32бит #02h, для 8бит эту и предидущюю строчку не надо
MOV [R4+MyArray],R5 ; собственно запись в массив

Для подключенной памяти тоже самое (почтиsmile.gif
MOV R5, Value
MOV R6, Index
MOV R4,R6 ;
SHL R4,#01H ; если ваш массив 16бит #01h, для 32бит #02h, для 8бит эту и предидущюю строчку не надо
EXTS #SEG (MyArray),#01H ; указваем сегмент запрещаем до заключения следуещей
; 1ной операции прерывания иначе сегмент может измениться
MOV [R4+#SOF(MyArray)],R5 ;запись в массив с учётом сегмента

Желаю удачи!


Извеняюсь, что то не получается с загрузкой...
По этому линку вы найдёте C166S V2 Core User's Manual (c166sv2um.pdf):
http://www.infineon.com/cms/en/product/cha...112ab6b3ae30781
Go to the top of the page
 
+Quote Post
Lalka
сообщение Feb 3 2010, 16:55
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-07-09
Пользователь №: 51 673



Спасибо огромное! Не могу поверить, что кто-то ответил smile.gif Только сейчас увидела. Надеюсь, теперь разобраться будет легче.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:09
Рейтинг@Mail.ru


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