1 #include <system_def.h>
2 #include <ul_lib/ulan.h>
4 #include <ul_drv_fnc.h>
6 #include <local_config.h>
7 #ifdef CONFIG_MISC_VECT
11 #define HZ_TIMER 100 //100Hz pro casovac
13 KVPB_BLOCK_LOC kvpb_block_t kvpb_block_global;
14 UL_DYAC_VAR_LOC ul_dyac_t ul_dyac_global;
16 volatile uchar timer_str,jump_timer;
19 /****************************************************************************/
25 TH0=HZ2TMODE1H(HZ_TIMER); //nastav casovac0
26 TL0=HZ2TMODE1L(HZ_TIMER);
31 if (jump_timer) jump_timer--;
34 char ul_save_adr(uchar uaddr) UL_DYAC_REENTRANT
36 kvpb_set_key(&kvpb_store,KVPB_KEYID_ULAN_ADDR,1,&uaddr);
40 char ul_save_sn(unsigned long usn) UL_DYAC_REENTRANT
42 kvpb_set_key(&kvpb_store,KVPB_KEYID_ULAN_SN,4,&usn);
46 void setup_board(void)
52 #ifndef UL_WITHOUT_HANDLE
53 kvpb_block_t *kvpb_block=&kvpb_block_global;
54 ul_dyac_t *ul_dyac=&ul_dyac_global;
56 #endif /*UL_WITHOUT_HANDLE*/
63 //********************
65 TMOD=0x21; //citac0-16bitovy,1-8bitovy(reload)
66 TH0=HZ2TMODE1H(HZ_TIMER); //nastav casovac0
67 TL0=HZ2TMODE1L(HZ_TIMER);
68 TCON=0x10; //nul. priz. casov0,1;spust casov0
70 CKCON0=0x01; //X2 mod for at89c51ed2
73 MCON|=1; //XDATA memory map to 0x8400
75 #ifdef WATCHDOG_ENABLED
77 WATCHDOG_SET_MS(1000); //1s
81 //********************
83 kvpb_block->base=(CODE uint8_t*)KVPB_BASE;
84 kvpb_block->size=KVPB_SIZE;
85 kvpb_block->flags=KVPB_DESC_DOUBLE;
86 if(kvpb_check(kvpb_block,1)<0)
89 kvpb_get_key(kvpb_block,KVPB_KEYID_ULAN_ADDR,1,&uaddr);
90 kvpb_get_key(kvpb_block,KVPB_KEYID_ULAN_SN,4,&usn);
92 //********************
94 ul_drv_set_adr(uaddr);
95 ul_drv_set_bdiv(BAUD2BAUDDIV(19200));
99 /***********************************/
101 uldy_init(ULDY_ARG_ul_dyac ULDY_ARG_ul_fd ul_save_sn,ul_save_adr,NULL,usn);
102 ul_drv_set_status(ustatus,sizeof(ustatus));
104 //********************
108 while ((jump_timer) || (ul_dyac->boot_activated)) {
110 /* serve interrupt rutine for uLan */
113 /* serve interrupt rutine for timer */
116 if((ul_inepoll(ul_fd)>0)||(ul_fd_wait(ul_fd,100)>0)){
117 uldy_process_msg(ULDY_ARG_ul_dyac NULL);
120 /* test request for address */
121 if (uldy_rqa(ULDY_ARG1_ul_dyac))
122 uldy_addr_rq(ULDY_ARG1_ul_dyac);
124 #ifdef WATCHDOG_ENABLED
130 vec_jmp(IADDR_ASTARTUP); //application startup code