在用xilinx V6芯片跑操作系统时遇到了错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在用xilinx V6芯片跑操作系统时遇到了错误相关的知识,希望对你有一定的参考价值。

在操作系统启动最后显示一下信息,最后卡在了最后,谁知道怎么回事呀!谢谢!急求答案
ilinx_axienet 41240000.axi-ethernet: TX_CSUM 0
xilinx_axienet 41240000.axi-ethernet: RX_CSUM 0
libphy: Xilinx Axi Ethernet MDIO: probed
TCP: cubic registered
NET: Registered protocol family 17
Key type encrypted registered
Freeing unused kernel memory: 1592K (c0455000 - c05e3000)
Starting rcS...
++ Mounting filesystem
mount: mounting none on /tmp failed: Invalid argument
++ Starting telnet daemon
rcS Complete
/bin/sh: can't access tty; job control turned off
/ # Freeing unused kStarting rcS...
/bin/sh: /bin/sh: /bin/sh: /bin/sh: /bin/sh: Freeing: not found
/ #
/ # ++ Mounting filesystem
/bin/sh: /bin/sh: /bin/sh: /bin/sh: /bin/sh: /bin/sh++: not found
/ #
/ # mount: mounting none on /tmp failed: Invalid argument
/bin/sh: /bin/sh: /bin/sh: /bin/sh: /bin/sh: /bimount:: not found
/ #
/ # ++ Starting telnet daemon
/bin/sh: /bin/sh: /bin/sh: /bin/sh++: not found
/ #
/ # rcS Complete
/bin/sh: /bin/sh: /bin/sh: /bin/sh: /bin/sh: /rcS: not found
/ #
/ # /bin/sh: can't access tty; job control turned off
>
> / # Freeing unused kStarting rcS...
>
> /bin/sh: /bin/sh: /bin/sh: /bin/sh: /bin/sh: Freeing: not found

参考技术A 自己最近做的一块板子,焊了两块板子,3.3V,1.2V晶振都正常,两块板子都是同样的现象,JTAG电路对了没有问题,怀疑芯片是坏的,现在很困惑,求高手帮助!!!
小弟做过一些小型的嵌入式系统,主要都是用的单片机,比如Atmel mega系列的用得最多,但是做过的小型项目都是用C直接写底层做的,没有架过什么操作系统。最近要接手一个ARM的项目,控制小型智能车,听说如果跑操作系统,会让一些要并行执行的任务控制起来简单一些。我也打算通过这个项目了解了解嵌入式操作系统是怎么个回事。

但现在对于在嵌入式CPU上跑操作系统还没有任何概念,小弟以前是学电路硬件的,软件方面的课程接触很少。请问在ARM上跑操作系统(还是用C语言)实际来说是不是就是会include一些操作系统的h文件和c文件,然后在真正的main函数中去调用操作系统中的函数?哪位大神来笼统地讲讲跑操作系统时,单片机(ARM)运行具体的流程是什么样的?还是像普通那样整个系统会从main函数开始执行代码吗?另外,我听说在操作系统中main函数会有返回值了,那么是不是说跑操作系统的时候会由这个系统来调用main函数?

抱歉,小弟从来没在板子上跑过操作系统,所以问的问题会很菜鸟。要是有什么推荐小弟去自学入门的材料,欢迎推荐!

如何对xilinx FPGA进行bit文件加密

记录背景:最近在用Vivado评估国外一个公司所提供的ISE所建的工程时,由于我并没有安装ISE工程,因此将其提供的所有v文件导入到Vivado中,对其进行编译。添加完之后成功建立顶层文件,但奇怪的是,除了顶层文件的v文件可以正常打开编辑外,其它sub层的v文件都无法正常打开编辑,双击打开后显示的是乱码,继续查找它们与顶层文件有什么不同时,发现这些文件的属性之一——encrypted 都是“yes”状态。

这多少有点震惊我了,我之前只知道为了保护某文件的保密性时,一般都是生成网表(ncg?netlist?)文件以便提供他人使用,别人拿到的网表文件只是个空壳子,尽管调用就好,里面的代码对他来说就是个空壳子。

为了知道别人是怎么做到v文件加密的(感觉逼格挺高的),上网搜索一番,最后,最后,最后发现是需要Xilinx提供特定的工具才可以(而这一说法也得到了Xilinx的FAE的认证),而这个特定的工具一般只有Xilinx的高级客户才会拥有。好吧,继续挖掘的冲动突然就猝死了。

--------------------------------------------------------------------------------------------------------------------------------------------

转自:https://blog.csdn.net/u010161493/article/details/79200527,如有侵犯,请告知删除,抱歉!

加密的优点

xilinx的V6和7全系列FPGA支持AES256加密,加密的好处: 
1,可以防止别人回读或者对你的程序进行逆向读取; 
2,防止更改烧写的bit文件。 
如果仅仅是防止回读,可以简单设置BITSTREAM.READBACK.SECURITY,其中LEVEL1是禁止回读,LEVEL2禁止回读和重新烧写FPGA。 
但如果对手的逆向能力很强,比如说在FPGA上电加载bit的时候用逻辑分析仪把用bit文件“读”出来,这个简单的设置肯定就不行了。这时候可以使用AES256加密。

AES算法简介:

AES即高级加密标准,是一种区块加密,当然也是对称加密。区块固定为128bit,秘钥为128,192或256bit。AES有5种加密模式,xliinx采用的是CBC模式。有一个128bit初始向量IV(startCBC),先利用初始向量IV与第一组数据进行异或后再进行加密运算生成C1。将C1作为初始向量与第二组数据进行异或后再进行加密运算生成C2。以此类推,当最后一组数据加密完毕后,将加密结果拼接为最终结果,C = C1C2C3……Cn。 
所以采用CBC模式的256AES需要两个东西,128bit-startCBC和256bit-AES key。

到这里还没完,完成了bit加密还没有认证,万一别人把烧进去bit文件篡改了怎么办?(重新烧了新的bit文件)。所以xilinx又提供了HMAC的认证,这个就跟校验差不多了,检查消息的完整性。

所以还需要提供256bit-HMAC,加上128bit-startCBC和256bit-AES key,一共是三个。这三个key可以自己生成,也可以指定空的 .nky文件,由软件随机生成好。 
for example 
··· 
Device xc7a35t; 
Key 0 0f2ec1178ae0d04c8c1431afe8266d08e799b01c5c486c2567f3621f47319aaf; 
Key StartCBC a6262d508c338eeab815340a7832436d; 
Key HMAC d82e72733a7bd7904c802d13db37187b8ad20b972ac163470c5a4d239bce6308; 
··· 
加密的AES key可以存到FPGA内部易失性的BBR或只能烧写一次(OTP)的eFUSE中。 
BBR需要电池供电,可以多次编程。eFUSE不需要电池,但只能烧写一次。这里使用eFUSE

eFUSE寄存器

首先来看一下eFUSE寄存器: 
技术分享图片 
一共有四个寄存器,分别是存放AES秘钥,用户信息,设备DNA和eFUSE控制。下面特别关注一下eFUSE控制寄存器:

技术分享图片 
技术分享图片 
一共有6个bit有用,各种设置的优缺点表里有详细说明,使用参考设置101100就行了。 
其中bit0很重要,万一置位了,AES的key又搞丢了,FPGA就变砖头了。

具体的操作步骤如下:

1生成key和加密bit

下面三个key可以自己生成填进去,也可以由软件随机生成。 
技术分享图片
技术分享图片
要打开edit device properties,先要打开sythesized design 或者implement design,然后在generate bitstream右键设置 
技术分享图片
技术分享图片

2下载eFUSE

技术分享图片 
技术分享图片 
技术分享图片 
技术分享图片

3烧写FPGA程序

技术分享图片 
技术分享图片 
program 
技术分享图片 
技术分享图片

4验证

很简单,读出mcs然后烧到另一个FPGA里面去,可以看到不能工作。当然,也可以在前面eFUSE设置时选择只能加载AES加密的bit文件,这样换一个不加密的bit下进去也能验证。 
技术分享图片 
技术分享图片

 

**********************************************************************************************************************

Q1:在bitstreams中的edit device property选项中,没有encyption选项,所以无法设置efues。

A1:这应该是开发工具版本过低的原因,升级到新版本试试。

 


































以上是关于在用xilinx V6芯片跑操作系统时遇到了错误的主要内容,如果未能解决你的问题,请参考以下文章

如何用ModelSim对Xilinx ISE产生的网表进行仿真

FPGA设计中遇到的奇葩问题之“芯片也要看出身”

请教Xilinx 芯片配置问题:使用芯片xc3s200a vq100,flash为W25P40,JTAG烧bit文件OK,SPI口烧写FLASH不成功

急急急!!!支持sopc技术的xilinx FPGA芯片都有哪些系列和类型

骚操作,尝试使用Xilinx XVC协议,通过Jlink来下载调试Xilink zynq FPGA芯片

骚操作,尝试使用Xilinx XVC协议,通过Jlink来下载调试Xilink zynq FPGA芯片