| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| cortex-m0/armv6m асемблерски библиотечки http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=13291 |
Страница 1 от 3 |
| Автор: | miro_atc [ Съб Окт 25, 2014 9:53 pm ] |
| Заглавие: | cortex-m0/armv6m асемблерски библиотечки |
като гледам в newlib-a няма никой за куртекс-М0 (не че съм изненадан) та ще се наложи да си го портвам, ама преди да съм запретнал ръкави викам да попитам ако случайно някой е попадал на читави имплементации за куртекс-0 на udiv(), udiv10() и там разните вариации за деление, модул и т.н. включая и long long... |
|
| Автор: | scout_3pm [ Съб Окт 25, 2014 10:31 pm ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
arm_cortexM0l_math.lib (Little endian on Cortex-M0 / CortexM0+) arm_cortexM0b_math.lib (Big endian on Cortex-M0 / CortexM0+) Една от тези двете няма ли да свърши работа |
|
| Автор: | palavrov [ Нед Окт 26, 2014 1:29 am ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
виж в eCos ... трябва да ги има, но не знам доколко са изпипани едит: май имат поддръжка само за M3, за М0 не виждам ... |
|
| Автор: | Цецо [ Нед Окт 26, 2014 11:46 am ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
Знам, че много ги обичаш, ама CMSIS гледа ли? Мисля, че имаха оптимизирани математики за всички куртекси... Опс, сега проверих, то там било тежка артилерия, матрици, комплексни числа и т.н. Простички няма. |
|
| Автор: | miro_atc [ Нед Окт 26, 2014 2:01 pm ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
С изключение на делението на 10 това са функции от стандартната библиотека... CMSIS по принцип е "над" тези неща. Нормално би трябвало АРМ да ги напишат и вероятно са ги написали в Кейл, а другите да се спасяват кой как може... Всъщност не знам за М0 дали изобщо може да се оптимизират тия функции, ако не то няма смисъл да се пишат, може и заради това да не си ги написали.... Макар че за М3-4 и А-сериите със сигурност има смисъл, ама още не всичко е оправено. Както и да е, аз може би 64-бит аритметиката ще я разкарам, евентуално само деление на 10 ще се опитам да оптимизирам... |
|
| Автор: | vesko_hard [ Нед Окт 26, 2014 3:04 pm ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
Имам спомени че наскоро от някъде ми попадна ADS , ама даже не се сещам къде съм го забутал. Но не знам там дали ги има на асм или са на либове направо. В понеделник ще проверя. |
|
| Автор: | miro_atc [ Вто Окт 28, 2014 4:50 pm ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
те такова търсех... |
|
| Автор: | miro_atc [ Вто Окт 28, 2014 6:43 pm ] | |||||||||
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки | |||||||||
хе-хе CMSIS имат много интересна имплементация на CLZ:
не дай си боже data да е равно на 0 |
||||||||||
| Автор: | stefan63 [ Вто Окт 28, 2014 7:00 pm ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
само тази функция ли е бъгава? |
|
| Автор: | palavrov [ Вто Окт 28, 2014 9:00 pm ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
Бъгливци ... те това е истинския алгоритъм: for(count=0;data;count++) data &= data-1; |
|
| Автор: | miro_atc [ Вто Окт 28, 2014 11:13 pm ] | |||||||||
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки | |||||||||
почти си го нацелил, само дето цикълът е малко по-различен и сметките също |
||||||||||
| Автор: | palavrov [ Сря Окт 29, 2014 3:14 am ] | ||||||||||||||||||
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки | ||||||||||||||||||
Оффф ... CLZ = count leading zeros ... това дето съм го написал е за броене на вдигнатите битове ... това за водещите нули даже е по лесно |
|||||||||||||||||||
| Автор: | miro_atc [ Сря Окт 29, 2014 10:07 am ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
лесно-лесно, ама тва лесно онова лесно, а пък докато подредя всичките "леснотии" лесно си губя времето |
|
| Автор: | palavrov [ Сря Окт 29, 2014 11:32 am ] |
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки |
Хрумна ми как може да се направи това броене супер елегантно с двоично търсене - довечера ще го разпиша на C и ще го постна ... т.е. за 64 бита с 6 итерации намираш колко са водещите нули |
|
| Автор: | ps66 [ Сря Окт 29, 2014 12:05 pm ] | |||||||||||||||||||||||||||
| Заглавие: | Re: cortex-m0/armv6m асемблерски библиотечки | |||||||||||||||||||||||||||
сигурен ли си, че някъде няма декларирано нещо като: #define CLZ(data) (data ? __CLZ(data) : 0) иначе всеки фрагмент от код може да бъде "смешен"
твоя "алгоритъм" е елементарен, но едва ли някой би го оценил! трудността му е log2(64), но трябва да ползваш 32bit, 16bit, 8bit, 4bit, 2bit, 1bit операции ... и като нищо ефективността му ще отиде по дяволите |
||||||||||||||||||||||||||||
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|