Препод в универе рассказал мне 20+ лет назад, что ему рассказывал его препод, что на новомодных тогда пнях такой фортель выполняется за ноль тактов. Побольше даже двадцати, получается)))
Пара мыслей спросонок. Не претендуя на глубокий смысл, конечно же.
> Max Burst Size – ... Пока этот размер ... записан или прочитан, другие ... не смогут обратиться... .
Наверное, всё-таки, это (по аналогии с сетями) объём данных "сверх пропускной способности", который модуль может прожевать. Но не должен. Иначе бы назывался как-нибудь вроде Min Frame Size (и не имел понятного, по крайней мере для меня, функционального смысла).
В вашем примере с launch_dma_includes() с указателями нигде не используется volatile. Они там все передаются в Xil-функции, где, наверняка, приводятся, но всё же. Возможно, из-за подобного подхода в C-коде у вас не получается работать с кэшами, и приходится их отключать.
Очень интересно было бы посмотреть сколько тактов займёт этот лаунч, если указателям натыкать volatile. По идее столько же, но компилеры умеют удивлять, а любопытство это двигатель прогресса. Впрочем, как и причина травм и преждевременной смерти)))
Препод в универе рассказал мне 20+ лет назад, что ему рассказывал его препод, что на новомодных тогда пнях такой фортель выполняется за ноль тактов. Побольше даже двадцати, получается)))
Злоупотребление goto в языках высокого уровня это симптом плохого кода. Принципиальное его отрицание - сектантство vulgaris.
Пара мыслей спросонок. Не претендуя на глубокий смысл, конечно же.
> Max Burst Size – ... Пока этот размер ... записан или прочитан, другие ... не смогут обратиться... .
Наверное, всё-таки, это (по аналогии с сетями) объём данных "сверх пропускной способности", который модуль может прожевать. Но не должен. Иначе бы назывался как-нибудь вроде Min Frame Size (и не имел понятного, по крайней мере для меня, функционального смысла).
В вашем примере с launch_dma_includes() с указателями нигде не используется volatile. Они там все передаются в Xil-функции, где, наверняка, приводятся, но всё же. Возможно, из-за подобного подхода в C-коде у вас не получается работать с кэшами, и приходится их отключать.
Очень интересно было бы посмотреть сколько тактов займёт этот лаунч, если указателям натыкать volatile. По идее столько же, но компилеры умеют удивлять, а любопытство это двигатель прогресса. Впрочем, как и причина травм и преждевременной смерти)))
Сто лет как не занимаюсь ПЛИСами, так что "прошу отнестись с пониманием" ©
"Зловещий барьер" Рассела. Хорошая классическая фантастика.
Температура явно в десятых долях кельвина. 0x0b74 = 2932. А 293.2-273.1 как раз 20.1