Главное правило природы - выжил тот кто, приспособился. Так не только в России. Похоже, что весь мир, все еще, живет по закону "сильный кушает слабого".
Производитель этой условной ПЛИС может подготовить "Soft SoC", который может использовать не ограниченое количество программистов МК. И такие "Soft SoC" могут и стать "профильными микркхами". И при этом, такой подход позволит менять "профильность микрухи" почти динамически. Кто мешает сделать такие "Sof SoC" как аналоги STM32, Atmega, ... DSP... , на открытой ISA , например RISC-V? И при этом получить готовый компилятор...
Закупаешь одну ПЛИС... А в замен получаешь возможность использовать его как 100500 вариантов профильной микркхи.
Да их даже поставлять можно с прошитым туда по умолчанию МК...
А если эти ПЛИС производить тоннами ... То станут дешевле STM... Эхх...
Другими словами: производишь одну модель ПЛИС, а продаешь ее как 100500 моделей МК, DSP, specASIC...
Вы думаете так только в РФ ? А сколько сможете назвать крупных интернациональных корпораций, которые не аффилированные со своим государством ? Думаю, здесь вопрос лишь о "степени интеграции друг в друга". А соответственно и степени влияния друг на друга.
А как сказывается на площади памяти, использование битовой маски (bit enable) или условного word enable (byte enable)? Есть ли преимущества если компилировать памяти только с записью "по словам" ? Если да, то какие ?
Я в своих самых свежих скриптах, остановился на своем варианте dputs.
namespace eval tardil {
# debug verbosity
variable debug 0
}
proc ::tardil::dbg_puts {args} {
variable debug
if { ${debug} >= [expr [info level]-1] } {
array set inf [info frame -1]
set empty_prefix ""
for {set i 0} {${i}<[expr [info level]-1]} {incr i} {
set empty_prefix " ${empty_prefix}"
}
puts "${empty_prefix}\[$inf(proc)\] [lindex ${args} 0]"
}
}
# Устанавливаем глубину на которых будут работать dbg_puts
set ::tardil::debug 99
Данный вариант позволяет контролировать глубину стека вызовов процедур, на котором срабатывает эта dbg_puts. В вывод dbg_puts добавляется префикс в виде пробела (в зависимости от глубины стека) и имени процедуры из которой была вызвана dbg_puts с аргументами. Правда, только сейчас заметил, что это справедливо, когда руками вызываю в консоли Vivado, а если из скрипта вызвана (который запущен как source ./path_script.tcl ), то что то идет не так ..
Спасибо за статью! Поделюсь немного своим опытом, на основе статьи. Входные данные:
MikroTik hAP ac² (IPQ-4018:Arm® Cortex®-A7)
RouterOS 7.15.3
DNS FWD
Так как у меня RouterOS 7.15.3, то /ip/dns/static/ add ... forwad-to=localhost... еще не работает. Но есть отдельная железка с Pi-hole, туда и направил. Работает.
Docker образ hev-socks5-tunnel-mikrotik
Docker образ snegowiki/hev-socks5-tunnel-mikrotik c тегом latest (на момент написания коментария), поддерживает две архитектуры amd64 и arm64, тоесть не подходят для моего роутера. К счастью, тег test поддерживает уже три архитектуры, включая arm/v7. В итоге его и использовал: snegowiki/hev-socks5-tunnel-mikrotik:test
Маркировка соединения, вместо маркировки пакетов
При маркировки пакетов, на основе списка, придется проверять каждый пролетающий пакет на наличие в этом списке. Можно ограничится проверкой присутствия в списке только первых пакетов соединений и пометить само соединение. А вторым правилом, на основе помеченных соединений, выдавать метку для роутинга. Так роутеру будет полегче. У меня выглядит так:
fasttrack можно не отключать. Просто указать, чтобы не помечал уже помеченные соединения connection-mark=no-mark. Выглядит примерно так (убедившись в правильном порядке):
Хочется верить, что все зависит от объема. И при определенных условиях, это все окупиться :)
Главное правило природы - выжил тот кто, приспособился. Так не только в России. Похоже, что весь мир, все еще, живет по закону "сильный кушает слабого".
Производитель этой условной ПЛИС может подготовить "Soft SoC", который может использовать не ограниченое количество программистов МК. И такие "Soft SoC" могут и стать "профильными микркхами". И при этом, такой подход позволит менять "профильность микрухи" почти динамически. Кто мешает сделать такие "Sof SoC" как аналоги STM32, Atmega, ... DSP... , на открытой ISA , например RISC-V? И при этом получить готовый компилятор...
Закупаешь одну ПЛИС... А в замен получаешь возможность использовать его как 100500 вариантов профильной микркхи.
Да их даже поставлять можно с прошитым туда по умолчанию МК...
А если эти ПЛИС производить тоннами ... То станут дешевле STM... Эхх...
Другими словами: производишь одну модель ПЛИС, а продаешь ее как 100500 моделей МК, DSP, specASIC...
Вы думаете так только в РФ ? А сколько сможете назвать крупных интернациональных корпораций, которые не аффилированные со своим государством ?
Думаю, здесь вопрос лишь о "степени интеграции друг в друга". А соответственно и степени влияния друг на друга.
А как сказывается на площади памяти, использование битовой маски (bit enable) или условного word enable (byte enable)? Есть ли преимущества если компилировать памяти только с записью "по словам" ? Если да, то какие ?
Я в своих самых свежих скриптах, остановился на своем варианте dputs.
Данный вариант позволяет контролировать глубину стека вызовов процедур, на котором срабатывает эта
dbg_puts. В выводdbg_putsдобавляется префикс в виде пробела (в зависимости от глубины стека) и имени процедуры из которой была вызванаdbg_putsс аргументами. Правда, только сейчас заметил, что это справедливо, когда руками вызываю в консоли Vivado, а если из скрипта вызвана (который запущен как source ./path_script.tcl ), то что то идет не так ..Спасибо за статью!
Поделюсь немного своим опытом, на основе статьи. Входные данные:
MikroTik hAP ac² (IPQ-4018:Arm® Cortex®-A7)
RouterOS 7.15.3
DNS FWD
Так как у меня RouterOS 7.15.3, то
/ip/dns/static/ add ... forwad-to=localhost...еще не работает. Но есть отдельная железка с Pi-hole, туда и направил. Работает.Docker образ hev-socks5-tunnel-mikrotik
Docker образ
snegowiki/hev-socks5-tunnel-mikrotikc тегомlatest(на момент написания коментария), поддерживает две архитектурыamd64иarm64, тоесть не подходят для моего роутера. К счастью, тегtestподдерживает уже три архитектуры, включаяarm/v7. В итоге его и использовал:snegowiki/hev-socks5-tunnel-mikrotik:testМаркировка соединения, вместо маркировки пакетов
При маркировки пакетов, на основе списка, придется проверять каждый пролетающий пакет на наличие в этом списке. Можно ограничится проверкой присутствия в списке только первых пакетов соединений и пометить само соединение. А вторым правилом, на основе помеченных соединений, выдавать метку для роутинга. Так роутеру будет полегче. У меня выглядит так:
fasttrack
fasttrack можно не отключать. Просто указать, чтобы не помечал уже помеченные соединения
connection-mark=no-mark. Выглядит примерно так (убедившись в правильном порядке):