123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- #include <xc.h>
- #include <string.h>
- #include <stdint.h>
- #include "pic24f_hal.h"
- #pragma config DSWDTPS = DSWDTPS1F
- #pragma config DSWDTOSC = LPRC
- #pragma config DSBOREN = OFF
- #pragma config DSWDTEN = OFF
- #pragma config DSSWEN = ON
- #pragma config PLLDIV = DISABLED
- #pragma config I2C1SEL = DISABLE
- #pragma config IOL1WAY = ON
- #pragma config WPFP = WPFP127
- #pragma config SOSCSEL = ON
- #pragma config WDTWIN = PS25_0
- #pragma config PLLSS = PLL_PRI
- #pragma config BOREN = ON
- #pragma config WPDIS = WPDIS
- #pragma config WPCFG = WPCFGDIS
- #pragma config WPEND = WPENDMEM
- #pragma config POSCMD = EC
- #pragma config WDTCLK = LPRC
- #pragma config OSCIOFCN = OFF
- #pragma config FCKSM = CSECMD
- #pragma config FNOSC = PRI
- #pragma config ALTCMPI = CxINC_RB
- #pragma config WDTCMX = WDTCLK
- #pragma config IESO = OFF
- #pragma config WDTPS = PS32768
- #pragma config FWPSA = PR128
- #pragma config WINDIS = OFF
- #pragma config FWDTEN = OFF
- #pragma config ICS = PGx1
- #pragma config LPCFG = OFF
- #pragma config GWRP = OFF
- #pragma config GCP = OFF
- #pragma config JTAGEN = OFF
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _OscillatorFail ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AddressError ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _StackError ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _MathError ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltOscillatorFail ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltAddressError ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltStackError ( void ) ;
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltMathError ( void ) ;
- void platform_init(void)
- {
-
-
-
- #if 0
-
- if (OSCCONL & 0x80){
-
- while(1);
- }
-
- char a , b , c , *p ;
- a = 0x02;
- b = 0x78 ;
- c = 0x9A ;
- p = (char *) &OSCCONH ;
-
- asm volatile ("mov.b %1,[%0] \n"
- "mov.b %2,[%0] \n"
- "mov.b %3,[%0] \n" : : "r"( p ) , "r"( b ) , "r"( c ) ,
- "r"( a ) ) ;
-
- a = 1 ;
- b = 0x46 ;
- c = 0x57 ;
- p = (char *) &OSCCONL ;
-
- asm volatile ("mov.b %1,[%0] \n"
- "mov.b %2,[%0] \n"
- "mov.b %3,[%0] \n" : : "r"( p ) , "r"( b ) , "r"( c ) ,
- "r"( a ) ) ;
- #endif
-
-
- return;
- }
- #if HWCRYPTO
- void HW_AES128_Init(void)
- {
-
- CRYCONLbits.CRYON = 1;
- CRYCONLbits.OPMOD = 0x0;
- CRYCONLbits.CPHRSEL = 1;
- CRYCONLbits.CPHRMOD = 0;
- CRYCONHbits.KEYSRC = 0;
- }
- void HW_AES128_LoadKey(uint8_t * key)
- {
-
- memcpy((void *)&CRYKEY0, key, 16);
- }
- void HW_AES128_Enc_pretrigger(uint8_t * pt)
- {
- memcpy((void*)&CRYTXTA0, pt, 16);
- }
- void HW_AES128_Enc(uint8_t * pt)
- {
- CRYCONLbits.CRYGO = 1;
-
- while (CRYCONLbits.CRYGO == 1)
- }
- void HW_AES128_Enc_posttrigger(uint8_t * pt)
- {
- memcpy(pt, (void*)&CRYTXTB0, 16);
- }
- #endif
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _OscillatorFail ( void )
- {
- INTCON1bits.OSCFAIL = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AddressError ( void )
- {
- INTCON1bits.ADDRERR = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _StackError ( void )
- {
- INTCON1bits.STKERR = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _MathError ( void )
- {
- INTCON1bits.MATHERR = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltOscillatorFail ( void )
- {
- INTCON1bits.OSCFAIL = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltAddressError ( void )
- {
- INTCON1bits.ADDRERR = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltStackError ( void )
- {
- INTCON1bits.STKERR = 0 ;
- while (1) ;
- }
- void __attribute__ ( ( __interrupt__ , auto_psv ) ) _AltMathError ( void )
- {
- INTCON1bits.MATHERR = 0 ;
- while (1) ;
- }
|