stm32cube f429 sdram 配置

在 cube 中配置时可选 sdram1 和 sdram2,这两个对应的是内部映射的存储区域 sdram1 和 sdram2。如果选择 sdram2,那么访问 0xD000 0000 - 0xDFFF FFFF 之间的地址时,芯片就会使用 sdram2 的控制器。 sdram2 的控制器还可以...

stm32cubeide iap

使用 stm32cubeide 实现 uart 基础上的 iap 功能。

使用软件模拟spi 时序时注意点

软件模拟 spi 时序有以下几个点需要注意: cs 使能后到第一个 sck 边沿需要延时。 最后一个sck 边沿到下一个 cs 需要延时。 sck 的高电平和低电平本身需要维持时间。 mosi 需要先把数据放上去,然后启动上升沿,然后延时 sck 高电平的时间。 在延时了 sck 高电平的时...

uboot 学习笔记

使用 patch 命令打补丁, -p1 标识忽略第一级目录。 在串口上使用 q 命令,推出菜单界面,然后 print 可以打印出环境变量。想要返回菜单,只要输入 menu 即可。输入 ? 打印出可选命令。输入多条命令,可以使用分号隔开。输入 help 是各个命令的 usage 短帮助信息,输入...

stm32f4 dma + uart idle + double 调试小记

使用 stm32f4 调试uart 接收, 使用 空闲中断,dma 双缓冲模式,有以下几点需要注意的。 调试的时候断点不要打在 if (USART_GetITStatus(USART6, USART_IT_IDLE) != RESET) 这种语句上面,要打在 if 的代码块里面。mdk ...

arm 裸机学习笔记

位置无关码 bl 是位置无关码,指令中带的数值是,编译的时候,编译器计算好的,需要跳转的位置减去 bl 指令所在位置的结果。这样当程序最开始在 4k sram 中运行的时候,跳转的位置是在 0 + offset 的位置,当后期sdram 初始化好了之后,程序移动到 sdram 中运行的时候,跳...

mini2440 裸机程序,下载到nand 里面,复制到 sdram 中不运行

按照韦东山的视频中 sdram的裸机代码,写了一份,通过 minitools 下载到 0x30000000,然后烧录到 nand中,接过不能正常运行。 尝试过多种方法后,只有一种解决方法,就是不要用 0x30000000这个地址。 可以把 makefile 中的地址改为0x30008000,m...

mini2440 裸机程序下载到 sdram 不能运行。

今天在 写了个简单的 led 的汇编程序,下载到 mini2440 的 nand flash 里面可以正常运行,但是下载到 sdram 里面不能运行。 后来发现有几个注意点, 要在 sdram 中运行,链接脚本的地址不能像 nand 里面一样是0,必须是 sdram 里面的地址,比如说 0x...

iar stm32 启动代码片段分析

今天查看了 iar 上面的启动文件,好奇堆栈指针到底是什么时候赋值的,所以就仔细的阅读了代码和相关手册,找到了答案。

I2C 读取总是 0xFF,但是 ACK 是正常的解决方法

I2C 因为时序处理不正确,导致读取结果不对。