Pull to refresh
210
Руслан@checkpoint

Old-time Unix hacker

1,2
Rating
192
Subscribers
Send message

А я вот смотрю на фотку к статье и думаю, какое было славное время. Мужики с баками и в джинсах "клёш". Вокруг дорогие приборы. Интересно, фотку тоже нейронка сгенерировала ?

Тут используется некоторая хитрожопость компилятора, который знает как подкорректировать конкретную константу чтобы при знаковом сложении получить верный результат. Этот фокус работает не для всех констант.

В ДКП ничего не понимаю, но в статье затронута интересная для меня тема - загрузка 64-битной константы в архитектуре RV64I. Недавно столкнулся с необходимостью загружать произвольную константу и не без удивление обнаружил, что код получается очень длинный. Как я не экспериментировал, менее 12 инструкций у меня не выходит. Может быть есть какой-то способ уменьшить их число ?

Ниже мой вариант. Он не использует знаковых сложений (ADDI), поэтому более понятен человеку.

# Load 64 bit constant 0xFEDCBA9876543210 to t0
# This algorithm can work with arbitrary values (signed or unsigned)
# Uses t0, t1 and t2

start:
	# Load high 32 bits (sign independent)
	lui     t0, 0xFEDCB
	lui     t1, 0xA98
	srli	t1, t1, 12 
	or	t0, t0, t1
	slli    t0, t0, 32

	# Load low 32 bits (sign independent)
	lui     t2, 0x76543
    lui     t1, 0x210
	srli	t1, t1, 12 
	or	t2, t2, t1

	# Clear high 32 bits in t2
	slli     t2, t2,32
	srli     t2, t2,32

	# Combine the two parts
	or      t0, t0, t2 

	# Exit
	ret

PS: Пришел к выводу, что лучшее решение - загружать константы из памяти.

И где ?

ssh habra.chat не алё.

Почему геморой ? Я подписывался на журналы, пока они выходили в печать.

или тебе в туалет почитать

Почему бы и нет ?

Пока не пробовал. Занять немного другой проблемой: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291935

В репозитории FreeBSD есть supertux-0.1.3_14 и supertux2-0.6.3_12. Версию 0.7 пока еще не завезли. Игра клёвая, играем с детьми по вечерам. :-)

Спасбо за Ваше ревью. Похоже, что Вы единственный кто смог прочесть статью целиком. :-)

На счет установки Boot Protocol принудительно. Мне где-то попадалась инфа (помоему на OSDev), что с некоторых пор все клавы и мыши, по просьбам разработчиков BIOS, по умолчанию работают в Boot протоколе. Во всяком лучае, мне пока что другие не попадались. :-) Но я подправлю код конечно же.

Есть идея расширить до USB 1.1 и сделать поддержку Mass Storage Class, чтобы загружать на ПЛИСе какую нибудь ОС.

Вроде бы и самолёты какие-то доводилось собирать. Вот значит чем их приходилось клеить.

И ведь таки выжили! :-)

Это он сейчас токсичный, канцерогенный и сильный наркотик. А во времена СССР в авто/авиа/судомодельных кружках дихлорэтаном клеили любой пластик - универсальное средство было. Еще помните были такие конструкторы из пластика для сборки авиамоделей, там детали от литника надо было отламывать и склеивать - в них тоже прилагался пузырек дихлорэтана. :)

Больно это 25кВ анодного напряжения от кинескопа. Все остальное радиолюбителю в радость. ;-)

Ацетон -- м-м-м!

Дихлорэтан!

Я вот тоже вспомнил такое. В школьные годы (конец 80-х) собирал гирлянду выполненную полностью из неонок от стартеров: последовательно соединенные неонки, штук 10-15, подключаемые прямиком в сеть 220В. Такая гирлянда работала так: сначала мигала достаточно редко, но со временем (видимо лампы прогревались), ритмочность/частота увеличивалась, все лампы мигали в разнобой случайным образом. Эффект был очень клёвый. Правада приходилось изрядно полазить по помойкам в поисках выброшенных ламп дневного освещения, чтобы добыть из них рабочих стартеров. :-)

  1. На Pi я могу писать перловые скрипты, агрегировать данные и формировать единый HTTPS запрос. К тому же это не единственная её задача. Через неё я управляю системой видеонаблюдения, да и вообще иметь Unix хост в доме весьма полезная штука. :)

  2. Оповещения не придут только если сдохнет мой почтовый сервер или база данных, но этого незаметить достаточно сложно. Система оповещения уcтроена так, что если обновления данных в базе по какому либо датчику не произошло в течении 5 минут, то будет отослано оповещение. Оповещения шлются до тех пор, пока я не отштырю галку или не устраню проблемы с датчиком (налажу поставку обновлений данных). Я уже научен опытом, в прошлом году все произошло по Вашему сценарию, но я быстро спохватился. :-)

Сделайте пожалуйста поле Мессенджер опциональным. Не поверите, но есть люди которые не пользуются мессенджерами по принципиальным соображениям. Да, я такой.

Спасибо. Тогда еще вопрос: по каким проводам Вы гоняете CAN внутри дома ?

Information

Rating
1,967-th
Date of birth
Registered
Activity