linux arm核,Zynq 7015 linux跑起来之构建ARM核

描述

首先,这里跑linux主要是PS部分的,这里暂时不用PL部分。

63a519d0a4cbf0d2fcd62227f698bbad.png

打开vivado新建一个project.

0b0d946d26a0a216c5e5dc6399a5eec2.png

项目名和保存路径

76c141bfd150082ab4321de66730535b.png

RTL project

610f9724e60e3eaec29d5219126db818.png

next

0785ebcb7bb26a957d96314c9ff19eed.png

next

38efba82756cb3111e8c687431cff68f.png

fa72fee8fbdf5a5312fe3ef14d03bad7.png

next

6ab557b71fa0999c3c76aad7b0bee021.png

选Board,如果选器件,是一样的,只是需要去根据实际情况设置一些东西。

f21aa39b9eec2e406ddb8f8fa0ee655a.png

然后Next

d7fd12362b3ccf0d546fa13a3348f5b3.png

完成。

Create Block Design 这里我们需要构建PS核

5fad52c3b5940844aede30f91d6f2625.png

所以我把Design name改成ARM_CORE,当然,是根据实际情况来,你想怎么命令都是可以的。然后在右则点添加IP,然后选zynq 7000如下图所示。

ae7e86815a0da4324444b8bc7158424e.png

点Run Block Auto...会自动根据所选的板子,自动配置

21aaa85ad59ca533a410c8009f43fbe9.png

OK

1f5a508e63c0c1fcc904d62ceb4fb1e4.png

然后双击进去,进行配置,最好能和自己的板子实际情况对应起来,这里对PL部分都不做配置,配置完后保存。

0d41bbd3745abefcc2e9b0ed2a15b1f8.png

505a73eeb0f95634a2007bb7bd02ede9.png

这是配好后的,这样看起来线比较难看,不要慌,右键选regenerate layout

7545dfbe21e8311a3ed515f503d9190d.png

然后在ARM_CORM上右键Generate Output Products

6fe2987f80f19e8276c274ec84eb5ca4.png

Generate

3a781f07b9482b202d8fe5d28b925c00.png

然后在ARM_CORM上右键Create HDL wraper,然后全部保存,因为这个软件是流程式作业,会从头执行到尾,所以我这里设置好bit stream相关的设置

cef768b5d21ce3d7abb157ab93c5a8a5.png

然后点Generate bitstream lic不出问题,正常等待一会儿就会OK.

b52950f7d86b7ee166aa294310f47e31.png

380a11d8810931ddb0dc08b2d116fc0e.png

以上是我没有保存才有的提示,如果都保存了,就不会提示了。

439e6567a5f79982e4b931cf5e45a5dc.png

至此,文件都已生成,我们不做其他操作,直接选view Reports就OK了。下一节介绍如何导入到SDK然后新建一个应用工程,生成FSBL.

打开APP阅读更多精彩内容

点击阅读全文

### 如何在Zynq平台上实现或配置软件串口 #### 1. Zynq平台简介 Zynq平台结合了PS(Processing System)和PL(Programmable Logic)的异构架构,适用于高效实现各种复杂功能,包括但不限于神经网络处理。这种组合使得在同一平台上能够灵活地分配计算资源,从而优化性能[^2]。 #### 2. 软件串口的概念及其重要性 对于嵌入式系统而言,串行通信接口是非常重要的外设之一。它允许微控制器与其他设备之间交换数据。然而,在某些情况下,可能无法直接利用现有的硬件UART单元来完成特定的任务需求;这时就需要借助于FPGA内部逻辑构建所谓的“软”UART模块——即通过编程手段模拟出标准RS-232协议的行为模式[^1]。 #### 3. 实现过程详解 为了实现在Zynq上创建并使用自定义的软件串口: - **初始化阶段** - 使用Vivado工具链建立一个新的工程,并导入目标板级支持包(BSP)。 - 定义顶层实体(Top Entity),其中应包含必要的输入/输出端口用于连接至外部世界以及与ARM Cortex-A9处理器交互所需信号线。 - **编写Verilog/VHDL代码描述UART行为** - 设计状态机以管理发送接收流程。 - 处理波特率设置及时钟分频机制确保正确同步位周期长度。 - 编写测试激励程验证基本读写操作无误后生成对应的.bit文件准备烧录到开发板中去。 ```verilog module uart_rx #(parameter CLK_FREQ=50_000_000, parameter BAUD_RATE=115200)( input wire clk, input wire rst_n, input wire rx, output reg [7:0] data_out, output reg valid ); // ...省略具体实现... endmodule : uart_rx ``` - **加载固件映像** - 将编译好的二进制镜像上传给目标机器上的Flash芯片或者其他持久化储存装置里边保存起来以便后续调用。 - 当然也可以采用动态加载的方式即时传送到RAM里面执行不过这种方式相对麻烦些因为涉及到额外的安全性和稳定性考量因素在里面[^3]。 - **驱动层适配工作** - 修改Linux源码或者裸跑应用程添加对新加入进来这个虚拟COM port的支持能力。 - 如果是在RTOS环境下则需按照相应API文档指示调整任务调度策略使之能顺利访问该外围电路组件。 综上所述,虽然整个过程中涉及到了多个环节但是只要遵循上述指导方针应该不难达成预期目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值