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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> AT91RM9200 - разбиение кода на быструю и медленную части, SDRAM и внутренняя SRAM
dch
сообщение Nov 7 2008, 16:44
Сообщение #31


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



а с каким темпом
Go to the top of the page
 
+Quote Post
Antokha
сообщение Nov 7 2008, 18:58
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



Цитата(dch @ Nov 7 2008, 19:44) *
а с каким темпом

Для компенсации вышеописанных неточностей с периодом 100 нс.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 7 2008, 19:19
Сообщение #33


Гуру
******

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



Разгон процессора может не привести к существенному ускорению опроса пина, т.к. GPIO висит на медленной APB (два такта MCK на доступ).

Еще раз замечу, что такой подход к решению задачи в корне неверен.
Go to the top of the page
 
+Quote Post
Antokha
сообщение Nov 7 2008, 19:47
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



Цитата(aaarrr @ Nov 7 2008, 22:19) *
Еще раз замечу, что такой подход к решению задачи в корне неверен.

Я алгоритм обработки (оцифровки) сигнала сейчас изменять не могу - попросту не успею (проект надо сдать 21 ноября). Плюс ко всему этот алгоритм обсчитывали статисты, так что сложностей навал cranky.gif . Реализую то, что начальство сказало. maniac.gif
Go to the top of the page
 
+Quote Post
dch
сообщение Nov 9 2008, 19:26
Сообщение #35


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



там вроде ножкой невозможно щелкать быстрее чем 5MHz , 100 наносекунд это близко к локаторной дискретизации
Go to the top of the page
 
+Quote Post
Antokha
сообщение Nov 9 2008, 21:29
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



Цитата(dch @ Nov 9 2008, 22:26) *
там вроде ножкой невозможно щелкать быстрее чем 5MHz , 100 наносекунд это близко к локаторной дискретизации

100 нс получалось ( точно не помню с какими настройками PLL, но с режимом тактирования ядра synchronous)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2008, 06:17
Сообщение #37


Гуру
******

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



Цитата(dch @ Nov 9 2008, 22:26) *
там вроде ножкой невозможно щелкать быстрее чем 5MHz , 100 наносекунд это близко к локаторной дискретизации

Щелкать на 5MHz примерно то же самое, что считывать на 10MHz smile.gif

Только вот по моим прикидкам должно получаться быстрее. Впрочем, это уже от программы зависит.
Go to the top of the page
 
+Quote Post
dch
сообщение Nov 10 2008, 12:47
Сообщение #38


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



обычно ножки опрашиваются на какойто частоте независимой от pclk и состояние их заносится в соответсвующий регистр, поэтому практически всегда то что вы считали уже не соответсвует действительности
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2008, 12:58
Сообщение #39


Гуру
******

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



Состояние выводов должно обновляется с частотой MCK (впрочем, может и с MCK/2).
Go to the top of the page
 
+Quote Post
Antokha
сообщение Nov 10 2008, 17:36
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



To aaarrr:
По поводу кеширования: 1) адреса в разделе sections - это и есть описание адресного пространства (необходимого программе, т.е. фактически ею занимаемого)?
2) MMU в данном случае будет кешировать на автомате всё, что будет запускаться из main() до того момента, когда не придет команда lock ICache?

Сообщение отредактировал Antokha - Nov 10 2008, 18:01
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2008, 19:50
Сообщение #41


Гуру
******

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



Цитата(Antokha @ Nov 10 2008, 20:36) *
To aaarrr:
По поводу кеширования: 1) адреса в разделе sections - это и есть описание адресного пространства (необходимого программе, т.е. фактически ею занимаемого)?
2) MMU в данном случае будет кешировать на автомате всё, что будет запускаться из main() до того момента, когда не придет команда lock ICache?

1. Да. В первом слове хранится адрес начала раздела, во втором - адрес окончания + 1, в третьем - тип кэширования. Всей остальной памяти присваиваются атрибуты noncachable nonbufferable.
2. Да, всё.
Go to the top of the page
 
+Quote Post
Antokha
сообщение Nov 11 2008, 19:45
Сообщение #42


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



To aaarrr: Спасибо огромное.
В самом начале кода есть строки:
ldr r2, =2_110111110010 ; set access permissions (AP) for full access SVC/USR (11:10)
Это загрузка константы записанной по адресу 110111110010 (0xDF2) или здесь должна быть сама константа. Вопрос возник потому, что в первом случае странно хранить константу в памяти, если она используется один раз, кроме, конечно, варианта с наиболее быстрым исполнением этого кода.
Go to the top of the page
 
+Quote Post
dch
сообщение Nov 12 2008, 02:00
Сообщение #43


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(Antokha @ Nov 10 2008, 20:36) *
2) MMU в данном случае будет кешировать на автомате всё, что будет запускаться из main() до

если только выталкивания не призойдет
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 12 2008, 06:51
Сообщение #44


Гуру
******

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



Цитата(Antokha @ Nov 11 2008, 22:45) *
В самом начале кода есть строки:
ldr r2, =2_110111110010 ; set access permissions (AP) for full access SVC/USR (11:10)
Это загрузка константы записанной по адресу 110111110010 (0xDF2) или здесь должна быть сама константа.

Это псевдооператор для загрузки длинной константы. Ассемблером трансформируется в инструкцию ldr r2, [PC, #N], по адресу PC+N+8 записана сама константа 0xDF2.
Go to the top of the page
 
+Quote Post
Antokha
сообщение Nov 12 2008, 13:00
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-10-08
Из: Нижний Новгород
Пользователь №: 41 078



To aaarrr: Подправил адреса секций и оформил этот код функцией:
; Set global core configurations
mrc p15, 0x00, r0, c1, c0, 0x00 ; read CP15 register 1 into r0
orr r0, r0, #(0x01 << 0x0c) ; enable I Cache
orr r0, r0, #(0x01 << 0x02) ; enable D Cache
orr r0, r0, #(0x3 << 0x1e) ; enable asynchronous clocking mode
orr r0, r0, #0x01 ; enable MMU
; Additional configuration options
;
; orr r0, r0, #(0x01 << 0x0e) ; enable Round Robin cache replacement
; orr r0, r0, #(0x01 << 0x0d) ; enable Hi Vectors
orr r0, r0, #(0x01 << 0x01) ; enable data address alignment checking
mcr p15, 0x00, r0, c1, c0, 0x00 ; write cp15 register 1 <-------------------------------------
POP {LR}
POP {R7}
POP {R6}
POP {R5}
POP {R4}
POP {R3}
POP {R2}
POP {R1}
POP {R0}

BX LR ;; return
sections // 1
DCD 0x21F00800 ; _SDRAM_READ_ Section 00000000; Flash
DCD 0x21F03FFF ; 00100000
DCD 0xC ; 2_1100 ; wb, buffered
// c03fc000
DCD 0x21F04000 ; c0000000 ; SDRAM Page 0 - _SDRAM_WRITE_ Section
DCD 0x21F04FFF ; c0400000
DCD 0xC ; 2_1100 ; wb, buffered
END

На команде обозначенной стрелкой виснет наглухо. В секции _SDRAM_READ_ размещен участок кода, помеченный в файле *.icf {readonly}, в секции _SDRAM_WRITE_ - соответственно {readwrite}. Почему так? Что я делаю неправильно?
Go to the top of the page
 
+Quote Post

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

 


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


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