Skocz do zawartości

vp32

Użytkownicy
  • Zawartość

    26
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O vp32

  • Ranga
    3/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Z tym że to się mało ma do realiów. Sprawdziłem, dość ciężko to wykryć oscyloskopem.
  2. vp32

    Eclipse IDE dla STM32

    Tam niestety jest opisany Workbench
  3. cześć Mak ogromną prośbę, czy może mnie ktoś "poprowadzić za rękę" i pomóc zainstalować Eclipse IDE do pracy z STM32. Proszę nie podsyłajcie linka do strony eclipsa i nie mówcie o STM32CUBEIDE. Ja to wszystko znam, ja chcę odpalić czystego eclipsa z toolchainem, jeśli znajdzie się ktoś pomocny to bardzo, bardzo proszę
  4. vp32

    DWT w STM32f103

    PS do powyższych wpisów. Bardzo Was proszę sprawdźcie ten załączony na górze kod, wiem po wgraniu to nie chce działać. u mnie jst tak samo, ALE jak zresetuje ręcznie STMa (przycisk reset na nucleo) to działa normalnie. wychodzi na to że stlink blokuje dostęp do pewnych peryferiów ale po wgraniu kodu nawet jak nie jest w trybie debuggera to nie zwalnia pewnych zasobów. Jeszcze nie umiem tego naprawić, wiem że w jakimś rejestrze można to poprawić, jakby ktoś wiedział?
  5. vp32

    DWT w STM32f103

    Poszukam i popytam na zagranicznych forach. Dam znać co i jak. PS. czytałem to, ale tam było wyraźnie podane że to instrukcja odblokowuje dostęp ale dotyczy tylko F4, a w stm32103 nie ma tego rejestru. Zresztą u mnie coś w tym rejestrze DWT->CYCCNT coś sie dzieje, ale blokuje się
  6. vp32

    DWT w STM32f103

    Dziękuję Ci bardzo, Wiesz może co jest nie tak z tym kodem. Chciałbym po prostu dojść co tu jest nie tak, bo teoretycznie coś powinno ruszyć (DWT jest w f103)
  7. cześć Używał ktoś z Was układu DWT do odmierzania us odcinków czasu. Nie wiem dlaczego u mnie na STM32F103RB to nie chce pracować? Kod znaleziony w sieci ale chyba kazdy go używa bo pojawia się zawsze po wpisany DWT delay kod wygląda tak /* Use DWT_Delay_Init (); and DWT_Delay_us (microseconds) in the main */ __STATIC_INLINE void DWT_Delay_us(volatile uint32_t microseconds) { volatile uint32_t clk_cycle_start = DWT->CYCCNT; /* Go to number of cycles for system */ microseconds *= ((SYSCLK_FREQ_72) / 1000000); /* Delay till end */ while ((DWT->CYCCN
  8. A co ogólnie sądzie o pierwszym sposobie działania?
  9. Hej Potrzebuję podpowiedzi, bo przyznam że nie wiem jaka jest dobra praktyka w takiej sytuacji. Jest układ, który ciągle nadaje po RS232 dane w zależności od naciśniętego przycisku (wewnątrz tego układu). do tego nie ma dostępu mam tylko dane po RS W paczce danych która nadlatuje (to już w moim układzie) wyłapuje bajt który odpowiada za stan tych przycisków. Teraz w zależności od stanu dwóch bitów muszę zmanić stan dwóch przekaźników. Dane te lecą non stop tylko zmienia się stan bitu w zależności od tego czy dany przycisk jest wciśnięty. Mając wyłapany bit jak prawid
  10. A czy to prawda że adresy w SP nie mogą być dowolnymi adresami. Mówię tak ogólnie o wpisywaniu adresu do SP. Bo zauważyłem że nie da się wpisać do SP dowolnej wartości, zawsze LSB jest zero na dwóch pozycjach tj. .........00 Szukałem czy jest gdzieś o tym napisane w dokumentacji ale nie znalazłem.
  11. Z lektury PM0056 po części narodziły się pytania i wątpliwości. Aby nie było problemów z działaniem przerwań wyrównanie powinno być włączone poprzez ustawienie na 1 bitu STKALIGN. Tylko w debugerze widać że ten bit jest cały czas wyzerowany. Nawet STMCubeMX go nie ustawia przy inicjacji. Co prawda ARM pisze że wartość początkowa (po resecie) tego bitu powinna być 1 (tak zaleca) to nawet w uC które mają najnowszą rewizję ten bit jest zero. Ciekawe czy jakbym sam na starcie ustawił ten bit (pomimo że sami programiści STM pisząc kod do wygenerowania tego nie robią) to byłby jakiś błąd
  12. Tak ogólnie to trochę zacząłem szukać bo wydaje mi się że temat dość istotny (chyba) a raczej przemilczany. Nie udało mi się znaleźć informacji co się stanie jak nie będzie tego wyrównania, kiedy mogę to sprawdzić i się "przejechać" na tym. Druga sprawa ten atrybut interrupt wyrównujący stos przy przerwaniu. Przecież na stos jest odkładane kilka rejestrów sprzętowo zanim zostanie wykonany kod przerwania, więc jaki jest sens wyrównywać stos po odłożeniu na nim czegoś co powinno zostać wyrównane przed początkiem odkładania. To nie AVRy gdzie trzeba było to robić ręcznie. Wg opisu w te
  13. Z tego co doczytałem z datasheet STM32F103C8 bazuje na 3 rewizjach, piszą że można to odczytać z obudowy (ale nie mogę dojść o czym mówią tak zamieszali to kodowanie) oraz można odczytać rejestr SCB->CPUID, więc mogą się zdarzyć pierwsze wersje Gdzie znalazłeś opis tego atrybutu na stronach ARM. Może o to Ci chodzi, bo ja znalazłem coś takiego Support of a 4-byte aligned stack (CCR.STKALIGN == ’0’) in ARMv7-M is deprecated PS. nie do końca również rozumiem ich skrót myślowy (patrząc po debugerze ten bit zawsze jest zero)
  14. Sprzętowe wyrównanie jest od którejś tam rewizji r1p0 chyba ale w r0p0 w ogóle jej już nie ma więc sprzęp nie wyrówna. Co wtedy się dzieje i w ogóle co będzie jak nie będzie tego wyrwnania? funkcja oryginalna void SysTick_Handler(void) { HAL_IncTick(); } i po wygenerowaniu asm SysTick_Handler: 08000be8: push {r7, lr} 08000bea: add r7, sp, #0 187 HAL_IncTick(); 08000bec: bl 0x8000d34 <HAL_IncTick> 191 } 08000bf0: nop 08000bf2: pop {r7, pc} A teraz po dopisaniu atrybutu interrpt __attribute__((inte
  15. Wytłumacz mi jak możesz jakoś prosto po co to wyrównywanie stosu i co to w ogóle znaczy? Standard to jedno ale to ma czemuś służyć, czemu? Sprawdziłem, ten atrybut nie jest ignorowany przez GCC. dodaje parę linii kodu na początku i na końcu przerwania.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.