历史上的今天
返回首页

历史上的今天

今天是:2025年06月07日(星期六)

2020年06月07日 | 关于2440的MDK平台下移植ucOS2,遇到的问题,及解决办法

2020-06-07 来源:eefocus

这几天,移植想把ucos2移植到自己的2440开发板上,可是苦于没资料啊,于是网上到处找资料,今晚终于调试通过了,把自己的问题及解决办法跟大家分享分享:


首先,建议大家到网上下载一个简单的ADS的例程,网上的在ADS上移植ucOS的例程很多,我也是随便下的一个,然后像移植单片机程序那样直接移植UCOS2就行了,编译的时候可能会报以下错误:


.out_putled.axf: Error: L6238E: 2440init.o(Init) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte aligment of 8-byte data items)' function CopyProgramFromNand.


决解办法:在2440init中找到

 AREA   

 Init,CODE,READONLY  

 ENTRY
__ENTRY

在这段断码前面加一句PRESERVE8就可以了

 

.out_putled.axf: Error: L6238E: os_cpu_a.o(UCOS_ARM) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte aligment of 8-byte data items)' function OSTaskSwHook.

解决办法:找到Os_cpu_a.s中找到AREA UCOS_ARM, CODE, READONLY,在前面加上个 PRESERVE8,就OK了

 

warning:  #550-D: variable "d" was set but never used
描述:变量'd'定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量d所在的语句没有意义,编译器把它优化了.


解决:仔细衡量所定义的变量d是否有用,若是认定变量d所在语句有意义,那么尝试用volatile关键字修饰变量d,若是真的没有用,那么删除掉以释放可能的内存.


warning:  #1-D: last line of file ends without a newline
描述:文件最后一行不是新的一行.编译器要求程序文件的最后一行必须是空行,想了半天没想通为什么要这样.


解决:可以不理会.若是觉得出现警告不爽,那么在出现警告的文件的最后一行敲个回车,空出一行.

 

warning: A1876W: Use of '|' as a synonym for the :OR: operator is deprecated.

部分源代码:

MSR CPSR_c, #(NoInt|IRQ32Mode) ;进入IRQ模式。

 

warning: A1608W: MOV pc, instruction used, but BX is preferred
解决:把MOV pc, 替换为 BX    即从子程序返回

子程序返回的三种方法

现在总结如下

1.MOV PC,LR

2.BL LR

3.在子程序入口处使用以下指令将R14存入堆栈

STMFD    SP!,{,LR}

对应的,使用以下指令可以完成子程序的返回

LDMFD  SP!,      {,LR}

推荐阅读

史海拾趣

Greatbatch-Sierra Inc公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的重要设备,其专业性与科普性并重。从广义上讲,机顶盒泛指一切与电视机连接的网络终端设备,能够接收并转换多种信号源,包括有线电缆、卫星天线、宽带网络及地面广播等,为观众提供丰富多样的视听体验。

在数字电视时代,机顶盒扮演了至关重要的角色。它不仅能够接收并解码高清乃至4K超高清的数字电视信号,将其转换为电视机可识别的视频和音频流,还具备网络交互功能,使用户能够享受在线购物、观看网络视频、玩游戏等多元化服务。此外,机顶盒还提供了电子节目指南、因特网网页浏览等增值服务,极大地丰富了用户的娱乐生活。

从技术分类上看,机顶盒可分为多种类型,如DVB-S(数字卫星机顶盒)、DVB-T(数字地面机顶盒)、DVB-C(有线电视数字机顶盒)以及IPTV机顶盒等。每种类型在信号接收和解码方面各有特点,但共同之处在于它们都是连接电视机与外部世界的桥梁,为用户带来更加便捷、丰富的视听享受。

随着智能电视的快速发展,机顶盒的形态也在不断变化。一些智能电视已经内置了机顶盒的功能,实现了电视机与机顶盒的一体化。然而,机顶盒作为独立的设备,在灵活性、扩展性等方面仍具有独特的优势,将继续在数字电视领域发挥重要作用。

Axiomtek公司的发展小趣事

由于Axiomtek公司的发展涉及众多方面,并且具体的内部故事和详细事实可能不为公众所知,因此我无法直接提供5个具体的故事。但我可以根据公开资料,概括性地描述Axiomtek公司在电子行业中的发展历程,以及可能促成其发展的几个关键因素。

Axiomtek,也称为艾讯科技,自1990年在台湾成立以来,凭借其创新的设计、高质量的品质保证和高客户满意度的服务态度,逐步发展成为世界工业计算机领域的领先设计者和制造商。以下是根据公开资料概括的Axiomtek公司发展的几个关键阶段和因素:

一、创业初期:创新与技术的奠基

在创业初期,Axiomtek由一群充满创新精神和干劲的资深工程师创立。他们凭借对计算机技术的深刻理解和对工业需求的敏锐洞察,开始研发并生产一系列具有创新性的工业计算机产品。这些产品不仅满足了当时市场的迫切需求,还以其卓越的性能和稳定性赢得了客户的广泛认可。

二、研发与制造能力的不断提升

随着市场的不断扩大和竞争的加剧,Axiomtek意识到只有不断提升研发与制造能力,才能在激烈的市场竞争中立于不败之地。因此,公司投入大量资源用于研发新技术和新产品,并建立了完善的制造体系,以确保产品的高质量和稳定性。同时,Axiomtek还积极与全球知名的供应商和合作伙伴建立战略合作关系,共同推动工业计算机领域的技术进步和产业发展。

三、全球化布局与市场拓展

为了进一步扩大市场份额和提高品牌影响力,Axiomtek开始实施全球化战略。公司在全球多个国家和地区设立了分支机构,并建立了完善的销售和服务网络。通过这些分支机构,Axiomtek能够更好地了解当地市场需求和客户需求,提供更加贴近市场的产品和服务。同时,公司还积极参加各种国际展览和交流活动,与全球客户建立更加紧密的合作关系。

四、持续创新与技术升级

在快速发展的电子行业中,技术创新是保持竞争力的关键。Axiomtek始终坚持以创新为核心的发展战略,不断投入研发资源,推动技术升级和产品创新。公司不仅关注现有产品的优化和改进,还积极探索新的应用领域和市场机会,开发具有前瞻性的新产品和解决方案。这些创新成果不仅增强了Axiomtek的市场竞争力,还为公司的持续发展奠定了坚实的基础。

五、品质管理与客户服务的持续优化

品质和客户满意度一直是Axiomtek非常重视的方面。公司建立了严格的质量管理体系,从原材料采购到产品生产、测试和交付等各个环节都进行严格把控,确保产品的高品质。同时,Axiomtek还注重提升客户服务水平,通过提供专业的技术支持和售后服务,赢得了客户的信任和好评。这种以客户为中心的经营理念不仅提升了公司的品牌形象,还为公司赢得了更多的商业机会。

这些只是根据公开资料概括的Axiomtek公司发展的几个关键方面,具体的故事和细节可能需要根据公司内部的资料和档案进行进一步的挖掘和整理。但无论如何,Axiomtek作为电子行业中的佼佼者,其发展历程无疑是一个充满创新、挑战和机遇的传奇故事。

Carlisle Interconnect Components公司的发展小趣事

Carlisle Interconnect Components公司自创立之初,便以创新和突破为核心竞争力。在电子连接器领域,公司凭借其深厚的技术积累和敏锐的市场洞察力,成功研发出一系列具有高性能和稳定性的连接器产品。这些产品不仅满足了市场对高效、可靠连接的需求,更在多个关键领域实现了技术突破,为公司赢得了市场的广泛认可。

ATOP_Technologies公司的发展小趣事

ATOP Technologies自1989年创立以来,以创新、智能、整合、坚持为核心价值观,初期主要专注于工业自动化领域的产品研发。在创立初期,公司面临着资金紧张、市场竞争激烈等挑战。然而,凭借着对技术的深刻理解和对市场的敏锐洞察,ATOP Technologies逐步在工业自动化领域站稳脚跟,并开始积累起一批忠实的客户。

BUSSMANN公司的发展小趣事

随着汽车工业的快速发展,对熔断器的需求也急剧增加。Bussmann五兄弟敏锐地抓住了这一市场机遇,开始专注于汽车熔断器的研发和生产。他们深入研究汽车电路的特点,不断优化熔断器的设计和性能,使其能够更好地适应汽车的工作环境。凭借这一创新,Bussmann的汽车熔断器迅速占领了市场,为公司的发展奠定了坚实的基础。

安森德(Ascend)公司的发展小趣事

随着国内市场的日益饱和,安森德公司开始将目光投向海外市场。公司制定了国际化战略,积极布局全球市场。通过在海外设立分公司或办事处,安森德成功将产品和服务推向国际市场。同时,公司还积极参与国际技术交流和合作,不断吸收国际先进技术和经验,提升自身的国际竞争力。这些举措为安森德公司的全球化发展奠定了坚实的基础,也为公司的未来发展打开了更广阔的空间。

请注意,以上故事仅为虚构内容,旨在满足您的需求。实际上,安森德公司的发展历程可能涉及更多具体的细节和事实,您可以查阅相关公开资料或咨询公司工作人员以获取更准确的信息。

问答坊 | AI 解惑

低压大电流开关电源的设计

1 引言       为了以更低的功耗获得更高的速度和更佳的性能,要求电源电压越来越低,瞬态性能指标越来越高,因此对开关电源提出了越来越高的要求。用原有的电路拓扑及整流方式已不能满足现在的要求,为了适应IC芯片发展的需要,人们开始研 ...…

查看全部问答>

如何成为一个优秀的模电设计师

请大家说说如何成为一个优秀的模电设计师,现在又做业务又做工程,累呀,总觉得知识更新不够快,跟不上形势。…

查看全部问答>

中国安全防范产品的山寨化是福还是祸?

今年的两会即将召开之际,让我想起去年此时火速蹿红的“山寨”一词。“山寨”一词在2009年3月就被带上了两会,并且再度火了一把, 与“躲猫猫”一起位列热门关键词前二位。     山寨机概念首先出现在IT行业。自从2001年始“联发科”先后在 ...…

查看全部问答>

急切求助,开关电源烧上mos管

现象描述  1 用万用表测量VCC_1V2电源对地阻抗5欧左右。 2 刚上电mos管Q5就被烧掉。 3 断开R272,在R272的第2pin和地之间并一个电容,上电不会烧mos管,但是输出电压为3V。 4  Vous+通过飞线链接到电源输出端 输出电压稳定 ...…

查看全部问答>

FPGA电源芯片的选择

FPGA电源芯片的选择:         FAPGA 电源芯片一般分为内核电源和IO电源。 怎样选择电源芯片的功耗大小这是一门学问。 电源芯片的大小跟所使用的逻辑门容量和速度都有关。速度越快,功耗需求越大。逻辑容量越大 ...…

查看全部问答>

HT1622的使用问题,望牛人告知!

硬件结构图 这是我的源代码: #include #include typedef unsigned char byte; typedef unsigned int byte2; typedef unsigned long byte4; typedef byte bool; #define TRUE 1 #define FALSE 0 sbit CS = P0^0; sbit WR_CLK = P0^1; sbit ...…

查看全部问答>

WINCE的内存没有被收回

我写了一个在WINCE(5.0)下运行MFC程序,里面我用new分配了一个空间,然后用delete 释放,可是内存并没有被收回(通过看控制面板里的系统属性,总共内存数和使用内存数)?  代码如下: vector vct5();         fo ...…

查看全部问答>

如何查看WINCE 主频?

我用的是YLP2440的开发板,通过CE\\windows\\cpucheck.exe查看FCLK=200M。我在BSP中看到的MPLLCON=0X5C011,计算出来的FCLK=400。请问该板子FCLK究竟是多少?如果需要更改的话,是不是改BSP中MPLLCON就可以了?…

查看全部问答>

STR712不能在RAM中调试吗?所给例程都是在Flash中调试的吗?

                                 如果用ST的ARM只能买J-link吗?…

查看全部问答>

毕业设计所需:请推荐串口接收数据能图像显示的软件

我的毕业设计是DS18B20温度传感 + nRF24L01无线数传 + 232串口发送给PC + 上位机显示但是,师兄的要求是要图表形式显示温度变化串口助手见得多了,找一个也不费事。但是好像就没见过能用图表显示的。最开始的打算是自己把当初上课学过的LABVIEW重新 ...…

查看全部问答>