This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

新接触280049c,吐槽

Other Parts Discussed in Thread: C2000WARE

280049c的参考历程远远没有以前的28x系列的参考历程多。相关寄存器配置的源文件也找不到,比如SCI、IIC、pwm等模块的配置文件都找不到,难道要我们自己写?有个奇怪的现象,support中的源文件有关于SPI的初始化源文件,但没有can、iic、pwm的初始化源文件。这是为什么?

       我用了旧的28035、2808、2812、28335系列的芯片,都是寄存器版本的程序,现在改成库函数版本,我感觉极不习惯,我看网上大家的讨论的大多是用库函数会导致工程师对芯片的底层越来越陌生。希望能多给点寄存器版本的参考历程。像ST等Arm的程序大多是用库函数进行硬件配置,新手是用起来方便,但是对底层又有多少了解呢?嵌入式方面的工程师本来就属于和硬件打交道的,现在把硬件相关的寄存封装了,那还是嵌入式工程师吗?

像CAN模块,我们是需要根据协议,对结构体重新进行定义和划分的,如果封装成库了,那么相关成员的命名就没法改了,和实际的协议就对不上了。

  • 关于此,我们有一个专门的文档 Programming TMS320x28xx and TMS320x28xxx Peripherals in C/C++

    www.ti.com/.../spraa85e.pdf

    在该文档中比较了这2种方式:

    The C2000 Peripheral Driver Library (or Driverlib) is a set of low-level drivers for configuring memorymapped peripheral registers. The Driverlib is a more readable and portable approach than performing direct register accesses either by bit fields or the #define approach.

    The Driverlib is written in C and all source code is found within C2000Ware. It provides drivers for all peripherals and provides access to almost all functionality.

    Driverlib实际上是将以前的Bit Field的定义改为用函数去实现。比如使能某个外设,之前是往控制寄存器的某一位写1,现在是通过XXXenable(); 实现,在这个函数内部还是往使能位写1.

    因为是通过函数的方式实现,优点是不需要深入去了解寄存器的每个位是如何定义的,调用函数就可以了。缺点是函数的使用不可避免的会带来代码空间和CPU的额外的负荷。
  • 而且Driverlib 提供了一种更具可读性和可移植性的外设寄存器编程方法。凭借这样的可移植性可以更轻松地移植到将来的器件系列,因为即使控制位可能在寄存器内和寄存器间发生变化,功能调用也可以保持不变。
  • 你们这不就是跟着ST的搞法来弄得么?本来这么多ST的方案已经验证了库函数的做法,效率低些,空间资源消耗大,dsp的硬件资源本来就很少了,你们为什么还要这么做呢?也难怪280049的ram和rom都大了很多,但是随之而来的是这块芯片价格也上涨了不少。我个人认为,了解每个寄存器是嵌入式工程师必须具有的技能,因为嵌入式的工程师毕竟偏底层,和硬件打交道多一些。我们这个项目选型定了280049,没法改了。我只能尽量去适应你们的改变了,这无形中又增加了我的工作量。以后的项目我还是会优先选老一点的28x系列的芯片,毕竟对那些芯片比较熟悉了,相应的资源也很丰富。
  • 你们这不就是跟着ST的搞法来弄得么?本来这么多ST的方案已经验证了库函数的做法,效率低些,空间资源消耗大,dsp的硬件资源本来就很少了,你们为什么还要这么做呢?也难怪280049的ram和rom都大了很多,但是随之而来的是这块芯片价格也上涨了不少。我个人认为,了解每个寄存器是嵌入式工程师必须具有的技能,因为嵌入式的工程师毕竟偏底层,和硬件打交道多一些。我们这个项目选型定了280049,没法改了。我只能尽量去适应你们的改变了,这无形中又增加了我的工作量。以后的项目我还是会优先选老一点的28x系列的芯片,毕竟对那些芯片比较熟悉了,相应的资源也很丰富。
  • 还有个小问题,你们这个网站打开太慢了,慢的令人发指,能不能解决一下呢?每次打开这个论坛要等半天。从TI官网下载资料也慢的不行。对我这种急性子,是莫大的折磨啊。
  • 280049的driverlib质量确实不敢恭维

  • 谢谢您关于Driverlib的宝贵建议。如果您在使用过程中有任何问题,欢迎你在本论坛发帖,我们会尽快帮你解答。

    关于网速的反馈,中国用户的体验一直是我们关注的重点。我们需要您提供以下信息以便于我们调查和改善:

    • 关于E2E China 网速慢,请问对您来说是整个网站都慢,还是某个页面慢?可否提供链接?其他同事的情况如何?
    • 如果是公司网络环境,可否提供一些您公司网络环境的情况?比如有没有防火墙,IT 有没有对公司下载以及浏览页面有些限制?
    • 如果是家庭环境,可以提供一些网络信息?比如网络公司,网速慢的时间段。
    • 您使用的是什么浏览器,什么版本?
    • 如果可能的话,您是否可以提供浏览器开发者工具里的记录?
    • 如果是Chrome浏览器,Development Tools(开发者工具)里的performance (性能) tag,操作前点一下record(开始 – 下图标记 ①),操作结束后stop record(停止 – 下图标记 ①)之后,保存JASON(下图标记 ②)文件到桌面发给我们。