Exemple #1
0
int erase_sector4(void)
{
    int err = 0;
    err = drv_fls_erase(FLASH_Sector_4);

    drv_fls_write(0x8010000,param_init_words,sizeof(param_init_words));
    drv_fls_write(0x8010010,param_init_words,sizeof(param_init_words));
    
    drv_fls_write(0x8010020,param_init_words,sizeof(param_init_words));
    drv_fls_write(0x8010220,param_init_words,sizeof(param_init_words));
    drv_fls_write(0x8010420,param_init_words,sizeof(param_init_words));
    err = drv_fls_write(0x8010620,param_init_words,sizeof(param_init_words));
    return err;
}
Exemple #2
0
void mode_set(uint16_t mode)
{
    cfg_param_t all_param[4];
    param_mode = mode;
    
    drv_fls_read(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));



    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));    
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&param_mode,sizeof(uint16_t));
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));
    osal_printf("mode = %d  write in flash\n", param_mode);

}
Exemple #3
0
void  write_def_param(void)
{
    cfg_param_t  flash_param;

    param_mode = CUSTOM_MODE;
    
    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&param_mode,sizeof(uint16_t));

    
    load_default_param_custom(&flash_param);
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t *)&flash_param,sizeof(cfg_param_t));

    
    memset(&flash_param,0,sizeof(cfg_param_t));
    load_default_param_highway(&flash_param);
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t *)&flash_param,sizeof(cfg_param_t));

    
    memset(&flash_param,0,sizeof(cfg_param_t));
    load_default_param_mountain(&flash_param);
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t *)&flash_param,sizeof(cfg_param_t));

    
    memset(&flash_param,0,sizeof(cfg_param_t));
    load_default_param_city(&flash_param);
    drv_fls_write(PARAM_ADDR_CITY,(uint8_t *)&flash_param,sizeof(cfg_param_t));
/*
    if(-1 == err)
        rt_kprintf("error happened when writing default param to flash");
    else
        rt_kprintf("write default param to flash  success\n");
*/

}
Exemple #4
0
int8_t  gsnr_param_set(uint8_t gsnr_cal_step,int32_t AcceV_x,int32_t AcceV_y,int32_t AcceV_z,int32_t AcceAhead_x,int32_t AcceAhead_y,int32_t AcceAhead_z)
{

    int err;

    cfg_param_t *cfg_param;

    uint16_t mode;

    uint8_t param_num;

    cfg_param_t all_param[4];

    
    drv_fls_read(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));
    
    
    
    drv_fls_read(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));

    param_num = get_param_num(mode);

    osal_printf("mode is %04X\n",mode);

    cfg_param = &all_param[param_num];

    cfg_param->gsnr.gsnr_cal_step = gsnr_cal_step;
    cfg_param->gsnr.AcceV_x = AcceV_x;
    cfg_param->gsnr.AcceV_y = AcceV_y;
    cfg_param->gsnr.AcceV_z = AcceV_z;
    cfg_param->gsnr.AcceAhead_x = AcceAhead_x;
    cfg_param->gsnr.AcceAhead_y = AcceAhead_y;
    cfg_param->gsnr.AcceAhead_z = AcceAhead_z;

    memcpy((uint8_t*)&cms_param,(uint8_t*)cfg_param,sizeof(cfg_param_t));


    rt_kprintf("gsnr is setting .....please don't power off!\n");
        
    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    err = drv_fls_write(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));

    if(err == -1)
        rt_kprintf("gsnr param setting failed!!!\n");
    else
        rt_kprintf("gsnr param setting success!\n");


    cfg_param = NULL;


    return 0;

}
Exemple #5
0
int param_set(uint8_t param, int32_t value)
{

    int err;

    cfg_param_t *cfg_param;

    uint16_t mode;

    uint8_t param_num;

    cfg_param_t all_param[4];

    
    drv_fls_read(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));
    
    
    
    drv_fls_read(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));

    param_num = get_param_num(mode);

    osal_printf("mode is %04X\n",mode);

    cfg_param = &all_param[param_num];


    if(param == 29){
        if((value < 1)&&(value > 13)){
            rt_kprintf("wrong channel!\n\n");
            return -1;
        }
    }

   if(param == 30){
        if((value != 1)&&(value != 2)&&(value != 6)){
            rt_kprintf("param of Txrate is just 1,2,6\n\n");
            return -1;
        }

   }
                
    switch(param){

    case 0:
        if(value > 9999){
                rt_kprintf("invalid  ID!!\n");
                return -1;
        }    
        cfg_param->pid[0] = value/1000;
        cfg_param->pid[1] = (value%1000)/100;
        cfg_param->pid[2] = ((value%1000)%100)/10;
        cfg_param->pid[3] =    ((value%1000)%100)%10;
        break;

    case 1:
        cfg_param->vam.bsm_hops = value;
        break;
    case 2:
        cfg_param->vam.bsm_boardcast_mode = value;
        break;        
    case 3:
        cfg_param->vam.bsm_boardcast_saftyfactor = value;
        break;
    case 4:
        cfg_param->vam.bsm_pause_mode = value;
        break;
    case 5:
        cfg_param->vam.bsm_pause_hold_time = value;
        break;
    case 6:
        cfg_param->vam.bsm_boardcast_period = value;
        break;
        
    case 7:
        cfg_param->vam.evam_hops = value;
        break;
    case 8:
        cfg_param->vam.evam_broadcast_type = value;
        break;
    case 9:
        cfg_param->vam.evam_broadcast_peroid = value;
        break;            


        
    case 10:
        cfg_param->vsa.danger_detect_speed_threshold = value;
        break;
    case 11:
        cfg_param->vsa.lane_dis = value;
        
        break;            
    case 12:
        cfg_param->vsa.crd_saftyfactor = value;
        break;
    case 13:
        cfg_param->vsa.crd_oppsite_speed = value;
        break;
    case 14:
        cfg_param->vsa.crd_oppsite_rear_speed = value;
        break;
    case 15:
        cfg_param->vsa.crd_rear_distance = value;
        break;

        
    case 16:
        cfg_param->vsa.ebd_mode = value;
        break;
    case 17:
        cfg_param->vsa.ebd_acceleration_threshold = value;
        break;            
    case 18:
        cfg_param->vsa.ebd_alert_hold_time = value;
        break;

    case 19:
        cfg_param->gsnr.gsnr_cal_step = value;
        break;
    case 20:
        cfg_param->gsnr.gsnr_cal_thr = value;
        break;
    case 21:
        cfg_param->gsnr.gsnr_ebd_thr = value;
        break;
    case 22:
        cfg_param->gsnr.gsnr_ebd_cnt = value;
        break;

    case 23:
        cfg_param->gsnr.AcceV_x = value;
        break;
    case 24:
        cfg_param->gsnr.AcceV_y = value;
        break;
    case 25:
        cfg_param->gsnr.AcceV_z = value;
        break;
    case 26:
        cfg_param->gsnr.AcceAhead_x = value;
        break;
    case 27:
        cfg_param->gsnr.AcceAhead_y = value;
        break;
    case 28:
        cfg_param->gsnr.AcceAhead_z = value;
        break;

        
    case 29:
        cfg_param->wnet.channel = value;
        break;

    case 30:
        cfg_param->wnet.txrate = value;
        break;
        
    case 31:
        cfg_param->print_xxx = value;
        break;
        
    case 32:
        cfg_param->voc.fg_volume = value;
        break;
    case 33:
        cfg_param->voc.bg_volume = value;
        break;
    case 34:
        cfg_param->voc.speed = value;
        break;
        
    default:          
        rt_kprintf("invalid  parameter  number!!\n");
        break;

    }

    memcpy((uint8_t*)&cms_param,(uint8_t*)cfg_param,sizeof(cfg_param_t));


    rt_kprintf("param is setting .....please don't power off!\n");
        
    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));
    
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    err = drv_fls_write(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));

    if(err == -1){
        rt_kprintf("parameter writing process error!!!\n");
    }
    else{
        rt_kprintf("parameter set success!\n");
    }

    cfg_param = NULL;

    return 0;

}