klen 1 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба 1. как то мимо проехал, просто закаментил CMSIS две эти функции потому как не разбирался - кто врет: асм на наличие двух одинаковых регистров, или компилятор врет при их генерации. судя по доке для strexb и strexb это не воспрещаться но и не написано что можно (я решил ничего не предпринимать по поводу этого косяка). этот тонкий момент я оставил на потом. кто точно знает как работает ядро по этому вопросу сообщите. 2. моя рабочая гипотеза - врет ассемблер, если так то его можно быстренько подправить (если не будет подводных камней). 2_AHTOXA на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных.... нехрен грязь размазывать во времени и пространстве - сразу жопу вытер, помыл и забыл. я бы также сделал. проблем то никаких - имя скрипта поменял и все. немного изменил в ассемблере проверку регистров в инструкциях strexb/strexh, теперь таких сообщений не должно быть: /tmp/cc7ETq9C.s:508: Error: registers may not be the same -- `strexb r0,r0,[r1]' /tmp/cc7ETq9C.s:533: Error: registers may not be the same -- `strexh r0,r0,[r1]' теперь первый операнд не проверяется на равенство со вторым, одеако сравнивается с третьим и в случае совпадения будет сообщение об ошибке тут нада покурить доку ARM CM3 и понять как правильно нада поступать. мгне описание кажется неоднозначным. http://infocenter.arm.com/help/index.jsp?t...a/BABFFBJB.html нада посовещатся http://klen.org/Files/DevTools/x86_32-kgp-..._32-20111129.7z сборка релизная для виды 32бит, полная копия 20111126 , за исключением binutils (троганный моими руками :twak: ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба в что мешает на линуксе 0.6,0 запустит? религяи не позволяет? Религия-то позволяет. Просто знаний и умений в линуксе маловато. :laughing: а это что такое я спрашиваю? stm32.cfg: deprecated cfg file echo "DEPRECATED! use script 'target/stm32f1x.cfg' not 'target/stm32.cfg'" source [find target/stm32f1x.cfg] Это не то. Это попытка сохранения совместимости на уровне имён конфигов. А меня волнует несовместимость по имени флеша в конфиге. То есть, строчка в моём конфиге flash bank $_FLASHNAME stm32x 0 0 0 0 $_TARGETNAME теперь не работает, приходится её менять на flash bank $_FLASHNAME stm32f1x 0 0 0 0 $_TARGETNAME Видимо мой способ использования openocd (со своим конфигом) не пришёл в голову разработчикам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба Религия-то позволяет. Просто знаний и умений в линуксе маловато. :laughing: Это не то. Это попытка сохранения совместимости на уровне имён конфигов. А меня волнует несовместимость по имени флеша в конфиге. То есть, строчка в моём конфиге flash bank $_FLASHNAME stm32x 0 0 0 0 $_TARGETNAME теперь не работает, приходится её менять на flash bank $_FLASHNAME stm32f1x 0 0 0 0 $_TARGETNAME Видимо мой способ использования openocd (со своим конфигом) не пришёл в голову разработчикам. ну если все так трагично я могу помоч отцу русской демократии - докостылять версию из транка чтоб она одинаково реагировала на stm32x и stm32f1x и соответсвуеще ситуации назвать этот подарочный именной вариант openocd_0.6.0_SEFAFOTC (SPECIAL_EDITION_FOR_ANTOHA_FAN_OF_THE_COUCH) под как какой хост нада? вот откостыленная выерсия для linux64 http://klen.org/Files/DevTools/openocd_0.6...EFAFOTC.tar.bz2 на имя драйвера флеша stm32x реагирует также как на stm32f1x Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба Да не, особой трагедии нет. Так, лёгкая печаль:) За именную спецсборку - спасибо Только тогда и под венду (можно 32) тоже :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба А так пойдет? uint32_t __STREXB(uint8_t value, uint8_t *addr) { uint32_t result=0; // __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); __ASM volatile ("strexb r2, %2, [%1] \n" \ " mov %0, r2" : "=r" (result) : "r" (addr), "r" (value) : "r2" ); return(result); } Из плюсов: не ругается и компилиться Из минусов: правка стандартного файла и не гарантируется несовпадение регистров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба А так пойдет? uint32_t __STREXB(uint8_t value, uint8_t *addr) { uint32_t result=0; // __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); __ASM volatile ("strexb r2, %2, [%1] \n" \ " mov %0, r2" : "=r" (result) : "r" (addr), "r" (value) : "r2" ); return(result); } Из плюсов: не ругается и компилиться Из минусов: правка стандартного файла и не гарантируется несовпадение регистров. зачем извращатся лишней инструкцийе, попробуйте потестить оновленую сборку (-2 поста вверх), все соберется из стндартных исходников Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба зачем извращатся лишней инструкцийе, попробуйте потестить оновленую сборку (-2 поста вверх), все соберется из стндартных исходников Собирается. Но про равенство регистров нужно помнить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 29 ноября, 2011 Опубликовано 29 ноября, 2011 · Жалоба Собирается. Но про равенство регистров нужно помнить... компилятор пусть помнит - у него голова кбольшая, как у лошади, а я луше знать буду, когда нада он мне напомнит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 2 декабря, 2011 Опубликовано 2 декабря, 2011 · Жалоба Появилась доска STM32F4DISCOVERY. Собрал из исходников демку для -mcpu=cortex-m4: без оптимизации работает, с оптимизацией - пока нет) Демка сурьезная: играет WAV-файл с флешки. P.S.: Не работает только с -Os, на -O1 и -O2 работает) P.S.2: Работает на всех уровнях оптимизации! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 2 декабря, 2011 Опубликовано 2 декабря, 2011 · Жалоба Появилась доска STM32F4DISCOVERY. Собрал из исходников демку для -mcpu=cortex-m4: без оптимизации работает, с оптимизацией - пока нет) Демка сурьезная: играет WAV-файл с флешки. P.S.: Не работает только с -Os, на -O1 и -O2 работает) P.S.2: Работает на всех уровнях оптимизации! Попробуйте то же самое на yagarto - есть подозрение, что проблема в "демке", а не в компиляторе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 2 декабря, 2011 Опубликовано 2 декабря, 2011 · Жалоба Попробуйте то же самое на yagarto - есть подозрение, что проблема в "демке", а не в компиляторе. С демкой разобрался, но с FPU пока не работает (не уверен). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 4 декабря, 2011 Опубликовано 4 декабря, 2011 · Жалоба С демкой разобрался, но с FPU пока не работает (не уверен). воткните комиллеру опции -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard будет генерится код для fpu, в сборке под cortex-m4f все протянуто (libgcc,libc,libm) с нетерпением жду результов следующий свежак будет 'мои релизом', поэтому хочется его оотестить в хвос и в гриву. будет особыс спросбом собраны libgcc и libc(newlib) чтоб гарантировать чоб в бинарь неприлазило вско гадость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 4 декабря, 2011 Опубликовано 4 декабря, 2011 · Жалоба воткните комиллеру опции -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard будет генерится код для fpu, в сборке под cortex-m4f все протянуто (libgcc,libc,libm) с нетерпением жду результов следующий свежак будет 'мои релизом', поэтому хочется его оотестить в хвос и в гриву. будет особыс спросбом собраны libgcc и libc(newlib) чтоб гарантировать чоб в бинарь неприлазило вско гадость. Спасибо, буду пробовать. Боюсь, что воевать придется с либой, которая поставляется с демо-примером... Кста, у Вас уже есть на чем самому пробовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 4 декабря, 2011 Опубликовано 4 декабря, 2011 · Жалоба Спасибо, буду пробовать. Боюсь, что воевать придется с либой, которая поставляется с демо-примером... Кста, у Вас уже есть на чем самому пробовать? ечть, но руки не доходят, веремени нехватает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klop 0 18 декабря, 2011 Опубликовано 18 декабря, 2011 · Жалоба Прошу прощения за отвлеченный вопрос: Где можно найти гнушные тулзы под АВР АРМ собранные со статическими либами (чтоб под старыми версиями Линуксов нормально бегали) Заранее спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться