当前位置: 首页 > news >正文

C2000芯片的lib库制作遇到问题记录

制作库的大概思路

制作lib库意味着一共有3分代码:完整代码,库代码,工程代码
权限高的拥有完整代码和库代码。
给普通员工工程代码去开发非标项目。
要想制作一个库,首先代码最好要是结构清晰,分层,模块的。
一般把底层驱动打包成lilb
对于应用层,关键代码编译成obj即可。
lib库工程,CCS不能用一般工程直接修改得到,需要重新建立工程。
建立CCS项目时选择lib库。具体方法可以网上搜。项目文件只添加驱动层的c和h即可。编译生成lib文件
对于工程代码,去掉驱动层的所有c文件,去掉应用层的关键C文件。
当需要更新库的时候 以免遗漏 按下列步骤执行:
修改库的步骤

遇到的问题

其实搞库不复杂,但是这个问题花了我整整一天时间。大概描述下,作为记录。我编译可执行文件烧录后发现不运行,但是完整代码版本烧录可以运行。
于是对工程代码用仿真器逐步排查。
发现运行到一个等待延时函数出的问题。这是个用汇编写的函数,如下:
官方的汇编延时函数
这个函数是不是怪怪的。对,一旦摸到汇编,就触及到所有程序员的紧张神经。于是怀疑它这种宏方式制作lib可能存在问题。不就延时嘛!搞这么复杂,重写了它 简单粗暴。如下:
用普通函数代替汇编延时
心想着,这下应该行了吧。
烧录,run!
。。。。结果,不行!!!
然后事情就变得尴尬起来,大眼瞪小眼,莫名其妙。
又花了3个小时,试了其他可能性,都不行!!!
好吧,这种情况,我们程序员见多了,虽然没思路,但是我一定能解决的。再复杂的问题,也经不起多次尝试。
继续仿真器大法,观察汇编的跳转,很奇怪的是一旦进入这个延时函数,就跳转到一个莫名其妙的地址,但是这个地址明显与map文件中函数的地址不符合。
函数指定在RAM中运行

让deepseek翻译了一下这个汇编函数。提示这个函数是要求在RAM中运行的。
那么是不是Flash拷贝到RAM有问题?于是查看拷贝函数,看似也是正常的。
但是。。。。这个拷贝函数被宏开关控制的。如下
宏开关
CCS预处理配置

哦!!!解决了,这个宏开关是在开发环境CCS中预处理中定义的。
由于lib库 必须新建CCS项目,新建后,CCS项目配置是默认的,于是手动改了配置保持与完整代码工程一样。
复测,问题解决!发电流正常
电流正常
复杂的问题就像高考数学压轴题,往往是绕了好几层,但是它也经不起测试的。讲白了就是要花时间费精力。

http://www.dtcms.com/a/483453.html

相关文章:

  • 重庆做网站哪家好joomla适合做什么网站
  • 网站建设运营知乎网站备案 价格
  • 从点云到模型,徕卡RTC360如何搞定铝单板测量?
  • js 网站头部固定国内网站放国外服务器
  • 网站验证:技术、策略与重要性
  • 怎样做金融理财网站响水县住房建设局网站
  • Flutter---Text
  • 怎样在外管局网站做延期付款做网站的可行性分析
  • Android 通过广播监听home键和任务键
  • 注册公司的网站开发做网站公司
  • 发票识别技术:结合OCR与AI技术,实现纸质票据高效数字化,推动企业智能化转型
  • 哈尔滨flash网站网页设计全网营销型网站 新闻
  • 从零开始,一步一步地搭建录屏类自动发布工作3:Phase 4 全功能录制功能实现
  • 阜新网站推广个人主页网站设计代码
  • 面试知识点重现
  • 网络原理:网络通信基础概念全面整理
  • CCF-GESP 等级考试 2025年9月认证C++三级真题 - 编程题 解析
  • 景山网站建设公司内蒙古网站建设云聚
  • 网站怎么做app个人网站取什么域名好
  • 剪映制作一个音乐滚动流程
  • 网站模板预览wordpress ftp没有权限
  • **编程基础学习(二)-C语言变量、控制结构和函数
  • 02117 信息组织【第七章】
  • FFRT的核心并发范式与样例概览
  • 用jsp做一网站的流程佛山app开发公司排名
  • 建立网站需要怎么做从网络安全角度考量_写出建设一个大型电影网站规划方案
  • CRMEB多商户系统(Java) v2.0公测版发布
  • 网站后台发文章图片链接怎么做泰州市建设监理协会网站
  • SQL性能调优:深入理解数据库索引的原理与应用
  • sqlite:存储时间