ST Expansion SW Team / VL53L1

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   X_NUCLEO_53L1CB

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers vl53l1_nvm_debug.c Source File

vl53l1_nvm_debug.c

00001 
00002 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
00003 /******************************************************************************
00004  * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
00005 
00006  This file is part of VL53L1 and is dual licensed,
00007  either GPL-2.0+
00008  or 'BSD 3-clause "New" or "Revised" License' , at your option.
00009  ******************************************************************************
00010  */
00011 
00012 
00013 
00014 
00015 #include "vl53l1_ll_def.h"
00016 #include "vl53l1_platform.h"
00017 #include "vl53l1_platform_log.h"
00018 #include "vl53l1_register_map.h"
00019 #include "vl53l1_api_debug.h"
00020 #include "vl53l1_nvm_structs.h"
00021 #include "vl53l1_nvm_debug.h"
00022 
00023 #define LOG_FUNCTION_START(fmt, ...) \
00024     _LOG_FUNCTION_START(VL53L1_TRACE_MODULE_NVM, fmt, ##__VA_ARGS__)
00025 #define LOG_FUNCTION_END(status, ...) \
00026     _LOG_FUNCTION_END(VL53L1_TRACE_MODULE_NVM, status, ##__VA_ARGS__)
00027 #define LOG_FUNCTION_END_FMT(status, fmt, ...) \
00028     _LOG_FUNCTION_END_FMT(VL53L1_TRACE_MODULE_NVM,\
00029         status, fmt, ##__VA_ARGS__)
00030 
00031 #define trace_print(level, ...) \
00032     _LOG_TRACE_PRINT(trace_flags, \
00033     level, VL53L1_TRACE_FUNCTION_NONE, ##__VA_ARGS__)
00034 
00035 #ifdef VL53L1_LOG_ENABLE
00036 
00037 void VL53L1_print_nvm_raw_data(
00038     uint8_t                       *pnvm_raw_data,
00039     uint32_t                       trace_flags)
00040 {
00041 
00042 
00043     int i = 0;
00044 
00045     LOG_FUNCTION_START("");
00046 
00047     for (i = 0 ; i < VL53L1_NVM_SIZE_IN_BYTES ; i++) {
00048         if (i % 4 == 0)
00049             trace_print(
00050                 VL53L1_TRACE_LEVEL_INFO,
00051                 "\n    NVM Addr 0x%02X : 0x",
00052                 i/4);
00053 
00054         trace_print(
00055             VL53L1_TRACE_LEVEL_INFO,
00056             "%02X",
00057             *pnvm_raw_data++);
00058     }
00059 
00060     trace_print(
00061         VL53L1_TRACE_LEVEL_INFO,
00062         "\n");
00063 
00064     LOG_FUNCTION_END(0);
00065 }
00066 
00067 
00068 void VL53L1_print_decoded_nvm_data(
00069     VL53L1_decoded_nvm_data_t *pdata,
00070     char                      *pprefix,
00071     uint32_t                   trace_flags)
00072 {
00073     char  fp_text[VL53L1_MAX_STRING_LENGTH];
00074     char  pre_text[VL53L1_MAX_STRING_LENGTH];
00075     char *ppre_text = &(pre_text[0]);
00076 
00077     uint8_t i = 0;
00078 
00079     trace_print(
00080         VL53L1_TRACE_LEVEL_INFO,
00081         "%s%s = %u\n",
00082         pprefix,
00083         "nvm__identification_model_id",
00084         pdata->nvm__identification_model_id);
00085 
00086     trace_print(
00087         VL53L1_TRACE_LEVEL_INFO,
00088         "%s%s = %u\n",
00089         pprefix,
00090         "nvm__identification_module_type",
00091         pdata->nvm__identification_module_type);
00092 
00093     trace_print(
00094         VL53L1_TRACE_LEVEL_INFO,
00095         "%s%s = %u\n",
00096         pprefix,
00097         "nvm__identification_revision_id",
00098         pdata->nvm__identification_revision_id);
00099 
00100     trace_print(
00101         VL53L1_TRACE_LEVEL_INFO,
00102         "%s%s = %u\n",
00103         pprefix,
00104         "nvm__identification_module_id",
00105         pdata->nvm__identification_module_id);
00106 
00107     trace_print(
00108         VL53L1_TRACE_LEVEL_INFO,
00109         "%s%s = %u\n",
00110         pprefix,
00111         "nvm__i2c_valid",
00112         pdata->nvm__i2c_valid);
00113 
00114     trace_print(
00115         VL53L1_TRACE_LEVEL_INFO,
00116         "%s%s = %u\n",
00117         pprefix,
00118         "nvm__i2c_device_address_ews",
00119         pdata->nvm__i2c_device_address_ews);
00120 
00121     VL53L1_signed_fixed_point_sprintf(
00122         (int32_t)pdata->nvm__ews__fast_osc_frequency,
00123         12,
00124         VL53L1_MAX_STRING_LENGTH,
00125         fp_text);
00126 
00127     trace_print(
00128         VL53L1_TRACE_LEVEL_INFO,
00129         "%s%s = %s\n",
00130         pprefix,
00131         "nvm__ews__fast_osc_frequency",
00132         fp_text);
00133 
00134     trace_print(
00135         VL53L1_TRACE_LEVEL_INFO,
00136         "%s%s = %u\n",
00137         pprefix,
00138         "nvm__ews__fast_osc_trim_max",
00139         pdata->nvm__ews__fast_osc_trim_max);
00140 
00141     trace_print(
00142         VL53L1_TRACE_LEVEL_INFO,
00143         "%s%s = %u\n",
00144         pprefix,
00145         "nvm__ews__fast_osc_freq_set",
00146         pdata->nvm__ews__fast_osc_freq_set);
00147 
00148     trace_print(
00149         VL53L1_TRACE_LEVEL_INFO,
00150         "%s%s = %u\n",
00151         pprefix,
00152         "nvm__ews__slow_osc_calibration",
00153         pdata->nvm__ews__slow_osc_calibration);
00154 
00155     VL53L1_signed_fixed_point_sprintf(
00156         (int32_t)pdata->nvm__fmt__fast_osc_frequency,
00157         12,
00158         VL53L1_MAX_STRING_LENGTH,
00159         fp_text);
00160 
00161     trace_print(
00162         VL53L1_TRACE_LEVEL_INFO,
00163         "%s%s = %s\n",
00164         pprefix,
00165         "nvm__fmt__fast_osc_frequency",
00166         fp_text);
00167 
00168     trace_print(
00169         VL53L1_TRACE_LEVEL_INFO,
00170         "%s%s = %u\n",
00171         pprefix,
00172         "nvm__fmt__fast_osc_trim_max",
00173         pdata->nvm__fmt__fast_osc_trim_max);
00174 
00175     trace_print(
00176         VL53L1_TRACE_LEVEL_INFO,
00177         "%s%s = %u\n",
00178         pprefix,
00179         "nvm__fmt__fast_osc_freq_set",
00180         pdata->nvm__fmt__fast_osc_freq_set);
00181 
00182     trace_print(
00183         VL53L1_TRACE_LEVEL_INFO,
00184         "%s%s = %u\n",
00185         pprefix,
00186         "nvm__fmt__slow_osc_calibration",
00187         pdata->nvm__fmt__slow_osc_calibration);
00188 
00189     trace_print(
00190         VL53L1_TRACE_LEVEL_INFO,
00191         "%s%s = %u\n",
00192         pprefix,
00193         "nvm__vhv_config_unlock",
00194         pdata->nvm__vhv_config_unlock);
00195 
00196     trace_print(
00197         VL53L1_TRACE_LEVEL_INFO,
00198         "%s%s = %u\n",
00199         pprefix,
00200         "nvm__ref_selvddpix",
00201         pdata->nvm__ref_selvddpix);
00202 
00203     trace_print(
00204         VL53L1_TRACE_LEVEL_INFO,
00205         "%s%s = %u\n",
00206         pprefix,
00207         "nvm__ref_selvquench",
00208         pdata->nvm__ref_selvquench);
00209 
00210     trace_print(
00211         VL53L1_TRACE_LEVEL_INFO,
00212         "%s%s = %u\n",
00213         pprefix,
00214         "nvm__regavdd1v2_sel",
00215         pdata->nvm__regavdd1v2_sel);
00216 
00217     trace_print(
00218         VL53L1_TRACE_LEVEL_INFO,
00219         "%s%s = %u\n",
00220         pprefix,
00221         "nvm__regdvdd1v2_sel",
00222         pdata->nvm__regdvdd1v2_sel);
00223 
00224     trace_print(
00225         VL53L1_TRACE_LEVEL_INFO,
00226         "%s%s = %u\n",
00227         pprefix,
00228         "nvm__vhv_timeout__macrop",
00229         pdata->nvm__vhv_timeout__macrop);
00230 
00231     trace_print(
00232         VL53L1_TRACE_LEVEL_INFO,
00233         "%s%s = %u\n",
00234         pprefix,
00235         "nvm__vhv_loop_bound",
00236         pdata->nvm__vhv_loop_bound);
00237 
00238     trace_print(
00239         VL53L1_TRACE_LEVEL_INFO,
00240         "%s%s = %u\n",
00241         pprefix,
00242         "nvm__vhv_count_threshold",
00243         pdata->nvm__vhv_count_threshold);
00244 
00245     trace_print(
00246         VL53L1_TRACE_LEVEL_INFO,
00247         "%s%s = %u\n",
00248         pprefix,
00249         "nvm__vhv_offset",
00250         pdata->nvm__vhv_offset);
00251 
00252     trace_print(
00253         VL53L1_TRACE_LEVEL_INFO,
00254         "%s%s = %u\n",
00255         pprefix,
00256         "nvm__vhv_init_enable",
00257         pdata->nvm__vhv_init_enable);
00258 
00259     trace_print(
00260         VL53L1_TRACE_LEVEL_INFO,
00261         "%s%s = %u\n",
00262         pprefix,
00263         "nvm__vhv_init_value",
00264         pdata->nvm__vhv_init_value);
00265 
00266     trace_print(
00267         VL53L1_TRACE_LEVEL_INFO,
00268         "%s%s = %u\n",
00269         pprefix,
00270         "nvm__laser_safety_vcsel_trim_ll",
00271         pdata->nvm__laser_safety_vcsel_trim_ll);
00272 
00273     trace_print(
00274         VL53L1_TRACE_LEVEL_INFO,
00275         "%s%s = %u\n",
00276         pprefix,
00277         "nvm__laser_safety_vcsel_selion_ll",
00278         pdata->nvm__laser_safety_vcsel_selion_ll);
00279 
00280     trace_print(
00281         VL53L1_TRACE_LEVEL_INFO,
00282         "%s%s = %u\n",
00283         pprefix,
00284         "nvm__laser_safety_vcsel_selion_max_ll",
00285         pdata->nvm__laser_safety_vcsel_selion_max_ll);
00286 
00287     trace_print(
00288         VL53L1_TRACE_LEVEL_INFO,
00289         "%s%s = %u\n",
00290         pprefix,
00291         "nvm__laser_safety_mult_ll",
00292         pdata->nvm__laser_safety_mult_ll);
00293 
00294     trace_print(
00295         VL53L1_TRACE_LEVEL_INFO,
00296         "%s%s = %u\n",
00297         pprefix,
00298         "nvm__laser_safety_clip_ll",
00299         pdata->nvm__laser_safety_clip_ll);
00300 
00301     trace_print(
00302         VL53L1_TRACE_LEVEL_INFO,
00303         "%s%s = %u\n",
00304         pprefix,
00305         "nvm__laser_safety_vcsel_trim_ld",
00306         pdata->nvm__laser_safety_vcsel_trim_ld);
00307 
00308     trace_print(
00309         VL53L1_TRACE_LEVEL_INFO,
00310         "%s%s = %u\n",
00311         pprefix,
00312         "nvm__laser_safety_vcsel_selion_ld",
00313         pdata->nvm__laser_safety_vcsel_selion_ld);
00314 
00315     trace_print(
00316         VL53L1_TRACE_LEVEL_INFO,
00317         "%s%s = %u\n",
00318         pprefix,
00319         "nvm__laser_safety_vcsel_selion_max_ld",
00320         pdata->nvm__laser_safety_vcsel_selion_max_ld);
00321 
00322     trace_print(
00323         VL53L1_TRACE_LEVEL_INFO,
00324         "%s%s = %u\n",
00325         pprefix,
00326         "nvm__laser_safety_mult_ld",
00327         pdata->nvm__laser_safety_mult_ld);
00328 
00329     trace_print(
00330         VL53L1_TRACE_LEVEL_INFO,
00331         "%s%s = %u\n",
00332         pprefix,
00333         "nvm__laser_safety_clip_ld",
00334         pdata->nvm__laser_safety_clip_ld);
00335 
00336     trace_print(
00337         VL53L1_TRACE_LEVEL_INFO,
00338         "%s%s = %u\n",
00339         pprefix,
00340         "nvm__laser_safety_lock_byte",
00341         pdata->nvm__laser_safety_lock_byte);
00342 
00343     trace_print(
00344         VL53L1_TRACE_LEVEL_INFO,
00345         "%s%s = %u\n",
00346         pprefix,
00347         "nvm__laser_safety_unlock_byte",
00348         pdata->nvm__laser_safety_unlock_byte);
00349 
00350 
00351 
00352     for (i = 0 ; i < VL53L1_RTN_SPAD_BUFFER_SIZE ; i++) {
00353         sprintf(
00354             ppre_text,
00355             "%snvm__ews__spad_enables_rtn[%u]",
00356             pprefix, i);
00357 
00358         trace_print(
00359             VL53L1_TRACE_LEVEL_INFO,
00360             "%s = %u\n",
00361             ppre_text,
00362             pdata->nvm__ews__spad_enables_rtn[i]);
00363     }
00364 
00365     for (i = 0 ; i < VL53L1_REF_SPAD_BUFFER_SIZE ; i++) {
00366         sprintf(
00367             ppre_text,
00368             "%snvm__ews__spad_enables_ref__loc1[%u]",
00369             pprefix, i);
00370 
00371         trace_print(
00372             VL53L1_TRACE_LEVEL_INFO,
00373             "%s = %u\n",
00374             ppre_text,
00375             pdata->nvm__ews__spad_enables_ref__loc1[i]);
00376     }
00377 
00378     for (i = 0 ; i < VL53L1_REF_SPAD_BUFFER_SIZE ; i++) {
00379         sprintf(
00380             ppre_text,
00381             "%snvm__ews__spad_enables_ref__loc2[%u]",
00382             pprefix, i);
00383 
00384         trace_print(
00385             VL53L1_TRACE_LEVEL_INFO,
00386             "%s = %u\n",
00387             ppre_text,
00388             pdata->nvm__ews__spad_enables_ref__loc2[i]);
00389     }
00390 
00391     for (i = 0 ; i < VL53L1_REF_SPAD_BUFFER_SIZE ; i++) {
00392         sprintf(
00393             ppre_text,
00394             "%snvm__ews__spad_enables_ref__loc3[%u]",
00395             pprefix, i);
00396 
00397         trace_print(
00398             VL53L1_TRACE_LEVEL_INFO,
00399             "%s = %u\n",
00400             ppre_text,
00401             pdata->nvm__ews__spad_enables_ref__loc3[i]);
00402     }
00403 
00404 
00405 
00406 
00407     for (i = 0 ; i < VL53L1_RTN_SPAD_BUFFER_SIZE ; i++) {
00408         sprintf(
00409             ppre_text,
00410             "%snvm__fmt__spad_enables_rtn[%u]",
00411             pprefix, i);
00412 
00413         trace_print(
00414             VL53L1_TRACE_LEVEL_INFO,
00415             "%s = %u\n",
00416             ppre_text,
00417             pdata->nvm__fmt__spad_enables_rtn[i]);
00418     }
00419 
00420     for (i = 0 ; i < VL53L1_REF_SPAD_BUFFER_SIZE ; i++) {
00421         sprintf(
00422             ppre_text,
00423             "%snvm__fmt__spad_enables_ref__loc1[%u]",
00424             pprefix, i);
00425 
00426         trace_print(
00427             VL53L1_TRACE_LEVEL_INFO,
00428             "%s = %u\n",
00429             ppre_text,
00430             pdata->nvm__fmt__spad_enables_ref__loc1[i]);
00431     }
00432 
00433     for (i = 0 ; i < VL53L1_REF_SPAD_BUFFER_SIZE ; i++) {
00434         sprintf(
00435             ppre_text,
00436             "%snvm__fmt__spad_enables_ref__loc2[%u]",
00437             pprefix, i);
00438 
00439         trace_print(
00440             VL53L1_TRACE_LEVEL_INFO,
00441             "%s = %u\n",
00442             ppre_text,
00443             pdata->nvm__fmt__spad_enables_ref__loc2[i]);
00444     }
00445 
00446     for (i = 0 ; i < VL53L1_REF_SPAD_BUFFER_SIZE ; i++) {
00447         sprintf(
00448             ppre_text,
00449             "%snvm__fmt__spad_enables_ref__loc3[%u]",
00450             pprefix, i);
00451 
00452         trace_print(
00453             VL53L1_TRACE_LEVEL_INFO,
00454             "%s = %u\n",
00455             ppre_text,
00456             pdata->nvm__fmt__spad_enables_ref__loc3[i]);
00457     }
00458 
00459     trace_print(
00460         VL53L1_TRACE_LEVEL_INFO,
00461         "%s%s = %u\n",
00462         pprefix,
00463         "nvm__fmt__roi_config__mode_roi_centre_spad",
00464         pdata->nvm__fmt__roi_config__mode_roi_centre_spad);
00465 
00466     trace_print(
00467         VL53L1_TRACE_LEVEL_INFO,
00468         "%s%s = %u\n",
00469         pprefix,
00470         "nvm__fmt__roi_config__mode_roi_x_size",
00471         pdata->nvm__fmt__roi_config__mode_roi_x_size);
00472 
00473     trace_print(
00474         VL53L1_TRACE_LEVEL_INFO,
00475         "%s%s = %u\n",
00476         pprefix,
00477         "nvm__fmt__roi_config__mode_roi_y_size",
00478         pdata->nvm__fmt__roi_config__mode_roi_y_size);
00479 
00480     trace_print(
00481         VL53L1_TRACE_LEVEL_INFO,
00482         "%s%s = %u\n",
00483         pprefix,
00484         "nvm__fmt__ref_spad_apply__num_requested_ref_spad",
00485         pdata->nvm__fmt__ref_spad_apply__num_requested_ref_spad);
00486 
00487     trace_print(
00488         VL53L1_TRACE_LEVEL_INFO,
00489         "%s%s = %u\n",
00490         pprefix,
00491         "nvm__fmt__ref_spad_man__ref_location",
00492         pdata->nvm__fmt__ref_spad_man__ref_location);
00493 
00494     trace_print(
00495         VL53L1_TRACE_LEVEL_INFO,
00496         "%s%s = %d\n",
00497         pprefix,
00498         "nvm__fmt__mm_config__inner_offset_mm",
00499         pdata->nvm__fmt__mm_config__inner_offset_mm);
00500 
00501     trace_print(
00502         VL53L1_TRACE_LEVEL_INFO,
00503         "%s%s = %d\n",
00504         pprefix,
00505         "nvm__fmt__mm_config__outer_offset_mm",
00506         pdata->nvm__fmt__mm_config__outer_offset_mm);
00507 
00508     VL53L1_signed_fixed_point_sprintf(
00509         (int32_t)pdata->nvm__fmt__algo_part_to_part_range_offset_mm,
00510         2,
00511         VL53L1_MAX_STRING_LENGTH,
00512         fp_text);
00513 
00514     trace_print(
00515         VL53L1_TRACE_LEVEL_INFO,
00516         "%s%s = %s\n",
00517         pprefix,
00518         "nvm__fmt__algo_part_to_part_range_offset_mm",
00519         fp_text);
00520 
00521     VL53L1_signed_fixed_point_sprintf(
00522     (int32_t)(
00523     pdata->nvm__fmt__algo__crosstalk_compensation_plane_offset_kcps),
00524     9,
00525     VL53L1_MAX_STRING_LENGTH,
00526     fp_text);
00527 
00528     trace_print(
00529         VL53L1_TRACE_LEVEL_INFO,
00530         "%s%s = %s\n",
00531         pprefix,
00532         "nvm__fmt__algo__crosstalk_compensation_plane_offset_kcps",
00533         fp_text);
00534 
00535     VL53L1_signed_fixed_point_sprintf(
00536     (int32_t)(
00537     pdata->nvm__fmt__algo__crosstalk_compensation_x_plane_gradient_kcps),
00538     11,
00539     VL53L1_MAX_STRING_LENGTH,
00540     fp_text);
00541 
00542     trace_print(
00543         VL53L1_TRACE_LEVEL_INFO,
00544         "%s%s = %s\n",
00545         pprefix,
00546         "nvm__fmt__algo__crosstalk_compensation_x_plane_gradient_kcps",
00547         fp_text);
00548 
00549     VL53L1_signed_fixed_point_sprintf(
00550     (int32_t)(
00551     pdata->nvm__fmt__algo__crosstalk_compensation_y_plane_gradient_kcps),
00552     11,
00553     VL53L1_MAX_STRING_LENGTH,
00554     fp_text);
00555 
00556     trace_print(
00557         VL53L1_TRACE_LEVEL_INFO,
00558         "%s%s = %s\n",
00559         pprefix,
00560         "nvm__fmt__algo__crosstalk_compensation_y_plane_gradient_kcps",
00561         fp_text);
00562 
00563     trace_print(
00564         VL53L1_TRACE_LEVEL_INFO,
00565         "%s%s = %u\n",
00566         pprefix,
00567         "nvm__fmt__spare__host_config__nvm_config_spare_0",
00568         pdata->nvm__fmt__spare__host_config__nvm_config_spare_0);
00569 
00570     trace_print(
00571         VL53L1_TRACE_LEVEL_INFO,
00572         "%s%s = %u\n",
00573         pprefix,
00574         "nvm__fmt__spare__host_config__nvm_config_spare_1",
00575         pdata->nvm__fmt__spare__host_config__nvm_config_spare_1);
00576 
00577     trace_print(
00578         VL53L1_TRACE_LEVEL_INFO,
00579         "%s%s = %u\n",
00580         pprefix,
00581         "nvm__customer_space_programmed",
00582         pdata->nvm__customer_space_programmed);
00583 
00584     trace_print(
00585         VL53L1_TRACE_LEVEL_INFO,
00586         "%s%s = %u\n",
00587         pprefix,
00588         "nvm__cust__i2c_device_address",
00589         pdata->nvm__cust__i2c_device_address);
00590 
00591     trace_print(
00592         VL53L1_TRACE_LEVEL_INFO,
00593         "%s%s = %u\n",
00594         pprefix,
00595         "nvm__cust__ref_spad_apply__num_requested_ref_spad",
00596         pdata->nvm__cust__ref_spad_apply__num_requested_ref_spad);
00597 
00598     trace_print(
00599         VL53L1_TRACE_LEVEL_INFO,
00600         "%s%s = %u\n",
00601         pprefix,
00602         "nvm__cust__ref_spad_man__ref_location",
00603         pdata->nvm__cust__ref_spad_man__ref_location);
00604 
00605     trace_print(
00606         VL53L1_TRACE_LEVEL_INFO,
00607         "%s%s = %d\n",
00608         pprefix,
00609         "nvm__cust__mm_config__inner_offset_mm",
00610         pdata->nvm__cust__mm_config__inner_offset_mm);
00611 
00612     trace_print(
00613         VL53L1_TRACE_LEVEL_INFO,
00614         "%s%s = %d\n",
00615         pprefix,
00616         "nvm__cust__mm_config__outer_offset_mm",
00617         pdata->nvm__cust__mm_config__outer_offset_mm);
00618 
00619     VL53L1_signed_fixed_point_sprintf(
00620         (int32_t)pdata->nvm__cust__algo_part_to_part_range_offset_mm,
00621         2,
00622         VL53L1_MAX_STRING_LENGTH,
00623         fp_text);
00624 
00625     trace_print(
00626         VL53L1_TRACE_LEVEL_INFO,
00627         "%s%s = %s\n",
00628         pprefix,
00629         "nvm__cust__algo_part_to_part_range_offset_mm",
00630         fp_text);
00631 
00632     VL53L1_signed_fixed_point_sprintf(
00633     (uint32_t)(
00634     pdata->nvm__cust__algo__crosstalk_compensation_plane_offset_kcps),
00635     9,
00636     VL53L1_MAX_STRING_LENGTH,
00637     fp_text);
00638 
00639     trace_print(
00640         VL53L1_TRACE_LEVEL_INFO,
00641         "%s%s = %s\n",
00642         pprefix,
00643         "nvm__cust__algo__crosstalk_compensation_plane_offset_kcps",
00644         fp_text);
00645 
00646     VL53L1_signed_fixed_point_sprintf(
00647     (int32_t)(
00648     pdata->nvm__cust__algo__crosstalk_compensation_x_plane_gradient_kcps),
00649     11,
00650     VL53L1_MAX_STRING_LENGTH,
00651     fp_text);
00652 
00653     trace_print(
00654         VL53L1_TRACE_LEVEL_INFO,
00655         "%s%s = %s\n",
00656         pprefix,
00657         "nvm__cust__algo__crosstalk_compensation_x_plane_gradient_kcps",
00658         fp_text);
00659 
00660     VL53L1_signed_fixed_point_sprintf(
00661     (int32_t)(
00662     pdata->nvm__cust__algo__crosstalk_compensation_y_plane_gradient_kcps),
00663     11,
00664     VL53L1_MAX_STRING_LENGTH,
00665     fp_text);
00666 
00667     trace_print(
00668         VL53L1_TRACE_LEVEL_INFO,
00669         "%s%s = %s\n",
00670         pprefix,
00671         "nvm__cust__algo__crosstalk_compensation_y_plane_gradient_kcps",
00672         fp_text);
00673 
00674     trace_print(
00675         VL53L1_TRACE_LEVEL_INFO,
00676         "%s%s = %u\n",
00677         pprefix,
00678         "nvm__cust__spare__host_config__nvm_config_spare_0",
00679         pdata->nvm__cust__spare__host_config__nvm_config_spare_0);
00680 
00681     trace_print(
00682         VL53L1_TRACE_LEVEL_INFO,
00683         "%s%s = %u\n",
00684         pprefix,
00685         "nvm__cust__spare__host_config__nvm_config_spare_1",
00686         pdata->nvm__cust__spare__host_config__nvm_config_spare_1);
00687 
00688 
00689 
00690     sprintf(
00691         ppre_text,
00692         "%sfmt_optical_centre.", pprefix);
00693 
00694     VL53L1_print_optical_centre(
00695         &(pdata->fmt_optical_centre),
00696         ppre_text,
00697         VL53L1_TRACE_MODULE_NVM_DATA);
00698 
00699 
00700 
00701     sprintf(
00702         ppre_text,
00703         "%sfmt_peak_rate_map.", pprefix);
00704 
00705     VL53L1_print_cal_peak_rate_map(
00706         &(pdata->fmt_peak_rate_map),
00707         ppre_text,
00708         VL53L1_TRACE_MODULE_NVM_DATA);
00709 
00710 
00711 
00712     sprintf(
00713         ppre_text,
00714         "%sfmt_add_offset_data.",
00715         pprefix);
00716 
00717     VL53L1_print_additional_offset_cal_data(
00718         &(pdata->fmt_add_offset_data),
00719         ppre_text,
00720         VL53L1_TRACE_MODULE_NVM_DATA);
00721 
00722 
00723 
00724     for (i = 0 ; i < VL53L1_NVM_MAX_FMT_RANGE_DATA ; i++) {
00725         sprintf(
00726             ppre_text,
00727             "%sfmt_range_data[%u].",
00728             pprefix, i);
00729 
00730         VL53L1_print_decoded_nvm_fmt_range_data(
00731             &(pdata->fmt_range_data[i]),
00732             ppre_text,
00733             trace_flags);
00734     }
00735 
00736     sprintf(
00737         ppre_text,
00738         "%sfmt_info.",
00739         pprefix);
00740 
00741     VL53L1_print_decoded_nvm_fmt_info(
00742         &(pdata->fmt_info),
00743         ppre_text,
00744         trace_flags);
00745 
00746     sprintf(
00747         ppre_text,
00748         "%sews_info.",
00749         pprefix);
00750 
00751     VL53L1_print_decoded_nvm_ews_info(
00752         &(pdata->ews_info),
00753         ppre_text,
00754         trace_flags);
00755 }
00756 
00757 
00758 void VL53L1_print_decoded_nvm_fmt_range_data(
00759     VL53L1_decoded_nvm_fmt_range_data_t *pdata,
00760     char                                *pprefix,
00761     uint32_t                             trace_flags)
00762 {
00763     char  fp_text[VL53L1_MAX_STRING_LENGTH];
00764 
00765     VL53L1_signed_fixed_point_sprintf(
00766         (int32_t)pdata->result__actual_effective_rtn_spads,
00767         8,
00768         VL53L1_MAX_STRING_LENGTH,
00769         fp_text);
00770 
00771     trace_print(
00772         VL53L1_TRACE_LEVEL_INFO,
00773         "%s%s = %s\n",
00774         pprefix,
00775         "result__actual_effective_rtn_spads",
00776         fp_text);
00777 
00778     trace_print(
00779         VL53L1_TRACE_LEVEL_INFO,
00780         "%s%s = %u\n",
00781         pprefix,
00782         "ref_spad_array__num_requested_ref_spads",
00783         pdata->ref_spad_array__num_requested_ref_spads);
00784 
00785     trace_print(
00786         VL53L1_TRACE_LEVEL_INFO,
00787         "%s%s = %u\n",
00788         pprefix,
00789         "ref_spad_array__ref_location",
00790         pdata->ref_spad_array__ref_location);
00791 
00792     VL53L1_signed_fixed_point_sprintf(
00793         (int32_t)pdata->result__peak_signal_count_rate_rtn_mcps,
00794         7,
00795         VL53L1_MAX_STRING_LENGTH,
00796         fp_text);
00797 
00798     trace_print(
00799         VL53L1_TRACE_LEVEL_INFO,
00800         "%s%s = %s\n",
00801         pprefix,
00802         "result__peak_signal_count_rate_rtn_mcps",
00803         fp_text);
00804 
00805     VL53L1_signed_fixed_point_sprintf(
00806         (int32_t)pdata->result__ambient_count_rate_rtn_mcps,
00807         7,
00808         VL53L1_MAX_STRING_LENGTH,
00809         fp_text);
00810 
00811     trace_print(
00812         VL53L1_TRACE_LEVEL_INFO,
00813         "%s%s = %s\n",
00814         pprefix,
00815         "result__ambient_count_rate_rtn_mcps",
00816         fp_text);
00817 
00818     VL53L1_signed_fixed_point_sprintf(
00819         (int32_t)pdata->result__peak_signal_count_rate_ref_mcps,
00820         7,
00821         VL53L1_MAX_STRING_LENGTH,
00822         fp_text);
00823 
00824     trace_print(
00825         VL53L1_TRACE_LEVEL_INFO,
00826         "%s%s = %u\n",
00827         pprefix,
00828         "result__peak_signal_count_rate_ref_mcps",
00829         fp_text);
00830 
00831     VL53L1_signed_fixed_point_sprintf(
00832         (int32_t)pdata->result__ambient_count_rate_ref_mcps,
00833         7,
00834         VL53L1_MAX_STRING_LENGTH,
00835         fp_text);
00836 
00837     trace_print(
00838         VL53L1_TRACE_LEVEL_INFO,
00839         "%s%s = %s\n",
00840         pprefix,
00841         "result__ambient_count_rate_ref_mcps",
00842         fp_text);
00843 
00844     VL53L1_signed_fixed_point_sprintf(
00845         (int32_t)pdata->measured_distance_mm,
00846         4,
00847         VL53L1_MAX_STRING_LENGTH,
00848         fp_text);
00849 
00850     trace_print(
00851         VL53L1_TRACE_LEVEL_INFO,
00852         "%s%s = %s\n",
00853         pprefix,
00854         "measured_distance_mm",
00855         fp_text);
00856 
00857     VL53L1_signed_fixed_point_sprintf(
00858         (uint32_t)pdata->measured_distance_stdev_mm,
00859         4,
00860         VL53L1_MAX_STRING_LENGTH,
00861         fp_text);
00862 
00863     trace_print(
00864         VL53L1_TRACE_LEVEL_INFO,
00865         "%s%s = %s\n",
00866         pprefix,
00867         "measured_distance_stdev_mm",
00868         fp_text);
00869 }
00870 
00871 
00872 void VL53L1_print_decoded_nvm_fmt_info(
00873     VL53L1_decoded_nvm_fmt_info_t *pdata,
00874     char                          *pprefix,
00875     uint32_t                       trace_flags)
00876 {
00877     trace_print(VL53L1_TRACE_LEVEL_INFO,
00878         "%s%s = \"%s\"\n",
00879         pprefix,
00880         "nvm__fmt__fgc",
00881         pdata->nvm__fmt__fgc);
00882 
00883     trace_print(
00884         VL53L1_TRACE_LEVEL_INFO,
00885         "%s%s = %u\n",
00886         pprefix,
00887         "nvm__fmt__test_program_major",
00888         pdata->nvm__fmt__test_program_major);
00889 
00890     trace_print(
00891         VL53L1_TRACE_LEVEL_INFO,
00892         "%s%s = %u\n",
00893         pprefix,
00894         "nvm__fmt__test_program_minor",
00895         pdata->nvm__fmt__test_program_minor);
00896 
00897     trace_print(
00898         VL53L1_TRACE_LEVEL_INFO,
00899         "%s%s = %u\n",
00900         pprefix,
00901         "nvm__fmt__map_major",
00902         pdata->nvm__fmt__map_major);
00903 
00904     trace_print(
00905         VL53L1_TRACE_LEVEL_INFO,
00906         "%s%s = %u\n",
00907         pprefix,
00908         "nvm__fmt__map_minor",
00909         pdata->nvm__fmt__map_minor);
00910 
00911     trace_print(
00912         VL53L1_TRACE_LEVEL_INFO,
00913         "%s%s = %u\n",
00914         pprefix,
00915         "nvm__fmt__year",
00916         pdata->nvm__fmt__year);
00917 
00918     trace_print(
00919         VL53L1_TRACE_LEVEL_INFO,
00920         "%s%s = %u\n",
00921         pprefix,
00922         "nvm__fmt__month",
00923         pdata->nvm__fmt__month);
00924 
00925     trace_print(
00926         VL53L1_TRACE_LEVEL_INFO,
00927         "%s%s = %u\n",
00928         pprefix,
00929         "nvm__fmt__day",
00930         pdata->nvm__fmt__day);
00931 
00932     trace_print(
00933         VL53L1_TRACE_LEVEL_INFO,
00934         "%s%s = %u\n",
00935         pprefix,
00936         "nvm__fmt__module_date_phase",
00937         pdata->nvm__fmt__module_date_phase);
00938 
00939     trace_print(
00940         VL53L1_TRACE_LEVEL_INFO,
00941         "%s%s = %u\n",
00942         pprefix,
00943         "nvm__fmt__time",
00944         pdata->nvm__fmt__time);
00945 
00946     trace_print(
00947         VL53L1_TRACE_LEVEL_INFO,
00948         "%s%s = %u\n",
00949         pprefix,
00950         "nvm__fmt__tester_id",
00951         pdata->nvm__fmt__tester_id);
00952 
00953     trace_print(
00954         VL53L1_TRACE_LEVEL_INFO,
00955         "%s%s = %u\n",
00956         pprefix,
00957         "nvm__fmt__site_id",
00958         pdata->nvm__fmt__site_id);
00959 
00960     trace_print(
00961         VL53L1_TRACE_LEVEL_INFO,
00962         "%s%s = %u\n",
00963         pprefix,
00964         "nvm__ews__test_program_major",
00965         pdata->nvm__ews__test_program_major);
00966 
00967     trace_print(
00968         VL53L1_TRACE_LEVEL_INFO,
00969         "%s%s = %u\n",
00970         pprefix,
00971         "nvm__ews__test_program_minor",
00972         pdata->nvm__ews__test_program_minor);
00973 
00974     trace_print(
00975         VL53L1_TRACE_LEVEL_INFO,
00976         "%s%s = %u\n",
00977         pprefix,
00978         "nvm__ews__probe_card_major",
00979         pdata->nvm__ews__probe_card_major);
00980 
00981     trace_print(
00982         VL53L1_TRACE_LEVEL_INFO,
00983         "%s%s = %u\n",
00984         pprefix,
00985         "nvm__ews__probe_card_minor",
00986         pdata->nvm__ews__probe_card_minor);
00987 
00988     trace_print(
00989         VL53L1_TRACE_LEVEL_INFO,
00990         "%s%s = %u\n",
00991         pprefix,
00992         "nvm__ews__tester_id",
00993         pdata->nvm__ews__tester_id);
00994 }
00995 
00996 
00997 void VL53L1_print_decoded_nvm_ews_info(
00998     VL53L1_decoded_nvm_ews_info_t *pdata,
00999     char                          *pprefix,
01000     uint32_t                       trace_flags)
01001 {
01002     trace_print(VL53L1_TRACE_LEVEL_INFO,
01003         "%s%s = \"%s\"\n",
01004         pprefix,
01005         "nvm__ews__lot",
01006         pdata->nvm__ews__lot);
01007 
01008     trace_print(
01009         VL53L1_TRACE_LEVEL_INFO,
01010         "%s%s = %u\n",
01011         pprefix,
01012         "nvm__ews__wafer",
01013         pdata->nvm__ews__wafer);
01014 
01015     trace_print(
01016         VL53L1_TRACE_LEVEL_INFO,
01017         "%s%s = %u\n",
01018         pprefix,
01019         "nvm__ews__xcoord",
01020         pdata->nvm__ews__xcoord);
01021 
01022     trace_print(
01023         VL53L1_TRACE_LEVEL_INFO,
01024         "%s%s = %u\n",
01025         pprefix,
01026         "nvm__ews__ycoord",
01027         pdata->nvm__ews__ycoord);
01028 }
01029 
01030 #endif
01031 
01032