目录

前言

1.BSP工程说明

第一步:创建BSP工程,选择硬件平台、cpu核和支持的OS

第二步:BSP工程设置

(1)版本+库文件选择

(2)standalone配置

(3)drivers支持

(4)编译选项

2.sdk_repo的作用

(1)STDOUT_REDIR 宏定义

(2)boot.S

(2.1)CPU1内存分配(必须)

(2.2)启动地址重映射:_boot(非必须)

(2.3)AMP模式禁用L2 cache(必须)

(3)asm_vectors.S(非必须)

(4)xtime_l.c修改(必须)

3.总结归纳

4.附录




前言

前面一篇文章基本上讲解了Zynq的AMP模式的开发流程,需要结合Vivado、SDK和Petalinux三个软件。在开发过程中还需要注意一些问题:sdk_repo的使用、设备树的定义、uboot启动参数、内核映像文件类型等等,这里首先说明sdk_repo的使用问题。


首先,在SDK中开发用户应用程序时,需要有2个工程文件:用户应用程序工程+BSP工程。

其中,BSP工程为应用程序工程提供板级支持,BSP工程中封装了板卡所有底层硬件的原理描述和函数操作,用户不需要详细了解板卡底层的设计原理,只需要直接使用BSP提供的API接口函数即可对硬件进行相应操作。

版本说明:

本人安装的开发软件均是2017.4版本,软件自带的sdk源码版本为:standalone_v6_5;

官方资料xapp1078_2014.04下载中,提供的sdk_repo源码版本为:standalone_v4_299;



1.BSP工程说明

注意:这里并没有将BSP配置成AMP模式,只是简单介绍BSP工程的创建流程。


第一步:创建BSP工程,选择硬件平台、cpu核和支持的OS

第二步:BSP工程设置

(1)版本+库文件选择

在安装SDK软件时,standalone文件自动包含在安装包中,默认的版本已确定,除非使用用户的standalone。

库文件可以根据用户需要自行选择,如openamp库。

(2)standalone配置

主要是需要配置系统所使用的输入输出接口:一般选择uart0或uart1。

zynq_fsbl_bsp:当创建fsbl工程时的bsp工程师,才会选择有效。

(3)drivers支持

以下显示是bsp提供的驱动支持,用于应用程序对底层硬件的访问和操作。

(4)编译选项

程序从创建到生产可执行文件需要历经:预处理、编译、汇编、连接。

archiver:linux系统下交叉编译工具中的库管理器。

compiler:linux系统下交叉编译工具中的集成编译工具。

compiler flag:gcc编译标志

extra compiler flag:gcc附加编译标志

归纳:由创建到生成BSP工程的过程中,用户需要根据自己的使用要求进行合理修改,前提是需要理解配置选项的具体作用。


2.sdk_repo的作用

在基于官方文档:《xapp1078-amp-linux-bare-metal.pdf》进行AMP模式开发中,必须要使用到官方提供的sdk_repo文件。针对AMP模式,sdk_repo中对一些启动文件进行了必要的修改,下面进行详细说明:

修改设计内容:(参考1078官方资料下的《Vivado instructions.txt》)

standalone BSP.Note: The standalone v4.2 BSP was modified as follows: - armcc/_sys_write.c, gcc/write.c, printc, xil_printf.c: These changes add a new define 'STDOUT_REDIR'that prevents the removal of calls to outbyte() if STDOUT_BASEADDRESS is not defined- armcc/boot.S, gcc/boot.S: These changes remove remapping of virtual address 0x20000000 to physicaladdress 0x00000000, configures address 0x00000000-0x2fffffff to be unavailable, and disables sharingand L2 cache on address 0x30000000-0x3fffffff. The startup code was also modified to allow redirectingcpu0 or cpu1 to a different starting address (This redirecting ability is not used for xapp1078).- xtime_l.c: The change to this file prevents re-initializing the global timer.- asm_vectors.S: Two extra vectors are added at the end of the vector table and are used by the boot.Sredirecting code. (This redirecting ability is not used for xapp1078).

(1)STDOUT_REDIR 宏定义

在armcc/_sys_write.c, gcc/write.c, printc, xil_printf.c中,所有涉及到print打印函数的地方,都增加了对应的宏定义,如:

#if defined STDOUT_BASEADDRESS || STDOUT_REDIRoutbyte( *lp++);
#endif

原因:1078提供的AMP设计中,双核通信过程:cpu1会通过xil_printf()函数将打印消息发送给cpu0,cpu0再通过系统uart1将打印消息发送给显示器。

在1078的bsp设置中,Select Overview->standalone and change stdin and stdout to None,没有定义输入输出端设备,即没有STDOUT_BASEADDRESS 宏。为了避免xil_printf()无效,才有了STDOUT_REDIR 宏定义。

(我的配置:在vivado中使能uart0:使用EMIO引脚,使能uart1:使用ps侧标准IO;在cpu1的bsp配置中使用uart0;

因此,不需要定义STDOUT_REDIR,demo也可以正常运行)


(2)boot.S

(2.1)CPU1内存分配(必须)

作用:限定cpu1的裸机程序不可访问低内存空间(保留给linux系统专用)

第一:将虚拟地址0x20000000重新映射到物理地址0x00000000 部分的代码注释(注意:sdk软件自带的standalone不会有这段代码,可忽略此步,这段代码可能是xilinx以前增加的

第二:将地址0x00000000-0x2fffffff(768M)配置为不可用。注意:这里配置的DDR是1G,因此cpu1运行裸机程序的情况下,配置低768M给cpu0使用,cpu1只是用高256M。如果DDR是512M,分为模式应该是:384M+128M。

第三:设置0x30000000-0x3fffffff仅作为CPU1的内部使用如果DDR是512M,因该是高128M。

注意:关于MMU的原理和相关描述符的具体含义请参考《 嵌入式系统Linux内核开发实战指南ARM平台.pdf》中的第4章节(这里讲的描述符可能不是arm最新架构的,比如没有标志位s,此时参考下文:MMU配置和使用)

//第一步:注释代码
//	/* In case of AMP, map virtual address 0x20000000 to 0x00000000  and mark it as non-cacheable */
//#if USE_AMP==1
//	ldr	r3, =0x1ff			/* 512 entries to cover 512MB DDR */
//	ldr	r0, =TblBase			/* MMU Table address in memory */
//	add	r0, r0, #0x800			/* Address of entry in MMU table, for 0x20000000 */
//	ldr	r2, =0x0c02			/* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b0 */
//mmu_loop:
//	str	r2, [r0]			/* write the entry to MMU table */
//	add	r0, r0, #0x4			/* next entry in the table */
//	add	r2, r2, #0x100000		/* next section */
//	subs	r3, r3, #1
//	bge	mmu_loop			/* loop till 512MB is covered */
//#endif/* In case of AMP, mark address 0x00000000 - 0x2fffffff DDR as unassigned/reserved *//* and address 0x30000000 - 0x3fffffff DDR as inner cached only */#if USE_AMP==1//第二步:保留低768M(如果DDR是512M,可将768M修改为384M,cpu0也可以正常运行系统)ldr	r3, =0x2ff			  /* 768 entries to cover 768MB DDR */ldr	r0, =TblBase			/* MMU Table address in memory */ldr	r2, =0x0000			  /* S=b0 TEX=b000 AP=b00, Domain=b0, C=b0, B=b0 */
mmu_loop:str	r2, [r0]			    /* write the entry to MMU table */add	r0, r0, #0x4			/* next entry in the table */add	r2, r2, #0x100000	/* next section */subs	r3, r3, #1bge	mmu_loop			    /* loop till 768MB is covered *///第三步:设置高256M专为CPU1使用(如果DDR是512M,这里的256M需修改为128M)ldr	r3, =0x0ff			  /* 256 entries to cover 256MB DDR */movw r2, #0x4de6		  /* S=b0 TEX=b100 AP=b11, Domain=b1111, C=b0, B=b1 *///注意:CB为01:表示cpu1的MMU设置为了分段地址管理,不支持cache但支持buffer;mmu域是15;保护标志位为0;访问权限为11:可读可写;在ARMv5以上版本处理器中有定义,如果TEX等于1,表示系统支持写时分配cache,这里没有分配cache;s为0:表示此内存不共享!movt r2, #0x3000      /* S=b0, Section start for address 0x30000000 */
mmu_loop1:str	r2, [r0]			    /* write the entry to MMU table */add	r0, r0, #0x4			/* next entry in the table */add	r2, r2, #0x100000	/* next section */subs	r3, r3, #1bge	mmu_loop1			    /* loop till 256MB is covered */
#endif

(2.2)启动地址重映射:_boot(非必须)

(注意:这个功能在1078上用不上,可不增加这一段)

...
...
.globl _cpu0_catch
.globl _cpu1_catch
.globl OKToRun
.globl EndlessLoop0
...
..._boot:        //复位中断向量,系统复位后代码从这里启动/* Test which processor is running and jump to the catch address */mrc	p15,0,r1,c0,c0,5and	r1, r1, #0xfcmp	r1, #0bne	NotCpu0               //如果不是cpu0,则跳转到NotCpu0处继续判断ldr	r0, =_cpu0_catch      //如果是CPU0,则准备跳转到_cpu0_catch处b cpuxCont
NotCpu0:                    //如果不是cpu0cmp	r1, #1              bne	EndlessLoop0        //如果也不是cpu1,则跳转到endlessloop0ldr	r0, =_cpu1_catch    //如果是cpu1,则准备跳转到_cpu1_catch处b cpuxCont
EndlessLoop0:wfe                     //等待唤醒信号b	EndlessLoop0    /* Jump to address pointed to by cpux_catch */
cpuxCont:ldr lr, [r0]bx	lr                //执行跳转OKToRun:mrc     p15, 0, r0, c0, c0, 0		/* Get the revision */and     r5, r0, #0x00f00000 and     r6, r0, #0x0000000forr     r6, r6, r5, lsr #20-4
...
...

但是,standalone_v6_5中也有类似的一段,如下:

作用:从下面的汇编来看,如果实际加载中测到的CPU_ID和配置的CPU_ID如果不同,BSP将无法启动。

......
.set SLCRCPURSTReg,     (0xF8000000 + 0x244)           /*(XPS_SYS_CTRL_BASEADDR + A9_CPU_RST_CTRL_OFFSET)*/
.set EFUSEStaus,        (0xF800D000 + 0x10)            /*(XPS_EFUSE_BASEADDR + EFUSE_STATUS_OFFSET)*/
......_prestart:
_boot:#if XPAR_CPU_ID==0            //如果bsp中设置的是CPU0,则只有cpu0会启动,cpu1无法启动!/* only allow cpu0 through */mrc	p15,0,r1,c0,c0,5and	r1, r1, #0xfcmp	r1, #0beq	CheckEFUSEEndlessLoop0:wfeb	EndlessLoop0CheckEFUSE:ldr r0,=EFUSEStausldr r1,[r0]                             /* Read eFuse setting */ands r1,r1,#0x80                        /* Check whether device is having single core */beq OKToRun/* single core device, reset cpu1 */ldr     r0,=SLCRUnlockReg               /* Load SLCR base address base + unlock register */ldr     r1,=SLCRUnlockKey               /* set unlock key */str     r1, [r0]                        /* Unlock SLCR */ldr r0,=SLCRCPURSTRegldr r1,[r0]                             /* Read CPU Software Reset Control register */orr r1,r1,#0x22str r1,[r0]                             /* Reset CPU1 */ldr	r0,=SLCRlockReg         	/* Load SLCR base address base + lock register */ldr	r1,=SLCRlockKey	        	/* set lock key */str	r1, [r0]	        	/* lock SLCR */#elif XPAR_CPU_ID==1        //如果bsp中设置的是CPU1,则只有cpu1会启动,cpu0无法启动!/* only allow cpu1 through */mrc	p15,0,r1,c0,c0,5and	r1, r1, #0xfcmp	r1, #1beq	CheckEFUSE1b        EndlessLoop1CheckEFUSE1:ldr r0,=EFUSEStausldr r1,[r0]                             /* Read eFuse setting */ands r1,r1,#0x80                        /* Check whether device is having single core */beq OKToRunEndlessLoop1:wfeb	EndlessLoop1
#endif

(2.3)AMP模式禁用L2 cache(必须)

作用:如果是AMP模式,cpu1就需要禁用L2 cache;(这段代码两个sdk源码均有,不需要用户添加)

原因参考《Zynq的AMP开发注意事项之禁用L2 cache》

/* For AMP, assume running on CPU1. Don't initialize L2 Cache (up to Linux) */
#if USE_AMP!=1ldr	r0,=L2CCCrtl			/* Load L2CC base address base + control register */mov	r1, #0				/* force the disable bit */str	r1, [r0]			/* disable the L2 Caches */ldr	r0,=L2CCAuxCrtl			/* Load L2CC base address base + Aux control register */ldr	r1,[r0]				/* read the register */ldr	r2,=L2CCAuxControl		/* set the default bits */orr	r1,r1,r2str	r1, [r0]			/* store the Aux Control Register */ldr	r0,=L2CCTAGLatReg		/* Load L2CC base address base + TAG Latency address */ldr	r1,=L2CCTAGLatency		/* set the latencies for the TAG*/str	r1, [r0]			/* store the TAG Latency register Register */ldr	r0,=L2CCDataLatReg		/* Load L2CC base address base + Data Latency address */ldr	r1,=L2CCDataLatency		/* set the latencies for the Data*/str	r1, [r0]			/* store the Data Latency register Register */ldr	r0,=L2CCWay			/* Load L2CC base address base + way register*/ldr	r2, =0xFFFFstr	r2, [r0]			/* force invalidate */ldr	r0,=L2CCSync			/* need to poll 0x730, PSS_L2CC_CACHE_SYNC_OFFSET *//* Load L2CC base address base + sync register*/
......

(3)asm_vectors.S(非必须)

在向量表的末尾添加了两个额外的向量,由boot.s中的重定向代码使用。

.globl _boot
.globl _vector_table
.globl _cpu0_catch
.globl _cpu1_catch
.globl OKToRun
.globl EndlessLoop0.globl FIQInterrupt
.globl IRQInterrupt
.globl SWInterrupt
.globl DataAbortInterrupt
.globl PrefetchAbortInterrupt.globl IRQHandler
.globl prof_pc.section .vectors
_vector_table:B	_bootB	UndefinedB	SVCHandlerB	PrefetchAbortHandlerB	DataAbortHandlerNOP	/* Placeholder for address exception vector*/B	IRQHandlerB	FIQHandler#if XPAR_CPU_ID==0        //如果bsp中设置的是CPU0
_cpu0_catch:              //则:cpu0可以运行
.word	OKToRun			/* fixed addr for caught cpu- */
_cpu1_catch:              //cpu1会跳转到等待wfe循环中
.word	EndlessLoop0	/* fixed addr for caught cpu- */#elif XPAR_CPU_ID==1       //如果bsp中设置的是cpu1,则cpu启动与上述相反
_cpu0_catch:
.word	EndlessLoop0
_cpu1_catch:
.word	OKToRun
#endifIRQHandler:					/* IRQ vector handler */stmdb	sp!,{r0-r3,r12,lr}		/* state save from compiled code*/
#ifdef __ARM_NEON__vpush {d0-d7}vpush {d16-d31}vmrs r1, FPSCRpush {r1}vmrs r1, FPEXCpush {r1}
#endif......

 


(4)xtime_l.c修改(必须)

作用:在AMP模式下,global全局定时器肯定会在CPU0的系统中完成初始化,因此避免CPU1启动或是运行过程中CPU1重启时,将global全局定时器reset!

void XTime_SetTime(XTime Xtime)
{#ifdef USE_AMPif(Xil_In32(GLOBAL_TMR_BASEADDR + GTIMER_CONTROL_OFFSET) && 0x1) {//Timer is already enabled so don't reset itreturn;}
#endif/* Disable Global Timer */Xil_Out32(GLOBAL_TMR_BASEADDR + GTIMER_CONTROL_OFFSET, 0x0);/* Updating Global Timer Counter Register */Xil_Out32(GLOBAL_TMR_BASEADDR + GTIMER_COUNTER_LOWER_OFFSET, (u32)Xtime);Xil_Out32(GLOBAL_TMR_BASEADDR + GTIMER_COUNTER_UPPER_OFFSET,(u32)(Xtime>>32));/* Enable Global Timer */Xil_Out32(GLOBAL_TMR_BASEADDR + GTIMER_CONTROL_OFFSET, 0x1);
}

3.总结归纳

(1)首先,1078文件中提供的sdk_repo并不是必须的,在经过理解之后,我们已经知道需要修改哪些必须的内容,并可以直接在standalone_v6_5源码上进行修改,依然能够完成AMP模式验证。

(2)注意:如果需要使用standalone_v4_299,除了在新建BSP工程前导入sdk_repo外,还需要在BSP配置选项中:OS version——>4.2版本,默认是6.5(软件自带);但是使用4.2版本源码会出现很多报错的情况,因此需要用户谨慎使用。

(3)本人建议:直接使用6.5版本,并在此基础上进行相应修改。

有问题交流请联系,qq:1030843709 泊叶

4.附录

xilinx官网关于SDK的详细使用介绍:

https://china.xilinx.com/search/site-keyword-search.html#q=sdk&firstQueryCause=omniboxFromLink&firstQueryMeta={%22partialQueries%22:%22%22%20,%20%22suggestionRanking%22:3%20,%20%22suggestions%22:%22zynq%207000%20qspi%3Bug1157%3Bug1144%3Bsdk%3Bcallbackref%22%20,%20%22partialQuery%22:%22undefined%22%20,%20%22JSUIVersion%22:%222.4382.16%3B2.4382.16%22}

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 给eclipse 安装spring ide插件

    由于myEclipse启动太慢,最近忽然想用eclipse开发项目试试,就下载了一个Eclipse Mars.2。 因为现在多数项目都和spring有关,就想给eclipse安装一个spring ide方便开发。 安装spring ide方式如下:Help -> Eclipse Marketplace -> Search 选项中搜索 spring ide,结果出…...

    2024/4/14 22:29:13
  2. 机器学习之Logistic回归(c语言实现)

    本文主要采用Logistic回归实现数据的分类 数据来源:UCI数据库 wpbc.data可以参考相关资源进行学习: http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.htmlLogistic回归主要针对输入的数据是连续的变量,输出则是有限的数值型。 涉及到以下方面: 1. 输出y = w0…...

    2024/4/18 15:27:45
  3. 黑客攻击常用端口

    黑客攻击常用端口端口服务入侵方式21ftp/tftp/vsftpd文件传输协议爆破/嗅探/溢出/后门22ssh远程连接爆破/openssh漏洞23Telnet远程连接爆破/嗅探/弱口令25SMTP邮件服务邮件伪造53DNS域名解析系统域传送/劫持/缓存投毒/欺骗67/68dhcp服务劫持/欺骗110pop3爆破/嗅探139Samba服务爆…...

    2024/5/4 7:03:46
  4. 社会网络中的心理学-----社交焦虑症

    社交焦虑症这个小标题有点大了,其实我想表达的是,我们在生活中,包括我,所遇到的一些小的麻烦,然后细细地剖析了下内心深处的心理本质。很多时候,特别是到了一个新的环境里,有些自信不足或者实力不够的人,往往会喜欢或者说不自觉地向一些“强”的人靠拢,当然这个不是什…...

    2024/5/4 2:42:59
  5. DMA和cache不一致

    1.Cache的两个类型--Write Through当写数据进Cache时,也同时更新了相应的Memory里的内容--Write back只是写到Cache里,Memory的内容要等到cache保存的要被别的数据替换或者系统做cache flush时,才会被更新。 2.Cache的两个函数--Flush把Cache内容写回Memory,当Cache为Write …...

    2024/4/23 11:45:46
  6. 测试与开发各阶段的关系

    原文地址:测试与开发各阶段的关系作者:测试之旅 测试应该从生命周期的第一个阶段开始,并且贯穿于整个软件开发的生命周期。生命周期测试是对解决方案的持续测试,即使在软件开发计划完成后或者被测试的系统处于执行状态的时候,都不能中断测试。在开发过程中的几个时期,测…...

    2024/4/14 22:29:10
  7. 编程环境搭建(云上编程和本地编程)

    =====云上编程,避免了部署环境的麻烦工作=====华为云在线IDE功能 https://www.huaweicloud.com/product/cloudide.html 腾讯云主机的在线云端开发工具 Cloud Studio 来快速开始你的 Java 项目https://studio.coding.net=====本地笔记本上安装eclipse编译环境方法===== JAVA开…...

    2024/4/17 0:12:23
  8. 用于黑客渗透测试的 21 个最佳 Kali Linux 工具 | Linux 中国

    这里是最好的 Kali Linux 工具列表,它们可以让你评估 Web 服务器的安全性,并帮助你执行黑客渗透测试。-- Ankush Das如果你读过 Kali Linux 点评,你就知道为什么它被认为是最好的黑客渗透测试的 Linux 发行版之一,而且名副其实。它带有许多工具,使你可以更轻松地测试、破解…...

    2024/4/20 14:25:46
  9. 学习C语言与程序设计的方法

    作为初学者,如何学会、掌握及熟练使用C语言?如何使用C语言去解决实际工作中的应用问题?这主要涉及四个方面的学习与训练。 1).学习并理解C语言的语法和语义。在C语言中:语法:规定了C语言中各种符号集中各种符号的结合方式,规定了各种表达式、语句、函数乃至程序结构等的…...

    2024/4/20 2:43:39
  10. 关于自己安装Eclipse spring ide插件的一点经过,希望能帮助大家。

    **## 关于自己安装Eclipse spring ide插件的一点经过,希望能帮助大家。**最近因为学习Spring,所以使用了eclipse,用安装spring ide插件的方式进行学习,但是经过了3天是间的操作,又是Eclipse Marketplace…又是install New Software…在线模式或者离线模式安装,每次都是安…...

    2024/4/18 9:47:00
  11. DMA和cache一致性问题

    Cache原理 CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或…...

    2024/4/18 5:51:06
  12. Android Studio下测试用例的编写

    测试用例是什么,测试用例其实就是一段普通的程序代码,通常是带有期望的运行结果的,测试者可以根据最终的运行结果来判断程序是否能正常工作。 单元测试是什么,单元测试是指对软件中最小的功能模块进行测试,如果软件的没一个单元都能通过测试,说明代码的健壮性已经非常好…...

    2024/4/24 1:05:04
  13. 复杂网络中的社团检测算法研究

    本文参考论文Community detection in networks:A user guide,写下本人理解笔记。复杂网络 复杂网络定义 在我们的现实生活中,许多复杂系统都可以建模成一种复杂网络进行分析,比如常见的电力网络、航空网络、交通网络、计算机网络以及社交网络等等。复杂网络不仅是一种数据的…...

    2024/4/14 22:06:35
  14. 社交类App如何防范黑产垃圾用户?

    社交网络业务安全存在的问题 近日,国家网信办会同有关部门,针对网络音频乱象启动专项整治行动。首批对市面上26款app分别采取了约谈、下架、关停服务等处罚。前不久探探App就是因出现违规内容(涉黄)被下架整改,背后就是那些黑产的所作为! 那么,这些垃圾用户是如何影响社…...

    2024/5/2 23:14:45
  15. 黑客常用 Linux 入侵常用命令-

    黑客常用 Linux 入侵常用命令 2018年02月10日 10:49:33 坦GA 阅读数:2675 标签: 黑客常用 Linux 入侵常用命令 更多 个人分类: Linux初级/Linux高级/系统运维 安全技术/黑客技术 原文地址:http://blog.csdn.net/jHstGeWWubw/article/details/78941387 写个php一句话后门上…...

    2024/4/14 22:06:38
  16. 开发环境、测试环境、生产环境 的区别?

    开发环境(development):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。(程序员接到需求后,开始写代码,开发,运行程序,看看程序有没有达到预期的功能;)测试环境(testing):一般是克隆一份生产环境的配置,一个…...

    2024/4/18 10:15:39
  17. RStudio IDE 入门 | Linux 中国

    用于统计技术的 R 项目是分析数据的有力方式,而 RStudio IDE 则可使这一切更加容易。-- Don Watkins有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。致谢编译自 | https://opensource.com/article/18/2/getting-started-RStudio-IDE  …...

    2024/5/2 19:50:50
  18. device-mapper 之 dm-cache分析

    先把代码与注释贴出来,有时间再来写分析流程: /***************************************************************************** dm-cache.c* Device mapper target for block-level disk caching** Copyright (C) International Business Machines Corp., 2006* Copyr…...

    2024/4/14 22:29:02
  19. 推荐几个好用的在线编译器

    前言为什么要使用在线编译器呢?有时候自己的电脑不在身边,或者又不想打开IDE,或者本身就没有安装某种语言的编译环境,只想写个小demo验证点东西,在线编译器就很方便了;对于初学者而言,也可以很方便的做练习,而不用一开始就折腾复杂的IDE。下面重点介绍几个好用的在线编…...

    2024/5/2 23:53:09
  20. RISC-V --rocket-chip generator介绍及其仿真使用

    最近工作使用 rocket-chip generator 仿真非极大值抑制算法(C语言编写),分析其时序模型和riscv汇编指令,这里将rocket-chip generator的使用方法总结一下 说明:使用的rocket-chip generator的版本为:a8d573beeb8a33bb5dac0673ec68b82852a24d63 rocket-chip generator介绍…...

    2024/4/14 22:29:00

最新文章

  1. 华为机考入门python3--(19)牛客19- 简单错误记录

    分类:字符串 知识点: 分割字符串 my_str.split(\\) 字符串只保留最后16位字符 my_str[-16:] 列表可以作为队列、栈 添加元素到第一个位置 my_list.insert(0, elem) 增加元素到最后一个位置 my_list.append(elem) 删除第一个 my_list.pop(0)…...

    2024/5/4 7:08:41
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 09 spring-boot-acurator 定时检测 redis 集群导致 “IOException: Too many open files“

    前言 问题的现象主要是如下 项目刚启动的时候 十分正常, 然后 随着时间的推移, 比如说 项目跑了 四五天之后 项目 突然出现问题, 一部分服务能够正常访问, 一部分服务抛出异常 异常信息 就是 too many files 这里的主要的问题是 在异常之前, redis 集群没有密码, 然后 …...

    2024/4/30 8:18:44
  4. vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

    文章目录 一、v-model是什么二、什么是语法糖三、v-model常见的用法1、对于输入框(input):2、对于复选框(checkbox):3、对于选择框(select):4、对于组件(comp…...

    2024/5/1 13:24:03
  5. Web大并发集群部署之集群介绍

    一、传统web访问模型 传统web访问模型完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 传统模型缺点 单点故障; 单台服务器资源有限&…...

    2024/5/1 13:15:58
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57