复旦微 zynq amp cpu0 唤醒启动cpu1

1 配置多核amp工程,参考上一篇文章

https://blog.csdn.net/yangchenglin927/article/details/136057534

2 在cpu0的main函数中增加唤醒代码 active_cpu1();

/*
 * helloworld.c: simple test application
 *
 * This application configures UART 16550 to baud rate 9600.
 * PS7 UART (JFM_QL_PS) is not initialized by this application, since
 * bootrom/bsp configures it to baud rate 115200
 *
 * ------------------------------------------------
 * | UART TYPE   BAUD RATE                        |
 * ------------------------------------------------
 *   uartns550   9600
 *   uartlite    Configurable only in HW design
 *   ps7_uart    115200 (configured by bsp)
 */

#include <stdio.h>
#include "platform.h"
#include "fmsh_common.h"
#include "ps_init.h"
#include "fmsh_print.h"
#include "fmsh_ps_parameters.h"


void active_cpu1()
{
  FMSH_WriteReg(FPS_SLCR_BASEADDR,0x008,0xDF0D767BU);//unlock
  *(u32*)(0xE0026440)=0x2000000;//写入cpu1 的代码入口地址
  asm("sev");//通过指令唤醒cpu1
  FMSH_WriteReg(FPS_SLCR_BASEADDR,0x004,0xDF0D767BU);//lock
}
void active_cpu2()
{
  FMSH_WriteReg(FPS_SLCR_BASEADDR,0x008,0xDF0D767BU);//unlock
  *(u32*)(0xE0026448)=0x3000000;//写入cpu2 的代码入口地址
  asm("sev");//通过指令唤醒cpu2
  FMSH_WriteReg(FPS_SLCR_BASEADDR,0x004,0xDF0D767BU);//lock
}
void active_cpu3()
{
  FMSH_WriteReg(FPS_SLCR_BASEADDR,0x008,0xDF0D767BU);//unlock
  *(u32*)(0xE0026450)=0x4000000;//写入cpu3 的代码入口地址
  asm("sev");//通过指令唤醒cpu3
  FMSH_WriteReg(FPS_SLCR_BASEADDR,0x004,0xDF0D767BU);//lock
}
int main()
{
    init_platform();

    //while(1){
      fmsh_print("Hello World00000\n\r");
      delay_ms(500);
      fmsh_print("Hello World00001\n\r");
      delay_ms(500);
      fmsh_print("Hello World00000\n\r");
      delay_ms(500);
      fmsh_print("Hello World00000\n\r");
      delay_ms(500);
      
    //}
    active_cpu1();
    
    delay_ms(3000);
    
    active_cpu2();

    return 0;
}

3 打包 boot.bin,几个注意事项见下图。

需要被唤醒的 cpu cpu1需要用 bin 文件,手动指定 代码加载地址和代码入口地址,见下图:

设置生成bin文件:

这里注意选择apu 0,这样cpu1就不会主动唤醒了,而是等待被cpu0唤醒。

Startup地址:

代码load地址就是 icf 文件中分配的代码起始地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/375760.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

momentJs推导日历组件

实现效果: 代码&#xff1a; 引入momentjs然后封装两个函数构建出基本数据结构 import moment from moment;// 某月有多少天 export const getEndDay (m) > m.daysInMonth();/*** description 获取本月空值数据* param { Date } year { } 年度* param { Number } month …

【JS逆向六】(上)逆向模拟生成某网站的【sig】和【payload】的值 仅供学习

逆向日期&#xff1a;2024.02.07 使用工具&#xff1a;Node.js 加密方法&#xff1a;未知 / md5标准库 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 可使用AES进行解密处理&#xff08; 直接解密即可&#xff09;&#xff1a;在线AES加解…

shell脚本基础语法(.sh ./ sh bash source shell)

Linux 之 Shell 脚本基础语法 0. 学习一门语言的顺序 1. Shell 编程概述 1.1 Shell 名词解释 在 Linux 操作系统中&#xff0c;Shell 是一个命令行解释器&#xff0c;它为用户提供了一个与操作系统内核交互的界面。用户可以通过 Shell 输入命令&#xff0c;然后 Shell 将这些…

【Web - 框架 - Vue】随笔 - 通过`CDN`的方式使用`VUE 2.0`和`Element UI`

通过CDN的方式使用VUE 2.0和Element UI VUE 网址 https://cdn.bootcdn.net/ajax/libs/vue/2.7.16/vue.js源码 https://download.csdn.net/download/HIGK_365/88815507测试 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset&quo…

echarts 一条折线图上显示不同颜色

文档树懒学堂&#xff1a;ECharts visualMap 代码实例及对应注释 - 树懒学堂 封装的echarts 组件代码&#xff1a; <template> <div :style"{ height: 100% }"> <div class"foldLine" ref"foldLine" :style"{ width: width…

【数据结构】链表OJ面试题3(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 记录每天的刷题&#xff0c;继续坚持&#xff01; 2.OJ题目训练 9. 给定一个链表&#xff0c;判断链表中是否有环。 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成…

工业以太网交换机引领现代工厂自动化新潮流

随着科技的飞速发展&#xff0c;现代工厂正迎来一场前所未有的自动化变革&#xff0c;而工业以太网交换机的崭新角色正是这场变革的关键组成部分。本文将深入探讨工业以太网交换机与现代工厂自动化的紧密集成&#xff0c;探讨这一集成如何推动工业生产的智能化、效率提升以及未…

UDP端口探活的那些细节

一 背景 商业客户反馈用categraf的net_response插件配置了udp探测, 遇到报错了&#xff0c;如图 udp是无连接的&#xff0c;无法用建立连接的形式判断端口。 插件最初的设计是需要配置udp的发送字符&#xff0c;并且配置期望返回的字符串&#xff0c; [[instances]] targets…

VSCode无法启动:Waiting for server log...

问题基本情况 [13:30:20.720] > code 1.86.0 (commit 05047486b6df5eb8d44b2ecd70ea3bdf775fd937) [13:30:20.724] > Running ssh connection command... /var/fpwork/reiss/vscdata/server/cplane/.vscode-server/code-05047486b6df5eb8d44b2ecd70ea3bdf775fd937 comman…

【RT-DETR有效改进】轻量级下采样方法ContextGuided(参数量下降700W,轻量又涨点)

&#x1f451;欢迎大家订阅本专栏&#xff0c;一起学习RT-DETR&#x1f451; 一、本文介绍 本文给大家带来的是改进机制是一种替换Conv的模块Context Guided Block (CG block) &#xff0c;其是在CGNet论文中提出的一种模块&#xff0c;其基本原理是模拟人类视觉系统依赖上…

centos 7.6 安装cas 对接ldap 单点登录实战

centos 7.6 安装cas 对ldap 单点登录实战 1、安装前准备工作1.1、centos 7.6 安装JDK 1.81.2、centos 7 安装tomcat 9.0.841.3、windows10 安装JDK 1.81.4、windows10 安装打包工具 maven 3.9.6 2、下载cas 5.3 并打包成war包3、部署cas到tomcat4、cas对接ldap 1、安装前准备工…

SQL注入讲解-BeesCMS系统漏洞分析溯源

判断网页框架 渗透思路 以前的思路 1.首先识别一下指纹 根据指纹查找历史漏洞(同样适用现在) 2.查找目录(目录里面会有很多惊喜) 通过御剑后台扫描工具找到文件夹后在网页打开文件夹进行测试 通过百度搜索查看历史漏洞 查看源代码发现它对账号和密码只有二个加密 我们通过bu…

LeetCode:26.删除有序数组中的重复项

26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 目录 题目&#xff1a; 思路&#xff1a; 代码注释&#xff1a; 每日表情包&#xff1a; 题目&#xff1a; 思路&#xff1a; 没啥特殊的&#xff0c;老老实实双指针遍历数组&#xff0c;&#xff0…

谷歌seo搜索引擎优化教程有吗?

教程&#xff0c;教学&#xff0c;指南&#xff0c;这些东西哪里都有&#xff0c;尤其是关于seo相关方面的&#xff0c;这些可以说到处都是&#xff0c;能把谷歌seo这个关键词做上去的&#xff0c;可以说就是实力的证明了&#xff0c;在这里我们说一个无论是老手还是新手都应该…

archlinux 使用 electron-ssr 代理 socks5

提前下载好 pacman 包 https://github.com/shadowsocksrr/electron-ssr/releases/download/v0.2.7/electron-ssr-0.2.7.pacman 首先要有 yay 和 aur 源&#xff0c;这个可以参考我之前的博客 虚拟机内使用 archinstall 安装 arch linux 2024.01.01 安装依赖 yay 安装的&#…

Linux下centos操作系统安装Mysql8.0过程及踩坑填补

我自己有一台服务器&#xff0c;之前安装的是MySQL5.5&#xff0c;现在我想升级为MySQL8.0&#xff0c;于是我干了以下操作,既有踩坑又有干货&#xff1a; 1.先卸载MySQL&#xff1b; 2.删除跟MySQL相关文件&#xff1b; 3.安装新的MySQL8.0版本&#xff08;这里踩了一个坑&…

破除Github API接口的访问次数限制

破除Github API接口的访问次数限制 1、Github介绍2、Github API接口2.1 介绍2.2 使用方法 3、Github API访问限制3.1 访问限制原因3.2 访问限制类别 4、Github API访问限制破除4.1 限制破除原理4.2 限制破除示例 1、Github介绍 Github&#xff0c;是一个面向开源及私有软件项目…

VS2017+Qt中文无法编译通过newline in constant解决办法

首先说我的解决办法 Tools->Extensions and Updates… 安装ForceUTF8(with BOM) 注意Force这个插件有好几个版本&#xff0c;一定要withBOM&#xff01;&#xff01;&#xff01;我之前安装的没有BOM导致改了各种设置还是一直编译不过&#xff0c;差点没气死我 另外代码里…

Mac电脑删除第三方软件的最简单方法(2024最新教程)

Mac用户经常会下载各种第三方软件来提高工作效率或娱乐体验。然而&#xff0c;随着时间的推移&#xff0c;一些软件可能不再需要&#xff0c;或者用户可能想要清理空间。在这种情况下&#xff0c;有效地删除这些第三方软件变得尤为重要。本文将介绍几种常规的Mac删除第三方软件…

react+antd+CheckableTag实现Tag标签单选或多选功能

1、效果如下图 实现tag标签单选或多选功能 2、环境准备 1、react18 2、antd 4 3、功能实现 原理: 封装一个受控组件&#xff0c;接受父组件的参数&#xff0c;数据发现变化后&#xff0c;回传给父组件 1、首先&#xff0c;引入CheckableTag组件和useEffect, useMemo, use…