|
|
  |
Хочу попробовать ARM, подскажите, что для этого нужно?, Какой проц выбрать, отлад. платку и какой софт? |
|
|
|
Feb 1 2007, 09:48
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Цитата(sonycman @ Jan 31 2007, 19:43)  Что-то не нашёл в даташите на SAM7 как у него обстоят дела с защитой от статики. С AVRами, правда, проблем никогда не было, надеюсь, сэмы в этом отношении не хуже. А что, где-то эта проблема еще актуальна? Мне казалось, она канула в лету со 176й серией. Или я неправ? Ответьте, кто сталкивался.
|
|
|
|
|
Feb 1 2007, 20:20
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Andy Great @ Feb 1 2007, 10:48)  Цитата(sonycman @ Jan 31 2007, 19:43)  Что-то не нашёл в даташите на SAM7 как у него обстоят дела с защитой от статики. С AVRами, правда, проблем никогда не было, надеюсь, сэмы в этом отношении не хуже.
А что, где-то эта проблема еще актуальна? Мне казалось, она канула в лету со 176й серией. Или я неправ? Ответьте, кто сталкивался. При работе с ЖКИ Мэлт MT16S2D (или H) индикатор немедленно вышел из строя после небольшого статического щелчка от прикосновения пальцем к металлической рамке его дисплея (которая соединяется с GND сего девайса). Микроконтроллер (уже не помню, PIC это был или AVR) при этом никак не пострадал. Эти ЖКИ практически не имеют антистатической защиты. С ними надо быть особенно осторожным.
|
|
|
|
|
Feb 1 2007, 20:29
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Использую Болиминовские, двухстрочные, непомню имя. Ни разу не было проблем, специально не проверял, но собранные контроллеры лежат на складе как попало (я увидел и ахнул), кнопки выламывали, было, а в остальном... Я потому и спросил, что ни разу не сталкивался.
|
|
|
|
|
Feb 2 2007, 08:48
|
Местный
  
Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034

|
Цитата(Andy Great @ Feb 1 2007, 11:48)  А что, где-то эта проблема еще актуальна? Мне казалось, она канула в лету со 176й серией. Или я неправ? Ответьте, кто сталкивался. У нас тут один товарищ при запуске ПЛИС (алтера EPM240...) решил проверить не греется ли, "молния" между чипом и пальцем была весьма внушительная, чип потом выкусывали.
|
|
|
|
|
Feb 3 2007, 01:07
|

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

|
Цитата(sonycman @ Feb 2 2007, 23:50)  Но для чего тогда нужен этот long? Для совместимости? Для определенности. Цитата Наверное, его можно не использовать в программе, ведь достаточно будет int? Просто четко выражайте мысль в каждом конкретном случае. Там, где явно всегда независиимо от платфрмы нужет будет 32bit - так и пишите long /ulong. Ну а для расходных целей, типа из функции возвратить пару-тройку-сотню... кодов ошибок - естественно int. При таком подходе будет меньше напрягов как для Вас, так и для контроллера (поскольку int это макcимально "естественный" и "удобный" для микроконтролера тип) при портировании на разные платформы.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 3 2007, 01:12
|
Местный
  
Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675

|
char - 8 short - 16 long - 32 short <= int <= long - для разных платформ по-разному, как правило int == "битности" процессора (Это из наблюдений. точной формулировки - почему так - не помню) А еще лучше написать себе .h типа такого: Код typedef signed char I8; typedef unsigned char UI8; typedef signed short I16; typedef unsigned short UI16; typedef signed long I32; typedef unsigned long UI32; typedef int STATUS; .... И там где нужен точный размер использовать эти typedef. При переносе - проверить только эти несколько строчек.
|
|
|
|
|
Feb 3 2007, 03:24
|

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

|
Цитата(defunct @ Feb 3 2007, 01:24)  Для 8-ми биток 16-ти разрядный int не особо то естественный. Такого требования (16bit) ограничения в общем случае не существует. Стандарт "C" накладывает только следующие ограничения sizeof( char ) <= sizeof( short ) <= sizeof( int ) <= sizeof( long ) Компиляторы для 8bit контроллеров которые принимают sizeof( int ) = 16 не слишком хорошо поступают  Хотя естественно ничего не нарушают и более того - им не приходится вводить дополнительно "лишний" 16bit тип. Лично мне по названой ранее причине много больше нравится "естественый для процессора" тип int. К счастью это условие как правило выполняется для контролеров начиная с 16bit. Если писать на "C" для 8bit-ников, то для переносимости стоит заводить свой специальный tinyint (а не использовать char !), который при портировании на большие контроллеры дефинируется как простой int.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 3 2007, 04:45
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(zltigo @ Feb 3 2007, 03:24)  ...Если писать на "C" для 8bit-ников, то для переносимости стоит заводить свой специальный tinyint (а не использовать char !), который при портировании на большие контроллеры дефинируется как простой int. Простите, а можно подробнее. Дело в том, что определением "int" я вообще не пользуюсь, потому, как для разных платформ оно имеет разное значение. Но мне непонятно, как "char" может даже на больших контроллерах быть интерпретирован как "int". Приведите пример, плиз. Вопрос имеет чисто познавательное значение.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 3 2007, 05:22
|

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

|
Цитата(Stanislav @ Feb 3 2007, 03:45)  Дело в том, что определением "int" я вообще не пользуюсь, потому, как для разных платформ оно имеет разное значение. В некоторых случаях размер не имеет особого значения, но явно указывая какой-нибудь счетчик как байтовый для 8bit платформы можем иметь ненужные напряги для, например, 32 ARM который имеет много более скромные возможности по работе с 8bit. Посему int удобен для использования как размер на усмотрение компилятора. Для этого и пользую. Цитата Но мне непонятно, как "char" может даже на больших контроллерах быть интерпретирован как "int". Приведите пример, плиз. Вопрос имеет чисто познавательное значение. Почему не понятно? Ограничений нет. Реальные компиляторы? Под 8bit на "C" крайне мало писал, но под Z80 компилятор с управляемым размером int встречал, как и модификатор "small int". Для решения этих проблем с С99 были введены int_least8_t и до кучи int_fast8_t типы. В stdint.h хидерах они естественно теперь есть, но я еще ни разу не видел что кто-нибудь пользовался
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 3 2007, 06:42
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(zltigo @ Feb 3 2007, 05:22)  Цитата(Stanislav @ Feb 3 2007, 03:45)  Дело в том, что определением "int" я вообще не пользуюсь, потому, как для разных платформ оно имеет разное значение. В некоторых случаях размер не имеет особого значения, но явно указывая какой-нибудь счетчик как байтовый для 8bit платформы можем иметь ненужные напряги для, например, 32 ARM который имеет много более скромные возможности по работе с 8bit. Посему int удобен для использования как размер на усмотрение компилятора. Для этого и пользую. Непонятно. Засада в том, что даже АВР-овские компилеры (IAR, например) интерпретируют "int" как 16-бит, что, в общем-то, неправильно, но это факт. Я, правда, на С не делал ни одного реального проекта для 8-бит процессоров, но, по-моему, использование типа "int" порождает больше проблемм, чем удобств пользования. Посему считаю его изжившим себя. Если не прав - поправьте. Далее, согласитесь, что перенос фирмваре с одной платформы на другую (а, тем более, другой разрядности), бывает весьма редко, и для этого кому-то приходится совершать подвиг, который вовсе не ограничивается преобразованием типов. И ещё. По-моему, АРМ с 8 (или 16) бит справится не хуже, чем с 32. Цитата(zltigo @ Feb 3 2007, 05:22)  Цитата(Stanislav @ Feb 3 2007, 03:45)  Но мне непонятно, как "char" может даже на больших контроллерах быть интерпретирован как "int". Приведите пример, плиз. Вопрос имеет чисто познавательное значение. Почему не понятно? Ограничений нет. Реальные компиляторы? Под 8bit на "C" крайне мало писал, но под Z80 компилятор с управляемым размером int встречал, как и модификатор "small int". Для решения этих проблем с С99 были введены int_least8_t и до кучи int_fast8_t типы. В stdint.h хидерах они естественно теперь есть, но я еще ни разу не видел что кто-нибудь пользовался. Стоп-стоп. Здесь речь идёт, вроде, о "больших" контроллерах. Но в данном курятнике я не разу не встречал интерпретации "char" как простой "int" (о специальных типах не говорим). Может, конкретный пример приведёте?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 3 2007, 13:53
|

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

|
Цитата(Stanislav @ Feb 3 2007, 05:42)  Засада в том, что даже АВР-овские компилеры (IAR, например) интерпретируют "int" как 16-бит, что, в общем-то, неправильно, но это факт. Ну мне, как Вы поняли это тоже кажется не слишком правильным, но "чаще всего встречающимся"  как написали Атмеловцы. Цитата Посему считаю его изжившим себя.Если не прав - поправьте. Совсем наоборот! C постепенным уходом даже из embedded восьмибитных контроллеров с их тупо используемым принципом "чаще всего встречается" (а почему чаще всего тоже ясно - "C" компиляторы на 16bit расцвели, вот и "чаще" оказались на момент прихода их на 8bit платформы) int становится НОРМАЛЬНО применимым типом. Именно по этой причине, полагаю, и ранее упомянутые типы введеные С99 никому нахрен и не понадобилитсь, ибо int он и есть тот самый и "не менее X" и "быстрый". Цитата Далее, согласитесь, что перенос фирмваре с одной платформы на другую (а, тем более, другой разрядности), бывает весьма редко Отнюдь! У мения, например, контролер самая мелкая микросхемка, как правило и львиная доля наработанного кода относится к многочисленной периферии. Вот и портирутся наработки в 8bit (8085->51) на 186 -> 486 -> ARM. Да и чужой код тоже портируется - буквально на прошлой неделе MicroChip-овские 8bit исходники для работы с ENC28J60 частично использовал (точнее пытался, ибо дерьмом в общем-то оказались - в результате один header остался) для 32bit ARM. Цитата И ещё. По-моему, АРМ с 8 (или 16) бит справится не хуже, чем с 32.  Хуже  , даже НЕ рисковый процессор типа x86 имеющий полный набор команд для работы c 8-16-32 битными значениями как в регистрах, так и в памяти хуже( медленнее) справляется с не родными размерами переменных не выровнянными на разрядность шины. Цитата Стоп-стоп. Здесь речь идёт, вроде, о "больших" контроллерах. Но в данном курятнике я не разу не встречал интерпретации "char" как простой "int" (о специальных типах не говорим). Тоже стоп! Я не говорил и "больших" (в смысле 16-32 битных?) контроллерах с 8bit int! Только о том, что для восьмибитных int может быть и вполне логичен, допустим стандартом и я встречал компилятор для 51 контроллера (поставлялся в начале 90x для заказных коммуникационных чипов с ядром 51 ). Компилятор, скорее всего (продукт были Израильский и контролеры и управляющие машины там все Intel/USA ) был или базировался на чем-то от Intel-овском. Все было вполне естественно, размерность int могла быть и 8 и 16 bit на усмотрение пользователя.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|