ITOP4412裸机编程-串口驱动

前言:

       看过我文章的小伙伴有的可能会有疑问,为什么用汇编,用C语言不好吗?我在这里说明一下,因为后面可能要移植UBoot最新的程序,而UBoot的程序在最初的一段是用汇编写的,所以我们这里也用汇编写,后期移植UBoot就很方便了。烧录SD的脚本和第一章点亮LED灯的一样,这里不再贴出来了,而是直接用了。

原理分析:

       在STM32单片机里,在编写驱动前做的一件很重要的事情就是时钟树配置,这里串口驱动也是,要先配置时钟树才能配置串口,不然波特率无法计算。
时钟框架
       从上面图可以看出,配置时钟树要先配置DMC的时钟,之后在选择左右总线。
时钟分支
       从上面的图片可以看出,UART挂载在PERI-L时钟分支下面。
时钟树
       由上面图可以看出,先配置SCLKmpll时钟来源,经过锁相环电路,分频电路最终到达PERIL,而UART就挂载在这个时钟分支下面,有的小伙伴会问,那干嘛配置DMC,请看下图。
CMU_CORE
       内核的时钟树下面蓝色部分有个锁相环,这个锁相环决定了SCLKmpll时钟的来源,而前面还有一个MPLL配置电路,不属于该内核。而锁相环和DMC在一个时钟树中,所以后面需要配置这个锁相环在DMC相关的寄存器中。这里还有一个问题,就是FOUTmpll怎么会配置成的800Mhz,外部时钟来源是24Mhz的有源晶振。
MPS表
MPLL_CON0
       从上述图片可以看出来,MPLL_CON0寄存器可以配置FOUT的值,它的值决定于下面的FOUT公式,而这个公式和MPS的设置有关,而从上面MPS表可以查得,P=3,M=100,S=0时FOUT的值就是800了。
       OK!总结一下配置的流程:
先配置MPLL_CON0寄存器让FOUT的值为800,在配置CLK_SRC_DMC寄存器使锁相环选定FOUTmpll为时钟来源,再配置CLK_SRC_TOP1寄存器使MUXmpll_ctrl_user_T锁相环选定SCLKmpll为时钟来源,再配置CLK_SRC_PERIL0寄存器使时钟作用于想用的UART,再配置CLK_DIV_PERIL0寄存器使DIVACLK_100把MPLL的8分频后作用于对应的UART,时钟配置到这里就结束了。之后再设置UART的触发方式,数据格式,波特率等就简单了。这里不再叙述UART的配置方法,根据源码去三星的手册中查寄存器即可。

源码:

       新建文件夹及文件

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
itop4412上移植SSH,你可以按照以下步骤进行操作: 1. 首先,将SSH源代码拷贝到itop4412的开发环境中。你可以使用SCP命令将源代码从本地计算机复制到itop4412上的指定目录。例如,将源代码复制到itop4412的`/home/project/ssh-arm/openssh-4.6p1`目录下: ```shell scp /path/to/openssh-4.6p1.tar.gz root@itop4412:/home/project/ssh-arm/ ``` 2. 解压源代码文件。在itop4412上的开发环境中,使用以下命令解压源代码文件: ```shell tar -zxvf openssh-4.6p1.tar.gz ``` 3. 进入解压后的源代码目录: ```shell cd openssh-4.6p1 ``` 4. 配置编译选项。运行以下命令以配置SSH的编译选项: ```shell ./configure --host=arm-linux-gnueabihf --prefix=/usr/local/ssh ``` 这里的`--host`选项指定了目标平台为arm-linux-gnueabihf,`--prefix`选项指定了安装目录为`/usr/local/ssh`。 5. 编译源代码。运行以下命令以编译SSH源代码: ```shell make ``` 6. 安装SSH。运行以下命令以将编译后的SSH安装到指定目录: ```shell make install ``` 这将把SSH安装到`/usr/local/ssh`目录下。 7. 配置SSH服务器。在itop4412上的开发环境中,编辑SSH服务器的配置文件`/usr/local/ssh/etc/sshd_config`,根据你的需求进行配置。 8. 启动SSH服务器。运行以下命令以启动SSH服务器: ```shell /usr/local/ssh/sbin/sshd ``` 现在,你已经成功在itop4412上移植了SSH,并启动了SSH服务器。你可以使用SSH客户端连接到itop4412并进行远程操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值