共2条
1/1 1 跳转至页
ecos,for,SmartARM2200 ecos for SmartARM2200
问
答 1:
ecos for EasyARM2200
答 2:
可以提供移植的源码部分么!可以提供移植的源码部分么!
答 3:
移植的源码部分只有几百行, ecos的可扩展性做得比较好,很多内容已经被极度抽象了,比如串口,程序可以自动探测是哪一种类型的UART,MODEM串口还是普通串口,带中断缓冲区还是直接利用FIFO轮询,你的工作就剩下注册串口设备,告诉系统你打算给串口起个什么名字,要用几个口,仅此而已,想象不到的简单。至于移植部分,本来我以为自己要做很多工作,在做了近乎99%的工作后,无意中发现《ARM嵌入式Linux系统构建与驱动开发范例》书里已经提供了全部参考,本来ecos和uClinux都是用gcc编译的嘛,而且平台都一样,直接抄过来就是了。当然,宏定义要按照ecos的标准层次法命名,以便使意义更清晰,比如:LPC2XXX_HAL_TIMER0_IR,LPC2XXX体系架构的硬件相关层的定时器0的IR寄存器。因为LPC2XXX的一些寄存器写0无影响,所以一些需要读-修改-写的部分,可以直接修改-写,不想影响的位写0即可,这样可以节省一条读语句。LPC2XXX中断系统支持VIC直接映射,可以大大加快中断响应时间,多达16个中断可以直接映射,把频率最高的16个按优先级放在VIC里,其余采用轮询中断状态寄存器,把出现频率高的放前面,整体性能会有明显提高......感觉ecos是个稳定、高效、低功耗、扩展性好的RTOS。不要担心源码问题,ecos是开源的自由软件,不存在黑箱和内幕,你可以得到你想要的任何源码,GPL条约保证你的权益。ecos本身就带有很多种板子的移植范例,我就是参考E7T进行移植的。
作为过来人,我的移植经验是,先把ecos用熟,用一年后再考虑移植,你会快很多。当我还不明白ecos怎么用,适不适合我的时候就想去移植,结果书看不懂,纠缠于细节不能自拔,犯低级地使用错误,自信心倍受打击。其实,ecos的使用异常简单,只要用gcc把你的应用程序和库链接就可以了,你习惯于什么样的编程方法就用什么样的方法,ecos的编程规范是用于生成组件仓库的,你不建库的话,就不用理会它。
ARM-elf-gcc -g -I $(PKG_INSTALL_DIR)/include $(TEST_FILE_NAME) -L $(PKG_INSTALL_DIR)/lib -Ttarget.ld -nostdlib
其中:
PKG_INSTALL_DIR = /tmp/lpc_default_ram_install 安装树路径。
TEST_FILE_NAME = yy.c 你的程序名,当然也支持多级目录。
共享源码是一把双刃剑,一方面可以使你快速地定制自己的系统,另一方面也会扼杀你的独立思考能力和创造力萌芽.因为到底是自己真的想明白了还是抄别人的结论而自认为真会了呢!久而久之是不是对自己越来越没有信心呢,也许你能掌握这一次的知识点,但是下次呢,你的自信心会越来越弱,以至于不相信自己能做出来。我做ecos之前也没有人告诉我该怎么做,就和你现在的处境一样,没办法,硬着头皮去做喽,逼着自己想办法解决问题,手段会越来越多,久而久之就有自信了。最近一直在考虑授人以鱼还是授人以渔,表面上看,给一条鱼皆大欢喜,可这并不能解决根本问题,特别是嵌入式开发,很多时候你并不能得到全部资料,或者困难重重,你必须在缺少帮助的情况下工作,减少借口,直面困难的现实。这样做的好处是,你可以独立思考,我们也可以看看有没有其他解决方案,是不是比我们的更好,大家一起交流,共同进步!
我们现在主要是授人以渔(学习效果最好,成就感最大,增强自信心,我们也能反过来受到启发),主要作用是帮你收集资料,提供稳定的平台和参照物,使你面临的困难变小,最终协助你加速攻克难关。意义何在呢,例如:你知道你不知道的知识点,你上网搜索就可以找到,我们的价值在于,提供你不知道你不知道的那部分知识点,你无法上网查找,因为你不知道关键字。
没有公开的源码只有几百行(HAL和DEV硬件相关部分),而且已经给出了很多启发,再加上ecos的大量范例,做出来不成问题。况且,我们做的移植也不一定是最好的,一个参考而已。想想也是,做嵌入式开发一定用ARM吗?就算用ARM一定用ARM7吗?就算用ARM7一定用NXP的吗?就算用NXP一定用LPC2210吗?就算用2210一定用EASY或SMART平台吗?说到底,我们的目的是用ecos做开发,ecos屏蔽了底层硬件细节,至于针对2210的移植源码反而不重要。
作为过来人,我的移植经验是,先把ecos用熟,用一年后再考虑移植,你会快很多。当我还不明白ecos怎么用,适不适合我的时候就想去移植,结果书看不懂,纠缠于细节不能自拔,犯低级地使用错误,自信心倍受打击。其实,ecos的使用异常简单,只要用gcc把你的应用程序和库链接就可以了,你习惯于什么样的编程方法就用什么样的方法,ecos的编程规范是用于生成组件仓库的,你不建库的话,就不用理会它。
ARM-elf-gcc -g -I $(PKG_INSTALL_DIR)/include $(TEST_FILE_NAME) -L $(PKG_INSTALL_DIR)/lib -Ttarget.ld -nostdlib
其中:
PKG_INSTALL_DIR = /tmp/lpc_default_ram_install 安装树路径。
TEST_FILE_NAME = yy.c 你的程序名,当然也支持多级目录。
共享源码是一把双刃剑,一方面可以使你快速地定制自己的系统,另一方面也会扼杀你的独立思考能力和创造力萌芽.因为到底是自己真的想明白了还是抄别人的结论而自认为真会了呢!久而久之是不是对自己越来越没有信心呢,也许你能掌握这一次的知识点,但是下次呢,你的自信心会越来越弱,以至于不相信自己能做出来。我做ecos之前也没有人告诉我该怎么做,就和你现在的处境一样,没办法,硬着头皮去做喽,逼着自己想办法解决问题,手段会越来越多,久而久之就有自信了。最近一直在考虑授人以鱼还是授人以渔,表面上看,给一条鱼皆大欢喜,可这并不能解决根本问题,特别是嵌入式开发,很多时候你并不能得到全部资料,或者困难重重,你必须在缺少帮助的情况下工作,减少借口,直面困难的现实。这样做的好处是,你可以独立思考,我们也可以看看有没有其他解决方案,是不是比我们的更好,大家一起交流,共同进步!
我们现在主要是授人以渔(学习效果最好,成就感最大,增强自信心,我们也能反过来受到启发),主要作用是帮你收集资料,提供稳定的平台和参照物,使你面临的困难变小,最终协助你加速攻克难关。意义何在呢,例如:你知道你不知道的知识点,你上网搜索就可以找到,我们的价值在于,提供你不知道你不知道的那部分知识点,你无法上网查找,因为你不知道关键字。
没有公开的源码只有几百行(HAL和DEV硬件相关部分),而且已经给出了很多启发,再加上ecos的大量范例,做出来不成问题。况且,我们做的移植也不一定是最好的,一个参考而已。想想也是,做嵌入式开发一定用ARM吗?就算用ARM一定用ARM7吗?就算用ARM7一定用NXP的吗?就算用NXP一定用LPC2210吗?就算用2210一定用EASY或SMART平台吗?说到底,我们的目的是用ecos做开发,ecos屏蔽了底层硬件细节,至于针对2210的移植源码反而不重要。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |