Atmel studio / GCC - oprimalizace
Pavel Hudecek
edizon na seznam.cz
Středa Duben 1 17:32:50 CEST 2020
Super, díky.
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc | (0<<CLKCTRL_CLKOUT_bp));
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLB,0);
Funguje i při o0.
PH
Od: Jan Waclawek
Odesláno:středa 1. dubna 2020 17:20
Komu: HW-news
Předmět: RE: Atmel studio / GCC - oprimalizace
V avr-libc v xmega.h som nasiel
#ifdef __DOXYGEN__
/**
\def _PROTECTED_WRITE
\ingroup avr_io
Write value \c value to IO register \c reg that is protected through
the Xmega configuration change protection (CCP) mechanism. This
implements the timed sequence that is required for CCP.
Example to modify the CPU clock:
\code
#include <avr/io.h>
_PROTECTED_WRITE(CLK_PSCTRL, CLK_PSADIV0_bm);
_PROTECTED_WRITE(CLK_CTRL, CLK_SCLKSEL0_bm);
\endcode
*/
#define _PROTECTED_WRITE(reg, value)
#else /* !__DOXYGEN__ */
#define _PROTECTED_WRITE(reg, value) \
__asm__ __volatile__("out %[ccp], %[ccp_ioreg]" "\n\t" \
"sts %[ioreg], %[val]" \
: \
: [ccp] "I" (_SFR_IO_ADDR(CCP)), \
[ccp_ioreg] "d" ((uint8_t)CCP_IOREG_gc), \
[ioreg] "n" (_SFR_MEM_ADDR(reg)), \
[val] "r" ((uint8_t)value))
#endif /* DOXYGEN */
Mozno to bude chciet trocha potunit pre ten tiny, neviem, ale na prvy
pohlad to vyzera dobre.
Nechat to v C je pristup "mne to funguje".
wek
----- Original Message ---------------
Dalsie cca 2 minuty hladania na avrfreaks.net a tu je naznaceny aj inline
asm aj normalny:
https://www.avrfreaks.net/forum/ccp-ccpioreggc-assembler-anyone
urcite sa toho tam da najst viac, alebo sa tam da aj opytat.
wek
__________________
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20200401/e342a627/attachment.html>
Další informace o konferenci Hw-list