历史上的今天
返回首页

历史上的今天

今天是:2024年10月30日(星期三)

正在发生

2019年10月30日 | 三星2440 ARM初始化

2019-10-30 来源:eefocus

一、利用三星已经写好的初始化文件


1。先见项目文件夹
2。建立项目保存在新建文件夹中
3。将ARM三星写好的INIT文件夹中的INC和SRC两个文件夹拖入新建文件夹中。
4。建立C文件,如LCD1602.c,编写void xmain()函数,或void xxxx()函数
5。添加SRC中的2440init到项目中来。
6。将2440init中的相应主函数入口修改为LCD1602.c中的函数xmain,这一点很重要,这样其他函数可通过添加头文件编写,否则没法执行。见下图 






二、编写自己的初始化
1。先建项目文件夹
2。再建立项目并保存在新建文件夹中(路径用英文)
3。建立 自己的初始化函数init.s。初始化文件一定要用汇编语言。至少需要下列代码(这个跟重要)
                    MPORT   name                    AREA    Init,CODE,READONLY
                    ENTRY  
                    bl  name
                    end
   注意:name一定要是主函数名,其他函数可以按照C文件的一般编写方法编写,如下列程序代码:
#include"2440addr.h"    //定义了各个特殊功能寄存器地址和名称,要使用必须调用该头文件
/*=== 如果不调用该头文件,必须把要使用的定义名称和地址语句在主程序前声明
#define rGPBCON    (*(volatile unsigned *)0x56000010)//Port B control
#define rGPBDAT    (*(volatile unsigned *)0x56000014)//Port B data
#define rGPBUP     (*(volatile unsigned *)0x56000018)//Pull-up control */    
/*  自定义简单延迟程序  */ 
int name(int times)
{
    int i;
    for(i=0;i    return 0;
}

/*  主程序  */
void xmain(void)     //主函数名称与主函数入口地址对应,在2440init.s中有定义
{                    //不能随意写成main,或者Main等,要查看在2440init.s文件(见下图)


        rGPBCON |=0x3fc00;  //GPB5-8  able output,先让11 1111 11xx xxxx xxxx
        rGPBCON &=0x157ff;  //  00-in 01-out          01   0101 01xx xxxx xxxx
                                         //                             P8   P6P7 P5P4 P3P2 P1P0
                                               //                        G    G G  G x       x x  x x
while(1)
    {

             rGPBDAT|=0x1e0;//GPB8 output 0           1  111x xxxx
             rGPBDAT&=0xeff;//                                 0  111x xxxx
             delay(5);//调用汇编语言编写的延时程序 

             rGPBDAT|=0x1e0;//GPB7 output 0           1  111x xxxx
             rGPBDAT&=0xf7f;//                                 1  011x xxxx
             delay(5);//调用汇编语言编写的延时程序 


             rGPBDAT|=0x1e0;//GPB6 output 0           1  111x xxxx
             rGPBDAT&=0xfbf;//                                 1  101x xxxx      
             delay(5);//调用汇编语言编写的延时程序 

             rGPBDAT|=0x1e0;//GPB5 output 0           1  111x xxxx
             rGPBDAT&=0xfdf;//                                 1  110x xxxx       
             delay(5);//调用汇编语言编写的延时程序 


    }
}

也可继续按照下列步骤再添加
4。用添加头文件的方式把自己需要的子函数以头文件.h的方式编写,需要几个编写几个
5。编写自己的主函数,主义主函数的名称要用初始化函数中的名称。
6。将以上文件添加到项目中来。 

推荐阅读

史海拾趣

Advance Tapes公司的发展小趣事

Advance Tapes公司创立于1963年,当时电子工业正处于起步阶段,胶带作为电子元器件生产中的重要辅助材料,市场需求日益增长。然而,初创的Advance Tapes面临着资金短缺、技术落后和市场竞争激烈等挑战。公司创始人凭借对电子行业的敏锐洞察力和对胶带技术的深入研究,带领团队不断研发新产品,提高产品质量,逐渐在市场中站稳脚跟。

Analog Microwave Design公司的发展小趣事

Analog Microwave Design公司一直注重企业文化的建设和传承。公司倡导创新、务实、合作的企业精神,鼓励员工敢于挑战、勇于创新。同时,公司还注重员工的培训和发展,为员工提供了良好的职业晋升通道和学习机会。这种积极向上的企业文化不仅激发了员工的工作热情和创新精神,还为公司的长期发展提供了有力保障。

以上五个故事分别从初创时期的挑战与机遇、技术创新的突破、国际化战略的实施、产品线的丰富与完善以及企业文化的建设与传承等方面,展现了Analog Microwave Design公司在电子行业发展的历程和成就。这些故事不仅反映了公司的成长轨迹,也体现了公司在面对市场变化和技术挑战时所采取的积极态度和应对策略。

FSP [FSP TECHNOLOGY INC.]公司的发展小趣事

Analog Microwave Design公司成立于XXXX年,当时正值微波技术快速发展的时期。公司创始人凭借对微波技术的深厚理解,看到了微波技术在通信、雷达和卫星等领域的巨大潜力。然而,初创时期的资金短缺和技术难题让公司的发展步履维艰。为了克服这些困难,创始人带领团队夜以继日地研发,并通过与高校和研究机构的合作,获得了技术支持和资金支持。经过一番努力,公司终于成功开发出了首款高性能微波器件,为公司的后续发展奠定了坚实的基础。

屹晶微(EG)公司的发展小趣事

随着业务的不断拓展和市场的不断扩大,屹晶微逐渐意识到与合作伙伴建立长期战略合作关系的重要性。于是,在2023年,他们与电子产业一站式服务平台华秋电子达成了授权代理合作。这一合作不仅为屹晶微提供了更广阔的市场渠道和客户资源,也为其未来的发展奠定了坚实的基础。

在合作过程中,华秋电子为屹晶微提供了全方位的支持和服务。他们共同推广屹晶微的芯片产品,为客户提供更优质的解决方案和服务。同时,华秋电子还利用自身的技术优势和渠道优势,帮助屹晶微拓展海外市场,提升品牌知名度和影响力。

以上两个故事只是屹晶微在电子行业中发展起来的一部分。他们的发展历程充满了挑战和机遇,但黄米龙和他的团队始终保持着坚定的信念和不懈的努力,为中国的芯片产业做出了积极的贡献。

上海晶丰明源(BPS)公司的发展小趣事

近年来,晶丰明源在电源管理芯片领域取得了多项技术突破。公司成功研发出多款高性能、低功耗的芯片产品,广泛应用于智能手机、平板电脑、智能家居等领域。同时,公司还积极拓展海外市场,与多家国际知名厂商建立了合作关系,产品出口至全球多个国家和地区。这些技术突破和市场拓展的成果,进一步巩固了晶丰明源在行业内的领先地位。

Amphenol Aerospace公司的发展小趣事

近年来,电子行业面临着诸多挑战,如市场竞争加剧、技术更新换代迅速等。然而,晶丰明源凭借强大的研发实力和敏锐的市场洞察力,成功应对了这些挑战。公司不仅加大了研发投入,加强了与高校、科研机构的合作,还积极引进和培养人才,为公司的发展注入了新的活力。同时,公司还注重产品创新和品牌建设,不断提升产品的附加值和竞争力。

问答坊 | AI 解惑

简易数控直流电源

简易数控直流电源  94年的题, 谁会做啊, 我想了解以下他的原理几过程. 我的邮箱,cf2928@163.com 要不谁告诉我那有我去下也行,谢了.…

查看全部问答>

【分享】mini2440开发板实现国际象棋人机对弈

前段时间买了2440开发板也没怎么搞,惭愧:$ 最近没啥其它事情就好好啃啃吧,哎……没什么基础啊,先欣赏下别人的东西吧 【mini2440开发板实现国际象棋人机对弈 】 我在机子上跑了一下,好像不太能跟电脑对弈啊,不知道哪个地方还有问题 ...…

查看全部问答>

传输线和反射的经典文章

传输线和反射的经典文章…

查看全部问答>

U盘多盘符的问题

我在一个嵌入式系统中,主机在GET MAX LUN我已经返回01,但是主机并未显示2个盘符.仅仅出现了一个盘符 还需要做哪方面的工作…

查看全部问答>

VC如何发彩信,已经实现ATDT*99***1#这一步了,下一步应该是什么,内容打包?如果打包?

VC如何发彩信,已经实现ATDT*99***1#这一步了,下一步应该是什么,内容打包?如果打包? ATE AT+CMGF=0 AT+CIMI   AT+CIMI获得IMSI  IMSI 国际移动用户识别码(IMSI) international mobile subscriber identity 国际上为唯一识别 ...…

查看全部问答>

DM642 编码器初始化

 /*进行SAA7121H的初始化*/ GPIO_RSET(GPVAL,0x0); addrI2C = 0xB8 >>1; /*选择第0路的I2C的地址*/ /*将第0路的视频输入口的数据口设为高阻状态,   使能SCLK,将第27脚设为输入*/ _IIC_write(hSeeddm642i2 ...…

查看全部问答>

2812 flash不能烧写

问题是这样的:我用flash烧写了一个控制电机的程序,不能运行,就把代码改了一下,再进行烧程序的时候就烧不进去啦,我也没有动“lock”和密码(在flash烧写的时候一直很小心的),怎么会锁住呢?很是不解。请EEWORLD老师和各位高手解答一下,谢谢 ...…

查看全部问答>

C题智能小车群

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 109197413  …

查看全部问答>

恳请各位高手指点迷津,替小弟检查一下错误

各位高手,小弟近日在学习关于修改BSP的内容,有一种想法,设置多个引导行,然后在系统启动时按照需要选择相应的引导顺序,然后将config.h中的引导行 #define DEFAULT_BOOT_LINE \\ \"fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=ta ...…

查看全部问答>

.一个初中生是如何成为嵌入式工程师的

我是一个只有初中毕业没有读过多少书的人从小就爱好无线电记得很小的时候当通讯兵的父亲带回来几本电子方面的书籍从此就迷上了无线电那种痴迷程度决不亚于现在的小孩迷恋游戏机至今仍然清楚的记得曾经因为装成功一台6管收音机而兴奋的几天几夜没睡 ...…

查看全部问答>