【编程|嵌入式开发人员要了解自己的工具】
文章图片
嵌入式系统工程师的能力取决于他们对所用工具的了解程度 。 使用正确的工具可以大大加快开发速度 , 但不一定能确保成功 。 为了取得成功 , 嵌入式开发人员需要理解该工具的复杂性 。
以使用IAR编译器和处理器专家设置恩智浦Kinetis-L微控制器的配置位这一看似简单的任务为例 。
配置位控制NMI和Reset引脚的功能以及初始时钟和引导选项 。 本例中 , 配置位从十六进制地址0x400开始 , 紧跟在中断向量表之后 。 表1显示了每个地址控制的内容 。
表1–配置位
对于如何设置这些内存区域 , 开发人员有许多选择 。 首先 , 他们可以使用链接器文件中映射的表来设置值 。 或者 , 他们可以使用Processor Expert来设置这些值 。
设置了配置区域的值后 , 嵌入式开发人员现在可以编译代码并将其加载到目标上 。 人们可能会期望该过程在闪存中设置配置位 。 然而 , 运行代码将揭示一个不同的故事!尽管已经正确地配置了这些位 , 但是开发人员会发现在目标上 , 这些位仍然被设置为默认值 。哪里出了问题?使用IAR , 开发人员可以在要加载的代码和目标内存中存在的代码之间运行验证检查 。 他们会发现验证失败了 。 某些东西阻止了配置位的编程 。
罪魁祸首是IAR工具链 , 它阻止了配置区域的更新 。 这种行为的原因是 , 这些配置位对编程来说可能是危险的 , 因为它们可能会锁定整个器件 。 无意中对它们进行编程可能是灾难性的 , 因此工具链会自动阻止对目标区域的写权限 , 而不会向开发人员提及 。 工具链假设嵌入式开发人员知道这是工具链的行为方式 。
要对配置位进行编程 , 开发人员必须通过向flash设置配置添加特殊参数来手动覆盖这一默认行为 , 如图1所示 。 只有在开发人员做到这一点之后 , 他们才能成功地编写配置位 。 没有这个“特性”的经验或知识的开发人员很容易被弄糊涂 , 特别是因为这些参数被很好地隐藏在多个子菜单中 。
图1–IAR Overide参数
所以 , 开发人员和项目团队需要安排时间来定期更新自己 , 并学习更多关于他们日常使用的工具的知识 。 此外 , 项目经理需要认识到时间表中必须有学习工具的时间 。 嵌入式开发人员通常知道他们的工具链的日常特性 , 但是工具的细微复杂之处才是真正重要的 , 并提供最强大的特性 。
- 淘宝|社区团购是什么?如何开发一个社区团购商城?
- 前端开发|为什么前端人找工作越来越难?!
- MIUI|MIUI开发版比稳定版香?MIUI13.1下小米11ultra相机性能有望回归
- 本文转自:新民晚报新民晚报讯(记者 叶薇)面向全球开发者的顶级赛事——鲲鹏创新应用大赛2...|数十支开发者团队同台竞技秀“创新”鲲鹏应用创新大
- |这些都涉及到广州小程序的外包开发?
- 电子商务|GMS转到HMS,软件开发者需要付出多大代价?
- 本文转自:中国山东网中国山东网-感知山东9月1日讯(通讯员 王慧亮 徐冰鑫) 奋斗永远是...|烟台移动开发区分公司|在网格书写青春的答卷
- 本文转自:人民网上海商汤科技开发有限公司副总经理李兆松。|商汤科技李兆松:人工智能基础设施将成为“新基建”核心内容
- Arm|竞争Intel/苹果 高通正开发的革命性PC CPU被ARM阻止:告上法庭
- |开发者狂喜,手机大厂最近都在开发布会,从生态角度进行解读