历史上的今天
返回首页

历史上的今天

今天是:2024年08月25日(星期日)

正在发生

2021年08月25日 | lpc1788移植u-boot-2010.03之spi flash移植

2021-08-25 来源:eefocus

开发环境:
MCU:       NXP  LPC1788
u-boot:     u-boot-2010.03
SPI Flash: AT45DB321D

由于ATMEL的spi flash在u-boot中已经实现,我们就不要去写AT45DB321D的驱动了,现在考虑SPI总线的问题(u-boot中的spi驱动在driver/spi目录中),在driver/spi目录中可以看到各种芯片的spi总线实现,不过lpc1788是没有的,别动别动看到了一个soft_spi.c,好了现在spi总线的驱动也不用写了,直接用soft spi。

在lpc1788的配置文件中加入以下内容:

#define CONFIG_CMD_SF //加入cmd_sf.c文件的编译,实现u-boot中spi flash的操作命令sf

#define CONFIG_SOFT_SPI //加入driver/spi/soft_spi.c文件编译,实现软件spi总线

#define CONFIG_SPI_FLASH //加入driver/mtd/spi/spi_flash.c文件编译

#define CONFIG_SPI_FLASH_ATMEL //加入driver/mtd/spi/atmel.c文件编译,实现AT45的驱动


#define CONFIG_SF_DEFAULT_MODE SPI_MODE_1

#define SPI_SCL spi_scl

#define SPI_SDA spi_sda

#define SPI_READ spi_read()

void spi_scl(int);

void spi_sda(int);

unsigned char spi_read(void);

#define SPI_DELAY udelay(2)


在board/nxp/lpc1788/board.c文件中加入以下内容: 


void spi_scl(int bit)

{

struct lpc178x_gpio_dsc dsc;

dsc.port = 2;

dsc.pin = 22;

lpc178x_gpout_set(&dsc, bit);

}


void spi_sda(int bit)

{

struct lpc178x_gpio_dsc dsc;

dsc.port = 2;

dsc.pin = 27;

lpc178x_gpout_set(&dsc, bit);

}


unsigned char spi_read(void)

{

struct lpc178x_gpio_dsc dsc;

dsc.port = 2;

dsc.pin = 26;

return (unsigned char)lpc178x_gpin_get(&dsc);

}

int spi_cs_is_valid(unsigned int bus, unsigned int cs)

{

return bus == 0 && cs == 0;

u-boot中spi flash的操作命令:
1、选择spi flash
    sf probe 0
2、擦除命令
   sf erase 0 0x210      //注意擦除长度一定是0x210的整数倍
3、读命令
    sf read addr  offset  len
4、写命令
    sf write addr offset len

推荐阅读

史海拾趣

Digi International公司的发展小趣事

为了庆祝公司成立30周年,Digi International推出了全新的品牌标识。这一品牌升级不仅展现了公司的创新精神和市场地位,也为其未来的发展注入了新的活力。同时,品牌升级也反映了公司对市场趋势的敏锐洞察和对客户需求的深入理解。

ACI [Applied Concepts, Inc.]公司的发展小趣事

为了进一步提升市场影响力,ACI公司积极寻求与其他行业领导者的战略合作。通过与知名电子产品制造商、芯片供应商等建立紧密的合作关系,ACI得以获取更优质的资源和技术支持。这些合作不仅提升了ACI的产品质量和技术水平,还扩大了公司的市场影响力,为公司的长远发展奠定了坚实基础。

Aeroflex公司的发展小趣事

为了进一步提升市场影响力,ACI公司积极寻求与其他行业领导者的战略合作。通过与知名电子产品制造商、芯片供应商等建立紧密的合作关系,ACI得以获取更优质的资源和技术支持。这些合作不仅提升了ACI的产品质量和技术水平,还扩大了公司的市场影响力,为公司的长远发展奠定了坚实基础。

Codeco Corporation Of Vermont公司的发展小趣事

随着电子行业的快速发展和变革,Codeco面临着新的挑战和机遇。为了应对这些变革,公司及时调整战略,加大在人工智能、物联网等领域的投入。通过与高校、研究机构的合作,Codeco不断吸收新的技术和理念,推出了一系列符合市场需求的创新产品。这些举措使得Codeco在行业中保持了领先地位。

苏州锋驰(Feng)公司的发展小趣事
如发现元件损坏(如二极管、电阻、开关管等),应及时更换相同规格的元件。
Fortiming Corporation公司的发展小趣事

背景:随着公司规模的扩大和产品线的丰富,Fortiming开始寻求更广阔的市场空间。

发展:公司积极参加国内外电子展会,展示其最新技术和产品,吸引了众多客户的关注。同时,Fortiming还与国际知名电子企业建立了合作关系,共同开发新产品,开拓新市场。这些合作不仅提升了Fortiming的品牌影响力,还为公司带来了更多的商业机会。

问答坊 | AI 解惑

简化的6通道串行通讯板怎么设计?

以下设计题中,主CPU芯片均采用ATMega128L-8AU,供电电源为12V DC。 1. ATMega128L的工作电源为2.7V~5.5V DC,因此需要为CPU设计一个合适的电源系统,请使用LM2576-ADJ设计一个三端稳压电路,输出5V DC/3A供整个设计使用,需要设计电源指示灯 ...…

查看全部问答>

乔布斯你凭什么这么牛?

最近IT业的人没有不知道iPhone 4的信号门,为此展开的口水战也屡见于各大媒体。“信号门”本不是什么好事,对于其他公司甚至可能是灭顶之灾,但苹果有个乔布斯,信号门不仅乔布斯出尽风头,出现在各大媒体头版头条,iPhone 4手机的销售也好像丝毫没 ...…

查看全部问答>

MTK6225 手机开发板(含源代码)

MTK6225 手机开发板(含源代码) 有诚意者请联系 Qq:296662705 硬件特性: 1、 CPU:mtk6225 2、 TFLASH 卡接口 3、 176X220 2.6寸TFT LCD,最高支持320*240*16的TFT LCD 4、 4线触摸屏接口 5、 双声道音频输出 6、 一个Camera 130万像素 ...…

查看全部问答>

嵌入式设备里,添加java游戏,如何支持Java?

因为手头的开发板是mips32+linux,嵌入式设备里,想添加java游戏,应该移植哪种JVM比较好,比较快,比较容易?据说kaffe是一个不错的JVM,有没有移植过的朋友,可以参考指点的,谢谢!…

查看全部问答>

问问linux、嵌入式行业的开发人员

总说linux开发或者linux下的嵌入式开发,尽管在网上能搜罗到不少相关的信息,但总归没有一个清晰的概念和界定。 究竟在实际工作中是哪些东西的开发?分为哪几种?需要什么知识? 注:小弟我现在做java,由于对底层的偏爱,想转底层开发,学习 ...…

查看全部问答>

有北京的朋友和我一起买扬创s3c2440的板子吗 ?

有北京的朋友和我一起买扬创s3c2440的板子吗 http://www.yctek.com/shop/view_47.html 团够就可以便宜的。有意思的朋友可以留言。我看了。比这个价格还要便宜好几百呢。人越多他们说越便宜。…

查看全部问答>

3.3V转5V,大家在实践中都用什么芯片

3.3V转5V,大家在实践中都用什么芯片?…

查看全部问答>

Xilinx FPGA & MATLAB SYSTEM GENERATOR FIR COMPILOR 调通了

基于MATLAB SYSTEM GENERATOR 的FIR滤波器终于调通了,模型如下: 参数如下:   输出波形如下图所示: 上图中,第一个波形是待滤波的波形,第二个是FIR数字滤波器的输出波形,第三个是MATLAB自带的滤波器。   然而,上述结果 ...…

查看全部问答>

IAR中跑的好好的,换到MDK中就会莫名其妙的进Fault中断,请各位帮忙看看!

下面的程序在IAR中用的好好的,但是自己有点吹毛求疵了,还是习惯用MDK,所以就转到MDK下用,程序什么的都不变,只是把对应的driverlab.a文件换成了对应的driverlib.lib文件,build没有问题,下载进去也没问题,前面的串口输出也没问题,但程序一跑 ...…

查看全部问答>

任务栈空间检测机制(rtos使用者必看)

目前绝大部分的rtos都是没有基于mmu或者mpu来运行的,也就是说没有内存保护机制。在没有内存保护机制的前提下,最揪人心的莫过于任务栈空间的溢出了,任务栈空间的溢出随时就像一颗定时炸弹等着引爆,使用者浑身不自在。有没有100%的任务栈空间溢出 ...…

查看全部问答>