djyos从2410到2440的移植过程分享

djyos 2009-06-02 10:56:19
本来想先把djyos移植到lpc上的,应广大网友的要求,还是先移植到mini2440上,为此,买了一块mini2440板。从2410到2440,本应很简单很快,但由于情敌麻痹,还是费了不少周章,写出来,大家共勉之,技术是实实在在的,再简单的东西,也切不可大意,否则你会受到惩罚的。

收到板子已经两天了,很小巧的一个板子,但麻雀虽小五脏俱全,还带一个3.5寸的真彩屏,才500多,超值啊。我一直做工业产品,成本控制方面不在行,真佩服友善之臂的成本控制。美中不足的是,该板子太紧凑了,但液晶屏架在元件面的上面,导致按钮、跳线等都无法操作,更甭说用示波器、万用表测量器件上的信号了。嘻嘻,俺做硬件,比较关注这个。想把液晶换到焊接面安装,但元件面紧凑的连拧螺丝的位置都没有。
因为已经有了2410版,而2410和2440又极为相似,移植还不是小菜一碟,情敌麻痹的思想就这样蔓延开来了。把initcpu.s文件中跟时钟相关的寄存器一改,就想看看能不能转起来,一边哼着小调,一边轻快地连号先,ok,上电,运行JflashARM,打开run_inram.bin,点F7开始烧录,本以为能看到那个熟悉的进度条,但实际得到的是:找不到flash芯片。难道配置错了,仔细检查,再对照友善的原理图,拆下液晶核对芯片型号,修改配置后,还是不对。最后才发现,是选择nandflash启动还是norflash启动的开关被拨到了nand一边,怪不得不能烧写norflash了。把开关拨到norflash一边后,再试,只见进程条欢快地闪了几下,完成了。
flash烧录成功了,总该可以看到运行结果了吧,事实证明,我这种想法是相当的愚蠢的。连上超级终端后,上电,看,屏幕纹丝不动,我一下子就蔫了。赶紧烧录boot_rom.bin,连接仿真器,加载debug.elf,先run一下,停下来一看,程序没停在djy_service函数:
void __djy_service(struct event_script *my_event)
{
while(1);
}
的while(1);处,而是在0x00000028处,即发生了取址异常。然后单步调试,发现程序总是很神经,执行结果经常是毫无道理的,也时不时会发生异常,未定义指令、取址、数据异常均可能发生,傻了!
汇编级单步调试之,发现经常有一些指令的执行结果是不对的,比如一条
mov r1,r2指令,执行完后发现r1不变倒是SP变了,这样程序不乱飞才怪呢?
为什么呢?难道用仿真器看到的内容和CPU执行时取址得到的内容不一致吗?灵感闪现了,思路进行到这里,问题已经解决大半了,仿真器可能是通过jtag口直接访问内存,而cpu可能是通过完整的总线控制器访问内存,读到的内容可能真的不一样。这时才想起,改initcpu.s时,只修改了时钟控制寄存器,没有修改总线控制寄存器,2440的速度比2410高,总线速度可能跟不上。找到问题了就好,赶紧按友善提供的example中的配置,把总线配置改了过来。再试,好了,程序终于停在while(1)上了,小小地开心了一把,但超级终端还是没有输出。这个问题,现在说来像侃故事,其实在程序乱飞毫无头绪的时候,瞧自己抓耳挠腮那个猴样,很痛苦的,也花了很多时间,正印证了一句古话:心急是吃不着热粥的!
仔细对比2410和2440的uart功能和寄存器配置,发现其除了fifo深度以外,都是相同的,2410的fifo是16字节,而2440则扩充到64字节,体现在寄存器上,就是fifo状态寄存器UFSTAT中控制位的定义不同。按2440的UFSTAT修改代码后,这下总应该可以了吧!遗憾的是,超级终端还是没有响应,还得单步调试,把断点放在直接往fifo写数据的地方,发现程序确实正常发送数据,就是接收不到,先怀疑时钟配合问题,看是不是baud不对,也找不出纰漏。有了前面的经验,这次不慌了,仔细看mini2440板子的说明,终于发现了问题所在:原来mini2440的串口与计算机相连要用直连线!而我由于懒得拔原来的串口线,就用了原来交叉线了。
把线一换,再run,终于,超级终端有了反应,看到久违的“欢迎使用都江堰操作系统”了。
接下来的闪灯,nandflash、键盘驱动都比较顺利,按数据手册修改了代码就行,没废太多周折。
...全文
188 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwillbeback008 2009-08-28
  • 打赏
  • 举报
回复
支持一下LZ
liushac 2009-06-09
  • 打赏
  • 举报
回复
关注
zhj8727 2009-06-02
  • 打赏
  • 举报
回复
uping
gooogleman 2009-06-02
  • 打赏
  • 举报
回复
支持。最近太懒了。连ucos都没有看!
91program 2009-06-02
  • 打赏
  • 举报
回复
支持一下LZ
软件概述 UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。 软件基础信息 • 支持系统: 64位 Windows 10、Windows 11 核心功能模块 一、创新设计:高效、灵活、无缝协同 全链路产品设计 涵盖从2D布局、3D建模、装配设计到图纸文档记录的各个环节,大幅提升设计吞吐量,缩短交付周期超35%。 强大的同步建模技术 打破数据壁垒,可无缝导入并直接修改来自其他CAD系统的几何模型,是跨平台协同设计的理想选择。 复杂装配管理 专为大型复杂产品打造,即使面对成千上万的零件也能从容应对,快速识别并解决数字样机中的干涉等问题。 集成设计验证 内置自动验证功能,实时监控设计是否符合公司及行业标准;结合PLM数据可视化合成,辅助工程师做出更明智的决策。 二、综合仿真(Simcenter 3D):精准预测,降低试错成本 极速前后处理 依托先进的几何引擎,将强大的分析命令与几何编辑紧密集成,相比传统有限元工具,可缩短高达70%的仿真建模时间。 全方位结构分析 在同一环境中集成线性静力学、动态、疲劳及非线性分析,底层由业界顶尖的NX Nastran解算器提供支持,确保计算的高精度与可靠性。 声学与热管理分析 提供内外声学仿真以优化音质、降低噪音;具备一流的热传导仿真能力,帮助电子产品和工业机械实现最佳热管理方案。 多物理场耦合 简化了结构动力学、热传导、流体流动等复杂物理现象的模拟过程,消除外部数据传输错误,真实还原产品运行工况。 三、智能制造(CAM):打通从计划到车间的数字主线 全面的制造解决方案 提供从工装设计、CAM编程到机床控制器(如Sinumerik)的一体化支持,助力制定更科学的生产决策。 深度集成的PLM环境 借助Teamcenter实现数据和流程的统一管理,避免多数据库冲突,支持重用验证过的加工工艺与刀具库。 车间级互联 通过DNC系统与车间无缝对接,直接将加工数据和刀具清单下发至CNC机床,实现计划与生产的紧密结合。 提质增效 优化NC编程与刀具路径,提升表面精加工水平与零件精度;减少人为错误,显著提高新机床部署成功率及制造资源利用率。 总结 UG NX 2023作为一款集成化的产品工程解决方案,通过其强大的设计、仿真和制造功能,为现代制造业提供了完整的数字化产品开发平台。无论是复杂产品的设计验证,还是精密制造的流程优化,UG NX 2023都能为工程师团队提供高效、可靠的解决方案,助力企业提升产品创新能力和市场竞争力。 适用领域 模具设计、汽车制造、航空航天、通用机械、消费电子等
软件概述 UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。 软件基础信息 • 支持系统: 64位 Windows 10、Windows 11 核心功能模块 一、创新设计:高效、灵活、无缝协同 全链路产品设计 涵盖从2D布局、3D建模、装配设计到图纸文档记录的各个环节,大幅提升设计吞吐量,缩短交付周期超35%。 强大的同步建模技术 打破数据壁垒,可无缝导入并直接修改来自其他CAD系统的几何模型,是跨平台协同设计的理想选择。 复杂装配管理 专为大型复杂产品打造,即使面对成千上万的零件也能从容应对,快速识别并解决数字样机中的干涉等问题。 集成设计验证 内置自动验证功能,实时监控设计是否符合公司及行业标准;结合PLM数据可视化合成,辅助工程师做出更明智的决策。 二、综合仿真(Simcenter 3D):精准预测,降低试错成本 极速前后处理 依托先进的几何引擎,将强大的分析命令与几何编辑紧密集成,相比传统有限元工具,可缩短高达70%的仿真建模时间。 全方位结构分析 在同一环境中集成线性静力学、动态、疲劳及非线性分析,底层由业界顶尖的NX Nastran解算器提供支持,确保计算的高精度与可靠性。 声学与热管理分析 提供内外声学仿真以优化音质、降低噪音;具备一流的热传导仿真能力,帮助电子产品和工业机械实现最佳热管理方案。 多物理场耦合 简化了结构动力学、热传导、流体流动等复杂物理现象的模拟过程,消除外部数据传输错误,真实还原产品运行工况。 三、智能制造(CAM):打通从计划到车间的数字主线 全面的制造解决方案 提供从工装设计、CAM编程到机床控制器(如Sinumerik)的一体化支持,助力制定更科学的生产决策。 深度集成的PLM环境 借助Teamcenter实现数据和流程的统一管理,避免多数据库冲突,支持重用验证过的加工工艺与刀具库。 车间级互联 通过DNC系统与车间无缝对接,直接将加工数据和刀具清单下发至CNC机床,实现计划与生产的紧密结合。 提质增效 优化NC编程与刀具路径,提升表面精加工水平与零件精度;减少人为错误,显著提高新机床部署成功率及制造资源利用率。 总结 UG NX 2023作为一款集成化的产品工程解决方案,通过其强大的设计、仿真和制造功能,为现代制造业提供了完整的数字化产品开发平台。无论是复杂产品的设计验证,还是精密制造的流程优化,UG NX 2023都能为工程师团队提供高效、可靠的解决方案,助力企业提升产品创新能力和市场竞争力。 适用领域 模具设计、汽车制造、航空航天、通用机械、消费电子等

1,076

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧