| Автор |
Съобщение |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 cortex-m0/armv6m асемблерски библиотечки
като гледам в newlib-a няма никой за куртекс-М0 (не че съм изненадан) та ще се наложи да си го портвам, ама преди да съм запретнал ръкави викам да попитам ако случайно някой е попадал на читави имплементации за куртекс-0 на udiv(), udiv10() и там разните вариации за деление, модул и т.н. включая и long long...
|
| Съб Окт 25, 2014 9:53 pm |
|
 |
|
scout_3pm
Ранг: Популярен
Регистриран на: Вто Авг 07, 2012 3:16 pm Мнения: 331
|
 Re: cortex-m0/armv6m асемблерски библиотечки
arm_cortexM0l_math.lib (Little endian on Cortex-M0 / CortexM0+) arm_cortexM0b_math.lib (Big endian on Cortex-M0 / CortexM0+) Една от тези двете няма ли да свърши работа  Оптимизирани мат. библиотеки от ARM - http://www.keil.com/pack/doc/CMSIS/DSP/html/index.html .
|
| Съб Окт 25, 2014 10:31 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: cortex-m0/armv6m асемблерски библиотечки
виж в eCos ... трябва да ги има, но не знам доколко са изпипани
едит: май имат поддръжка само за M3, за М0 не виждам ...
_________________ Мразя да мразя ...
|
| Нед Окт 26, 2014 1:29 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Re: cortex-m0/armv6m асемблерски библиотечки
Знам, че много ги обичаш, ама CMSIS гледа ли? Мисля, че имаха оптимизирани математики за всички куртекси...
Опс, сега проверих, то там било тежка артилерия, матрици, комплексни числа и т.н. Простички няма.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Нед Окт 26, 2014 11:46 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: cortex-m0/armv6m асемблерски библиотечки
С изключение на делението на 10 това са функции от стандартната библиотека... CMSIS по принцип е "над" тези неща. Нормално би трябвало АРМ да ги напишат и вероятно са ги написали в Кейл, а другите да се спасяват кой как може...
Всъщност не знам за М0 дали изобщо може да се оптимизират тия функции, ако не то няма смисъл да се пишат, може и заради това да не си ги написали.... Макар че за М3-4 и А-сериите със сигурност има смисъл, ама още не всичко е оправено. Както и да е, аз може би 64-бит аритметиката ще я разкарам, евентуално само деление на 10 ще се опитам да оптимизирам...
|
| Нед Окт 26, 2014 2:01 pm |
|
 |
|
vesko_hard
Ранг: Ориентиран
Регистриран на: Сря Фев 08, 2006 3:32 pm Мнения: 253 Местоположение: Благоевград
|
 Re: cortex-m0/armv6m асемблерски библиотечки
Имам спомени че наскоро от някъде ми попадна ADS , ама даже не се сещам къде съм го забутал. Но не знам там дали ги има на асм или са на либове направо. В понеделник ще проверя.
|
| Нед Окт 26, 2014 3:04 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: cortex-m0/armv6m асемблерски библиотечки
|
| Вто Окт 28, 2014 4:50 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: cortex-m0/armv6m асемблерски библиотечки
хе-хе CMSIS имат много интересна имплементация на CLZ: не дай си боже data да е равно на 0 
|
| Вто Окт 28, 2014 6:43 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: cortex-m0/armv6m асемблерски библиотечки
само тази функция ли е бъгава? 
|
| Вто Окт 28, 2014 7:00 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: cortex-m0/armv6m асемблерски библиотечки
Бъгливци ... те това е истинския алгоритъм:
for(count=0;data;count++) data &= data-1;
_________________ Мразя да мразя ...
|
| Вто Окт 28, 2014 9:00 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: cortex-m0/armv6m асемблерски библиотечки
почти си го нацелил, само дето цикълът е малко по-различен и сметките също 
|
| Вто Окт 28, 2014 11:13 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: cortex-m0/armv6m асемблерски библиотечки
Оффф ... CLZ = count leading zeros ... това дето съм го написал е за броене на вдигнатите битове ... това за водещите нули даже е по лесно 
_________________ Мразя да мразя ...
|
| Сря Окт 29, 2014 3:14 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: cortex-m0/armv6m асемблерски библиотечки
лесно-лесно, ама тва лесно онова лесно, а пък докато подредя всичките "леснотии" лесно си губя времето 
|
| Сря Окт 29, 2014 10:07 am |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: cortex-m0/armv6m асемблерски библиотечки
Хрумна ми как може да се направи това броене супер елегантно с двоично търсене - довечера ще го разпиша на C и ще го постна ... т.е. за 64 бита с 6 итерации намираш колко са водещите нули 
_________________ Мразя да мразя ...
|
| Сря Окт 29, 2014 11:32 am |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 Re: cortex-m0/armv6m асемблерски библиотечки
сигурен ли си, че някъде няма декларирано нещо като: #define CLZ(data) (data ? __CLZ(data) : 0) иначе всеки фрагмент от код може да бъде "смешен" твоя "алгоритъм" е елементарен, но едва ли някой би го оценил! трудността му е log2(64), но трябва да ползваш 32bit, 16bit, 8bit, 4bit, 2bit, 1bit операции ... и като нищо ефективността му ще отиде по дяволите
|
| Сря Окт 29, 2014 12:05 pm |
|
|