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