你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

(已解决)IAR看到一个不懂的.cfg文件,能指导下原理吗

[复制链接]
GKoSon 提问时间:2018-7-25 10:24 /
本帖最后由 与龙共舞 于 2018-8-7 16:33 编辑

看代码遇到问题:
uint8_t     bleDeafultPairPwd[BLE_PASSWORD_LENGTH] = DEFAULT_PAIR_PWD;
uint8_t     bleDeafultUserPwd[BLE_PASSWORD_LENGTH] = DEFAULT_OPEN_PWD;
uint8_t     deviceNameTitle[BLE_DEIVCE_TITLE_LEN]  = DEVICE_NAME;

上面是3个全局变量,第3个事可以的,我可以找到宏定义是什么。第1个第2个都有问题,我不知道宏定义是什么!
DEFAULT_PAIR_PWD;
DEFAULT_OPEN_PWD;
都是灰颜色的 看不到。 但是有一个.cfg的文件
QQ截图20180725102121.jpg

感觉好像是类似于
*  设备默认配对密码
*/
-DDEFAULT_PAIR_PWD="{0X12,0x34,0x56}"   《==》#define   DEFAULT_PAIR_PWD    {0X12,0x34,0x56}


那么这是什么技术呢?看不懂

  1. /*
  2. *                           f8wConfig.cfg
  3. *
  4. *  Compiler command-line options used to define a terminus device.
  5. *  To move an option from here to the project file, comment out or delete the
  6. *  option from this file and enter it into the "Define Symbols" box under the
  7. *  Preprocessor tab of the C/C++ Compiler Project Options. New user defined
  8. *  options may be added to this file, as necessary.
  9. *
  10. *  Each macro is prefixed with '-D'. The entries are to be constructed as if
  11. *  they are to be on the compiler command line invocation (which they are).
  12. *
  13. *  NOTE: 设备属性及固定配置选项
  14. *        
  15. */


  16. /*
  17. *  全局串口调试开关  
  18. */
  19. -DDEBUG_ENABLE=1







  20. /*
  21. *  硬件版本号
  22. */
  23. -DDEVICE_HW_VERSION=101


  24. /*
  25. *  设备默认配对密码
  26. */
  27. -DDEFAULT_PAIR_PWD="{0X12,0x34,0x56}"


  28. /*
  29. *  设备默认开门密码
  30. */
  31. -DDEFAULT_OPEN_PWD="{0X12,0x34,0x56}"



  32. /*
  33. *  设备默认上网方式,如果同时存在则用或,例如同时支持WIFI及GPRS,DEFAULT_NET_MODE = 3
  34. *  GPRS                 (0x00000001)
  35. *  WIFI                (0x00000002)
  36. *  Ethernet        (0x00000004)
  37. *  LORA                (0x00000008)
  38. *  ZETA                (0x00000010)
  39. */
  40. -DTSLNetType_TSLGPRS=0x01
  41. -DTSLNetType_TSLWIFI=0x02
  42. -DTSLNetType_TSLEthernet=0x04
  43. -DTSLNetType_TSLLORA=0x08
  44. -DTSLNetType_TSLZETA=0x10
  45. -DTSLNetType_TSLNB=0x20

  46. -DDEFAULT_NET_MODE=TSLNetType_TSLGPRS
  47. -DDEVICE_SUPPOR_NET=TSLNetType_TSLGPRS

  48. /*
  49. *  设备默认开门延时时间,单位100ms
  50. */
  51. -DOPEN_DELAY=20


  52. /*
  53. *  是否启用新协议
  54. */
  55. -DUSE_NANO_PROTO=0



  56. /*
  57. *  系统配置文件默认MARK
  58. */
  59. -DDEFAULT_MARK=0xAA55AA55



  60. /*
  61. *  FreeRtos 配置选项
  62. */
  63. -DINCLUDE_uxTaskGetStackHighWaterMark=1


  64. /*
  65. *  门磁输入检测,设备默认开门状态电平
  66. */
  67. -DDEFAULT_MAGNET_STATUS=PIN_HIGH


  68. /*
  69. *  device pn for ota
  70. */
  71. -DDEVICE_PN="{'S','T','M','L','4','7','1'}"


  72. -DMULTI_LINK=0
  73. -DSINGLE_LINK=1
  74. -DBULETOOTH_MODE=SINGLE_LINK


  75. //-DPRODUCT_NUM="{'S','E','E','D','-','0','9','0','6'}"




  76. -DMQTT_TASK






复制代码

+++++++++查了查 网上说的都是很老旧的知识 还是不清楚 这是IDE支持的 +++++++++++++ QQ截图20180725125125.jpg





++++++++++++++20180807标记解决++++++++++++
今天合并代码,本来work可以的,下午擦除芯片没有boodloader,然后编写工程出现问题:找不到我的变量。
当时情况是这样的
QQ截图20180807163145.jpg
所以 我也要把cfg这个文件引入到IDE里面去了(工程里面是有cfg文件的,但是IDE没有修改)
QQ截图20180807162801.jpg
如此就可以了。能work就行了吧 原理放弃。
收藏 评论9 发布时间:2018-7-25 10:24

举报

9个回答
废鱼 回答时间:2018-7-25 10:43:28
bleDeafultPairPwd[0] = DEFAULT_PAIR_PWD[0];
在程序中可以这样操作吗?我认为他是定义好一个常量数组了,类似const。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

GKoSon 回答时间:2018-7-25 10:49:10
安 发表于 2018-7-25 10:43
bleDeafultPairPwd[0] = DEFAULT_PAIR_PWD[0];
在程序中可以这样操作吗?我认为他是定义好一个常量数组了, ...

我现在还在看代码阶段  工程编译不过 所以我做不好测试。。。。
你的理解也对的
我就是不懂 这是啥技术   

没见过这种搞法 一般都是头文件啥的放一个宏定义 这个工程怎么搞个.cfg文件
废鱼 回答时间:2018-7-25 11:00:12
现在这么写的挺多的。我最近在看alios这个系统,里面很多也是这么写的。具体还是网上搜索一下.cfg的使用。
zwjchinayids 回答时间:2018-7-25 11:16:28
这种文件 有点像脚本 编译器支持的话就会先进这里来
这里面就是配置文件    像上面你说的宏定义什么的放在这里 其实就是统一下放置的位置
方便用户自定义   我觉得解释这么多都是多余的   说下配置文件你就懂了

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

butterflyspring 回答时间:2018-7-25 12:12:01
是不是在setting里面呀?
jakecumt 回答时间:2018-7-26 09:34:53
说白啦就是配置文件,在里面你可以定义一些你自己的信息,比如版本号,批次之类等等用户自定义的信息

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xiaolingoei 回答时间:2018-7-26 10:35:36
本帖最后由 xiaolingoei 于 2018-7-26 10:41 编辑

CFG 是一个引导文件, CFG 和TFS文件放在同一文件夹中,相当于程序里的头文件。
感觉上,说白了,就是一种用变相的设置头文件方式。
       大多数情况下,很多程序都要保存用户的设置,办法有很多:注册表,日志文件...... 而很多程序都使用了一个专用的文件。为了方便起见,常常命名为*.cfg,有时甚至直接命名为Config.cfg。
  这只是一个为开发及使用方便而"发明"的一个后缀名。所以,这种文件没有固定的格式,其实也并不能算作是一种文件类型。用途也仅仅是保存用户的设置,平常没有必要打开。
  同样,为了方便起见,里面的内容大多数时候也确实是文本。可以用任何文本编辑器打开,比如QUAKE的config.cfg。不妨用记事本打开看看,如果出现乱码,则不要去动它。      -摘自《百度百科-CFG》

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

xiaolingoei 回答时间:2018-7-26 10:45:34
CFG 是一个引导文件, CFG 和TFS文件放在同一文件夹中,相当于程序里的头文件。
说白了,就是一种变相的头文件。以下,摘自百度百科:

大多数情况下,很多程序都要保存用户的设置,办法有很多:注册表,日志文件...... 而很多程序都使用了一个专用的文件。为了方便起见,常常命名为*.cfg,有时甚至直接命名为Config.cfg。
  这只是一个为开发及使用方便而"发明"的一个后缀名。所以,这种文件没有固定的格式,其实也并不能算作是一种文件类型。用途也仅仅是保存用户的设置,平常没有必要打开。
  同样,为了方便起见,里面的内容大多数时候也确实是文本。可以用任何文本编辑器打开,比如QUAKE的config.cfg。不妨用记事本打开看看,如果出现乱码,则不要去动它。
zhdzhd 回答时间:2018-7-26 19:35:33
其实这个文件不需要细懂,只要能看明白就行,就是存储了一些用户自定义的相关参数和信息。
其实它的一些定义字段含义明文上就已经显示了它的定义含义了,可以根据整个工程,来关联相关字段。
希望能帮到您。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版