首页 秋月的笔记

秋月的笔记

举报
开通vip

秋月的笔记秋月的秋月的笔记Thenotesofautumoon整理日期:2013年6月9日星期日 前言嗯,是这样的,这是我在第一份工作期间所做的一些笔记,本来是用txt文档分别存储的,为了方便查看我特此整理到一个文档里面来了,特此说明。笔记的内容以C语言,嵌入式等为主,其他也包含早期的有关FPGA的一些笔记,然后是学习日语的一些笔记,还有就是其他的一些东西,总之我认为值得做笔记的,都有留下来一些。Copyright@秋月的私语版权所有翻版不纠2013年6月6日星期四 目录前言 120101214工作学习计划 12010121...

秋月的笔记
秋月的秋月的笔记Thenotesofautumoon整理日期:2013年6月9日星期日 前言嗯,是这样的,这是我在第一份工作期间所做的一些笔记,本来是用txt文档分别存储的,为了方便查看我特此整理到一个文档里面来了,特此说明。笔记的内容以C语言,嵌入式等为主,其他也包含早期的有关FPGA的一些笔记,然后是学习日语的一些笔记,还有就是其他的一些东西,总之我认为值得做笔记的,都有留下来一些。Copyright@秋月的私语版权所有翻版不纠2013年6月6日星期四 目录前言 120101214工作学习计划 120101214关于在学习三大软件中的疑问 220101215定义管脚 320101218ISE文件类型 420110104通用分频器 620110104有限状态机基本模型 920110224关于图像缩放算法的总结 1020110225图像处理工作完成总结 1220110311本月上旬工作总结 1420110426虚拟机密码 1520110511关于FLASH烧写的一些问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 1620110513实现功能 1920110523关于FLASH烧写教训 2020110608决定改用uboot 2120110706在Microblaze软核上运行Petalinux 2220110712固态硬盘笔记 2320110712可行性报告格式 2420110801关于文章写作 2520110801学习C语言 2620110802OSI参考模型 2720110808C语言入门 2820110902点亮TFT屏幕的程序总结 2920110905约稿提示 3020110906点亮TFT 3120110908编程之前画框架图 3220110914日语学习1-5 3320110915日语学习6-10 3420110916日语复习1-10 3520110919学习日语i音节 3620110920日语五十音一半了 3720110921日语第25-30 3820110921日语复习第25-30 3920110923日语五十音31-35 4020110924日语五十音36-40 4120110925日语五十音复习前面 4220110926日语40-45 4320110927日语45-50 4420110928日语复习前面的 4520110929日语开始学习单词 4620110930日语单词学习 4720111008日语单词学习 4820111009日语简单句学习 4920111012C语言程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 5020111013C语言短路计算 5120111013scanf的录入方式 5220111013日语发音种类 5320111014关系比较陷阱 5420111017关系运算符优先级 5520111018关于读写整型变量时 5620111018基本类型缩写 5720111018日语单词记忆 5820111019scanf跳过空白字符 5920111020数组初始化 6020111021两个函数库 6120111021数组初始化 6220111024函数实际参数的转换 6320111026关于牌型判断的程序 6420111027预处理命令构建程序的方法 6520111031后缀++的优先级比指针高 6620111031整型指针的定义 6720111101传递数组时注意 6820111102关于字符串处理的两个常用函数的编写 6920111102字符串函数 7020111103带参数的宏以及extern函数 7120111107#include指令 7220111110创建结点 7320111116关于结构体的嵌套 7420111117register存储类型 7520111117static声明的好处 7620111117解释复杂的声明 7720111122C++函数调用 7820111123低级程序的设计 7920111123真相只有一个 8020111130当乐网账号 8120111130文件保护 8220111227仅仅靠上班学习是不够的 8420120106fprintf函数和printf函数 8520120107文件读写操作 8620120129十二生肖顺序 8720120202数据结构数组 8820120203如何查找未知函数 8920120210init_pixelc()函数相关 9020120213volatile关键字 9120120214CAN接口知识 9420120217初始化和赋值的区别 9520120220大端模式小端模式 9620120223二维数组理解 9720120229设置断点和运行到光标处技巧 9820120301C语言堆栈问题 9920120313string和vector的头文件 10420120313using指示符 10520120320嵌入式的理解 10620120326两总线区别 10720120331BF561DMA方式 10820120416秋月 10920120428对灰度图像进行二值化 11020120508预编译sizeof 11120120508指针的加减法 11220120522malloc不能使用的时候 11320120522感兴趣区域结构体的定义 11420120525printf的特殊用法 11520120604颜色表示 11620120605尽量减少浮点运算 11720120611指针或者数组比较大小的时候 11820120612各库函数使用 11920120614膨胀和腐蚀函数使用 12020120618Blackfin浮点 12120120618错误提点 12220120619static类型 12320120619结构体数组以及初始化 12420120619使用文件操作时的文件路径 12520120726iphone维修价格参考 12620120730DataTypes的定义 12720120814给VDSP的工程添加库文件 12820120827getchar返回值的类型为int型 12920120827printf中输出一个'%' 13020120828scanf()陷入无限循环 13120120828不要假设浮点运算结果是精确的 13220120828为什么scanf(%d,i)调用不行 13320120828圆周率的值 13420120830反斜杠的问题 13520120830最长的记号被划分 13620120917六种动物悲鸣着奔来 13720120920市场建设举例 13920121206不允许修改字符串常量 14120121207表达式长度无需求值 14220121207关于一个字有4字节 14320121207关于指针的建议 14420121207数组边界问题 14520121207问好表达式求值 14620121210旧式的声明 14720121210两种字符串的初始化 14820121211二维数组的指针运算 14920121217结构中的三个符号的优先级 15020121217联合的初始化 15120130106返回局部变量指针 15220130607尊严 15320130609插入方框里对勾 155编后语 156 20101214工作学习计划初步计划;首先学会使用本部门要求学会使用的三大软件,ISE,SYNPLIFY,以及MODELSIM,即使不能熟练使用,要用弄清楚基本使用方法以及工作原理。其次,要学习有关图像处理方面的知识,查阅相关资料,图像裁剪,图像重叠区域处理,图像压缩等等。第三,看已经写好的部分程序(此处有难度,已经看了几天,发现还是摸不着头脑)。然后,重点还是要学习前面的提到的三大软件。这几点相当重要。详细计划:在学习三大软件的过程中,遇到了不少困难。详情见附件“关于在学习三大软件中的疑问”。图像处理部分的知识,学习了一些,但是发现要把这些处理思想转化成程序代码,有一定的难度,而且目前对芯片了解太少,经验欠缺,感觉有些力不从心。不推脱的工作原则:并不是说就不能做好自己的工作了,只是觉得目前做工作还有难度,需要提高的地方很多。疑问:目前的工作重点到底应该放在熟悉软件上呢?还是放在学习图像处理的有关知识呢?其实还有一点就是要重点学习VHDL的相关知识,关键是要加强练习,以前学的东西很多都忘掉了,而且现在接触的软件跟之前的也有不少差别。 20101214关于在学习三大软件中的疑问鉴于我们科室的情况,我们需要学习的软件主要包括XILINX公司的编程工具ISE软件以及相关的综合工具SYNPLIFY,以及仿真软件MODELSIM等软件。而在学习过程中我发现自己遇到了以下问题:首先是编程仿真的过程中总会遇到编译出错的情况,而出错的情况很多不知道是什么原因引起的,这一点在学习上是相当大的一个问题。经常碰到的一种情况是说没有web什么东西,好像意思说是缺少组建。截图情况如图所示:具体的原因不得而知,貌似是由于文件编译综合的顺序不对,但是即使改变编译以及综合的顺序还是会发现相同的问题,目前这样的问题还没有发现较好的解决办法,忘指导。第二个学习中遇到的问题是在学习SYNPLIFY综合过程中的,发现软件不能直接由ISE调用,不然的话会提示没有证书,当然,这个问题明显是跟软件破解不完全有关,如果是正版的软件应该不会有这样的问题。但是,想知道其他人在使用过程中是否遇到了同样的问题,是否是我个人操作不当或者软件使用方法不正确等等。注意,SYNPLIFY单独使用的时候没有这样的问题。然后是在学习用MODELSIM的过程中,发现相对来讲,这个软件的使用方法要简单一些,但是还是有很多地方不明白,比如之前虽然提到的编译各种库,例如IEEE等等VHDL库等等,但是在实际使用过程中发现几乎没有使用到那些编译过的库,问题在哪里?目前的猜想是因为当时自己测试使用的程序太简单,导致不需要编译那些库吗,还是说因为涉及到的库比较少,所以程序在实际编译过程中已经把需要的库进行过完整的编译了呢?还有一个问题,自认为是比较麻烦的一个问题,就是关于约束的使用,在以前学习VHDL的过程中,几乎没有涉及到使用约束的情况,因为当时所设计的程序都是那种很基础很简单的程序吧。现在对约束的认识比较浅,也可以说是什么都不知道,但是知道约束是相当有用而且必须掌握的东西。希望自己在接下来的时间里能以这些方向来努力,并希望得到大家的帮助。问题补充,今天在学习ISE编程的过程中,发现编译的时候出现了下列问题,不知道如何解决呢?INTERNAL_ERROR:Xst:cmain.c:3464:1.56-Processwillterminate.Fortechnicalsupportonthisissue,pleaseopenaWebCasewiththisprojectattachedathttp://www.xilinx.com/support.终端错误?这是个什么错误,怎么解决?! 20101215定义管脚NET"SW<0>"LOC="V8"|IOSTANDARD=LVCMOS33;NET"SW<1>"LOC="U10"|IOSTANDARD=LVCMOS33;NET"SW<2>"LOC="U8"|IOSTANDARD=LVCMOS33;NET"SW<3>"LOC="T9"|IOSTANDARD=LVCMOS33; 20101218ISE文件类型UCF文件用户约束文件DIA文件状态机输入文件VHDL文件源代码文件SCH文件原理图输入文件XCO文件IP核生成的文件 20110104通用分频器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYclk_divISgeneric(n:integer:=25000000);PORT(CLK:INSTD_LOGIC;CLKOUT:BUFFERSTD_LOGIC);END;ARCHITECTUREAOFclk_divISSIGNALCNT1,CNT2:integer:=0;SIGNALOUTTEMP:STD_LOGIC;SIGNALLOUT:STD_LOGIC;SIGNALOUT3:STD_LOGIC:='0';BEGINl1:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFCNT1=n-1THENCNT1<=0;ELSECNT1<=CNT1+1;ENDIF;ENDIF;ENDPROCESS;l2:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='0'THENIFCNT2=n-1THENCNT2<=0;ELSECNT2<=CNT2+1;ENDIF;ENDIF;ENDPROCESS;l3:PROCESS(CNT1,CNT2)BEGINif((nmod2)=1)thenIFCNT1=1THENIFCNT2=0THENOUTTEMP<='1';ELSEOUTTEMP<='0';ENDIF;ELSIFCNT1=(n+1)/2THENIFCNT2=(n+1)/2THENOUTTEMP<='1';ELSEOUTTEMP<='0';ENDIF;ELSEOUTTEMP<='0';ENDIF;elseifcnt1=1thenouttemp<='1';elsif(cnt1=(n/2+1))thenouttemp<='1';elseouttemp<='0';endif;endif;ENDPROCESS;l4:PROCESS(OUTTEMP,clk)BEGINif((n/=2)and(n/=1))thenIFOUTTEMP'EVENTANDOUTTEMP='1'THENCLKOUT<=NOTCLKOUT;ENDIF;elsif(n=2)thenif(clk'eventandclk='1')thenCLKOUT<=notCLKOUT;endif;elseCLKOUT<=clk;endif;ENDPROCESS;ENDA; 20110104有限状态机基本模型有限状态机的常用设计方法:(1)分析设计目标,确定有限状态机所需的状态,并绘制状态图。(2)建立VHDL实体,定义枚举类型的数据类型。(3)定义状态变量,其数据类型为前面所定义的枚举的数据类型,例如下面的代码:typestateis(state0,state1,state2,state3,state4,state5,....);signalcr_state,nextstate:state;(4)建立顺序逻辑电路的实现进程。例如下面的程序代码:process(clk,reset)beginifreset='1'thencr_state<=state0;elsifclk'eventandclk='1'thencr_state<=nextstate;endif;endprocess;(5)使用case语句建立组合逻辑电路的实现进程,例如下面的程序代码:process(cr_state,input)begincasecr_stateiswhenstate0=>ifinput=...thencr_state<=nextstate;endif;whenstate1=>...whenothers=>nextstate<=state0;endcase;endprocess; 20110224关于图像缩放算法的总结最近,主要在做图像缩放的算法,虽然取得了一些成绩单是并没有完美解决问题,以下就图形算法的简单情况以及可能的努力方向作一下报告。图像的放大和缩小是图像处理的基本要求,在查阅了相关资料后,发现其技术应该说是相当成熟的,比如我们常用的Windows操作系统中的图片处理软件的算法可谓完美了。首先,简单来说,图像的放大要比图像的缩小难。因为按照常规思维,放大需要增加数据而缩小只需要丢弃数据,在VHDL语言当中丢弃数据显然要比“创造”数据简单,因此图像的缩放重要问题是在放大。关于图像的放大和缩小,我们首先考虑简单的问题,比如对图像进行2的整数倍的放大和缩小,这是由2进制决定的,2的整数倍的放大和缩小相对来讲要简单一些,在解决好了这些问题之后,我们可以尝试进行其他倍数比如3,5等等倍数的放大或者缩小。总的来讲,先解决简单的问题在慢慢解决困难的问题。对于图像放大图像放大的基本方法有两种。第一种比较简单就是复制数据,讲所需要的数据进行复制填充以达到放大的效果,但这样有坏处就是放大的效果不好而且如果放大倍数过大会有锯齿产生,并不是理想的处理方法。当然,如果只是进行小倍数的放大比如4以下的放大倍数,未尝不可以采用这种方法。第二种放大方法是取平均值填充法,意思是如果需要在某个位置填充数据,则这个数据位该位置周围的数据的平均值,这样放大的效果比较好但是实现起来会相对困难一些所做的工作也更多。当然我们主要要做好第二种放大因为这样才能较好地解决问题。对于图像缩小图像缩小的方法比较单一,但是也有可能尝试其他的方法。之前提到,图像缩小的主要思想就是丢弃不需要的数据,这样实现起来比较简单,利用判断语句,将满足条件的数据留下不满足条件的数据丢弃总的来说应该不难。如果是2的整数倍缩小则很好处理,如果不是2的整数倍缩小,并且也不是其他整数倍缩小,那么我们可以采取临近整数倍放大或者缩小,比如需要缩小到原来的1/3.1,那么我们可以采取缩小到1/3,基本上满足图像的显示需求。而如果我们需要将图像缩小到原来的1/3.6或者1/3.7等,那么我们仍然选择缩小到原来图像的1/3,这是由FPGA处理数据的特性决定的,并不是四舍五入而是直接舍弃小数部分(已测试)。只所以这么处理时为了让图像缩小程序简单化。当然,如果需要缩小的倍数非常具体我们可以采用其他办法处理以达到最好的处理效果,并不需要遵从上面的处理原则。目前进展状况:图像的放大处理第一种方法实现起来比较容易,目前只测试了2倍放大效果基本理想,其他倍数的放大方法类似。图像放大处理的第二种方法也测试了但是效果不理想有重影需要改进,目前做的比较基础,就是将需要填入数据的像素值取该像素左右相邻像素的平均值,放大能实现但是图像不稳定,需要加强调试。至于图像的缩小程序已经完成但是目前没有测试,目前只考虑了简单的情况就是舍去无用的数据并遵从了上文提到的近似缩小处理的原则。努力方向:争取能完美实现缩放处理,至少目前需要实现缩小处理,放大的问题稍微偏难也可以放到以后再处理。如果完成了图像的缩放处理,下面要进行的处理时图像截取和图像拼接也是重点工作,会继续努力的! 20110225图像处理工作完成总结图像处理工作完成总结经过几天的奋战,终于完美解决了图像处理方面的相关工作,注意是完美解决,不是基本解决,按照目前取得的成绩,从理论上讲,在FPGA的限制以内,可以做到对图像进行任意整数倍的放大和任意整数倍比例的缩小,可以对图像进行规则图形的裁剪,目前已经实测的效果如下:1.对160×120的图像进行1、2、3、4倍放大,因为放大到4倍的时候已经满屏(640×480),所以没有尝试4倍以上的放大,但是算法上没有问题,可以进行高倍数放大,关于图像放大后续将有一些说明。2.对120×320的图像进行1、2、3、4、5、6、7等倍数进行缩小,即进行缩小处理后,图像变为原图的1/1,1/2,1/3,1/4,1/5,1/6,1/7等,因为缩小到1/7的时候图像已经小到几乎看不清了,所以没有尝试进行更多倍数的缩小,但是算法上没有问题,可以进行更高倍数的缩小,关于图像缩小后续将有一些说明。3.对160×120的图像进行规则图像的裁剪,例如三角形、矩形以及由矩形组成的一些图形等。相关说明:1.目前只进行了复制像素方法的放大并且解决了花屏图像不清晰不稳定等问题,因为目前的项目可能用不到图像放大(但是会用到图像缩小和裁剪),所以关于图像放大并没有作太深入的研究,若以后需要相关的工作则亦可以加强研究和学习。2.对于图像缩小,则是采用传统的丢弃数据隔行隔列的方法,思想比较简单,在算法处理过程当中遇到了一些小困难例如边界问题以及整数除法除不尽等问题,但是最后都在想办法和反复测试的努力下成功解决了问题。3.对于图像裁剪,目前只做了简单图形或者简单图形的组合的裁剪,还不能说实现了对任意图像的裁剪,受FPGA可综合数据类型等的限制,目前并没有实现一些特殊形状的裁剪;当然,并不是说不能实现,如果需要可以进行更深入的研究。关于FPGA处理图像花屏不稳定的相关说明在进行图像处理工作中遇到最多的问题就是画面不清晰,有时候算法没问题,图像处理的功能例如放大或者缩小已经实现但是画面就是不清晰,对此我颇为烦恼,很多时候都找不到原因更谈不上解决问题的办法了。但是经过反复实践和测试,最终解决了这些问题,对此,我总结如下仅供参考。1.FPGA编程不同于其他语言编程,信号(或者变量)的保持很重要。在其他语言中,例如C,当一个变量你不对它进行操作的时候,它的值总是一定的;但是,在VHDL语言中最好不要这样,当你觉得一个信号(或者变量)的值不应该改变时,你应该让其保持(如a<=a;),而不要不进行任何操作,不进行任何操作的结果就是FPGA不知道该怎么做,信号的值不确定,然后会导致图像不稳定。2.对于未知情况请一定做好处理。在写if判断语句的时候,我们经常会遇到未知情况,这个时候我们最好能加上else语句作结尾来处理这些情况,或者类似于whenothers等的语句。下面举例说明:比如a的值只能是1或者0,那么我们在写判断语句时应该:if(a=1)then…elsif(a=0)then…else…endif;或者if(a=1)then…else…endif;而不应该写成if(a=1)then…elsif(a=0)then…endif;第三种情况中虽然也不算错误,因为a只能取0或者1,但是第三种情况却不稳定容易造成图像不清晰我在实际情况中经常遇到这样的问题所以特此说明。猜测可能存在一些未知情况或者a值不稳定?3.内部信号比外部直接输入的信号稳定。关于这一点的说明很重要。举例:在上图中,div_in为外部输入,div_n为该外部输入的赋值即div_n<=div_in;,虽然这两个语句在理论上等价,但是结果呢,左边出来的图像很稳定,右边出来的图像却出现花屏图像不清晰。在做这个实验的时候已经保证了其他语句相同。以上就是针对花屏图像不清晰等的说明了,当然,不知道的东西还很多,未知的原因也肯定不止以上几种,我会慢慢去发现并且完善。努力方向:目前图像处理部分的工作暂时告一段落,只有等具体的图像处理要求下来之后才好针对具体问题更改和完善程序。然后就是要继续以前关于DDR2的相关工作了,并且在有时间的情况下阅读DDR2_VGA_TEST里的程序,不说想完全看明白但是尽量基本上看明白吧,图像方面还有畸变处理的问题要解决会努力的! 20110311本月上旬工作总结最近工作遇到不少困难,关于尝试图像高分辨率放大的工作一直停滞不前,原因有多种,简要说之。一来,可能是我最近状态不佳,工作生活上发生了不少事情,搞得工作没什么心情,每个月总有那么几天状态不太好吧,不过过一段时间应该会有所改善,尽量克服吧。然后就是关于程序调试问题,总觉得VHDL是属于硬件描述性语言而不太适合进行图像处理等等,由于可综合等限制,在数据运算方面遇到了困难应该还是比较麻烦的困难。在相关的书籍上也看到有关说明说VHDL确实不适合进行图像处理数据运算等工作,但话也说回来,这可能只是一个借口,办法是人想的,应该总是由解决问题的方法的,我正在进行尝试吧。在这几天的时间里,想了很多办法解决诸如实数运算,进制转换,近似处理,时钟延迟处理等办法,感觉问题都不太好解决,往往是想到了办法又引出了新的问题,状态确实不太好!其实,怎么说呢,我跟秦桂林开玩笑说我感觉现在自己像在做永动机,好难啊!在加上目前没有显示器所以只好都先做仿真,当然这不是主要问题,主要的还是前面提到的一些不太好解决的问题。当然也有一些猜想,要是DDR2控制做好的话或许会比较好处理一些,毕竟我目前的处理都是在Rom里面进行的,基本思想是对ROM的地址进行变换读写以达到改变输出数据的目的,从而实现对图像的处理。而一旦使用DDR2,相关的数据存储操作应该会变得相对简单一些,当然只是猜想,到底情况如何,还期待以后的进展了。关于图形中数据处理一直是比较头疼的问题,目前正在查阅相关资料,试图尽量好地解决这些问题吧,会努力的。2011年3月11日星期五 20110426虚拟机密码zhanglu12:123456zhang@root:12345zhang@ 20110511关于FLASH烧写的一些问题关于FLASH烧写的一些问题首先,说明一下,不同的开发板会有不同的情况出现,下文的解说中,若没有特殊说明,均是针对Spartan3AN开发板来说的。主要内容:1.关于NORFLASH的烧写;2.关于SPIFLASH的烧写;项目分栏目前的情况存在的问题努力的方向解决方法?NORFLASH可以成功烧写并 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 到烧写到FLASH的数据。烧写的程序无法运行,不能确定烧写的数据是否正确,让程序正常运行修改程序?尝试多种烧写方式?SPIFLASHIMPACT无法检测到Spartan3AN开发板的SPIFLASH。无法下载,当然也就无法运行程序了,让程序能下载并且能运行更换ISE版本?更换芯片?DDR2SDRAM可以烧写成功并且检测到烧写到DDR2SDRAM的数据时正确的。程序无法运行让程序运行并且保证运行结果的正确性修改程序?关于以上情况的说明:关于NORFLASH烧写的进展情况:NORFLASH的烧写情况一直没什么进展了,虽然程序提示烧写成功,并且可以用XMD检测到烧写的数据,但是目前还无法保证程序的正常运行,基本情况就是虽然程序貌似是烧写进去了,但是开发板无反应(测试程序为流水灯)。期望结果:NORFLASH的烧写的最终结果,我们希望看到的是这样的情况:FPGA在一上电之后能通过NORFLASH引导将自身配置为Microblaze,然后执行存储在NORFLASH中的应用程序。这个怎么实现呢?实现方法:首先,按照上面的说法,我们需要在FLASH当中存储两部分内容,一部分为引导和配置程序(bootloder),这部分程序的作用是将FPGA配置成Microblaze;另一部分为应用程序(application),用来实现一定的功能例如流水灯程序。而事实上这点事很难做到的,因为存储在FLASH中的应用程序和配置程序并不是分离的,所以我们要采用“镜像法”。镜像法:那么什么是镜像法呢?这要从FPGA的工作方式说起。假若针对Spartan3E开发板,则:由于NORFLASH具有类似SRAM的接口,上电后可以直接像SRAM一样进行读操作,但却不能直接进行写操作。因此,应将只读段.code、rodata、sdata2、.sbss2指定到NORFLASH中,其余段指定BRAM中,这可以在GenerateLinkerScript对话框中完成。重新编译后生成新Bootable.elf文件。此时,Bootable.elf仍是一个整体,需要将其在物理上分为2个文件:一个存放只读段,另一个存放其余段。具体可以通过下面的操作实现。1.创建存储在BRAM中的镜像volatile.elf。2.创建存储在Flash中的镜像NOR_FLASH.bin3.将volatile.elf合并到系统配置比特流system.bit,生成dowload.bit,再经iMPCT转为MCS格式后下载到配置PROM中(若使用同一片NORFLASH,注意地址不能和bootable.elf发生地质空间冲突)。再将NOR_FLASH.bin通过ProgramFlashMemory对话框下载到NORFLASH中。这样系统上电并完成配置后,NORFLASH中的代码无需引导便可以直接执行。第3步中有两处地方要注意,第一处地方为MCS文件可以通过ProgramFlashMemory下载到NOR FLASH,第二处为bin文件可以通过ProgramFlashMemory下载到NORFLASH。但是问题是这个ProgramFlashMemory是专门针对Spartan3E的,而目前在网上也找不到针对Spartan3AN的专用的Flash烧写工具,所以我们要另寻它法。既然我们无法目前直接在NORFLASH上烧写MCS文件,那么我们至少要保证能够在NORFLASH上烧写ELF程序并且正常运行,按照之前的方法,我们可以将MCS文件放置到SPIFLASH中,而将ELF文件,烧写到NORFLASH当中以实现其功能。我们先降低要求,希望能实现的功能是,在FPGA已经配置成Microblaze的情况下(用IMPACT下载system.bit),希望Microblaze能够执行Flash中的程序。也就是先省去了配置FPGA为Microblaze这一步,但是即使是这一步,目前仍然没有实现,原因猜测可能是程序问题,也可能是其他问题。还存在的问题:NORFLASH的烧写网上有很多成功的例子,但是大多是针对Spartan3E开发板来讲,由于Spartan3E开发板有专门的烧写FLASH的程序(可以下载bin文件即前面提到的“镜像”文件等),但是Spartan3AN没有,而且我们的项目最终还是需要烧写uboot.bin文件,所以最终我们必须要解决烧写bin文件的问题或者如果可能的话寻找将bin文件转换为elf文件得方法也行。关于SPIFLASH烧写的进展情况:SPIFLASH的烧写情况怎么说呢,如果是针对1800AN来讲,烧写将非常简单,但是针对Spartan3AN来讲,就麻烦了一点,因为新版的ISE里面的IMPACT程序并不能直接识别开发板中的SPIFLASH,导致的直接结果是我们无法通过IMPACT将配置好的MCS文件下载进去!!如果仅仅针对开发板来讲,目前需要寻找能识别Spartan3AN开发板上的SPIFLASH的ISE版本,例如ISE11.0以前的版本都可以正常识别Spartan3AN开发板上的SPIFLASH。但现在官网上已经很难找到早期版本的ISE下载了,其他地方的破解版本也相对难找,当然,也不是完全找不到,正在找寻中。Spartan3AN开发板自带ISE9.2版本但是因为缺少序列号所以无法使用,在网上试图寻找该版本对应的序列号无果。不过这不是关键问题,毕竟用SPIFLASH配置FPGA应该是相当成熟的技术,问题以下详述。存在的问题:针对Spartan3AN开发板来讲,程序无法下载所以无法验证,但是用1800AN可以成功识别SPIFLASH并且完成下载,但验证工作尚待进行PS:开发板适合测试和验证,所以目前最好能解决开发板SPIFLASH下载的问题。待验证的工作还有:1.如果将elf文件和system.bit文件合并成download.bit文件,然后配置成mcs文件下载到SPIFLASH中,程序是否可以正常运行?(应该可行)2.如何将bin文件烧写到SPIFLASH当中?关于DDR2SDRAM烧写的进展情况:DDR2SDRAM的烧写使用的XMD,烧写问题不大,烧写之后的数据也可以验证其正确性,但是程序无法执行(无论是烧写elf文件还是烧写bin文件),但是烧写uboot.bin文件可以成功运行petalinux。所以初步怀疑是文件的问题,烧写方式没有问题。存在的问题:如何才能正确地将elf文件烧写到DDR2SDRAM并且成功执行?如何得到正确的bit文件烧写并成功执行?总结:因为我们目前要实现的是在FPGA配置为Microblaze的情况下,通过SPIFLASH或者NORFLASH存储对应的程序,使petalinux能正常运行。鉴于目前的情况,初步建议是采用SPIFLASH和NORFLASH相结合,用SPIFLASH来引导和配置FPGA,然后用NORFLASH存储应用程序,这样会降低不少难度。当然如果能解决NORFLASH烧写MCS文件的问题,就可以只使用一个外设FLASH。目前需要做的工作是烧写SPI、NORFLASH并保证其能正常工作,烧写DDR2SDRAM并保证其中的应用程序正常工作,当然,相关的工作还有很多诸如文件生成和文件格式转换问题等。 20110513实现功能实现以下功能:FPGA启动后能通过SPI将自身配置为Microblaze,然后再读取对应的应用程序实现功能。分步实现:1.FPGA读取SPI中的应用程序实现功能(例如流水灯等,用VHDL语言直接产生的bit文件测试)。说明,FPGA能够直接读取SPI中的数据并实现执行程序的能力。2.FPGA读取SPI中有关Microblaze的配置程序,将自身配置为Microblaze,如果1成立,那么2应该成立,然后用XMD检测是否配置成功。3.如果2成立,那么在将Microblaze配置程序和应用程序烧写到SPIFLASH中,应当能够执行,即实现了自身的功能。问题,怎样往Spartan3an的SPIFLASH中写入数据并运行程序,目前由于新版本的ISE(impact)并不支持该板SPI的直接下载,因此造成以上问题无法解决,另外,如果想往SPI中下载其他格式诸如BIN或者其他格式的文件。该如何处理呢? 20110523关于FLASH烧写教训其实之前已经有完整的FLASH烧写方法,但是由于我完全按照网上找来的步骤操作,没有仔细分析错误原因,最后就简单放弃,导致没有成功进行FLASH烧写,而另外一同事静下来分析出错的原因并且在稍微改变了操作步骤,最后成功了。简单分析原因以及教训:1.不能完全照搬网上资料或者其他地方查询到的资料,自己具体的情况要具体对待。2.遇到错误等,要按照提示区寻找原因而不是遇到错误就放弃。3.只查询一方面的资料是不利于解决问题的,同一个问题要查询多方面的资料才有利于解决。4.多人合作! 20110608决定改用uboot今天主要进行fs-boot等的程序启动,但是问题层出不穷,经过了将近一个多月的努力,我们终于是没有成功,已经准备放弃该方法了,打算尝试另外一个方法,直接使用uboot算了。但是依然会存在一些问题,目前正在解决中。 20110706在Microblaze软核上运行Petalinux关于在Microblaze软核上运行嵌入式Petalinux的进展虽然近期我查看了不少关于Linux相关的书籍和资料,也和小房等进行了不少关于项目等的讨论工作,但是近期这部分的工作进展比较缓慢,原因后续说明。由于图形化部分的工作基本上都是交给小鑫在做,小房和我几乎帮不上忙(因为我们两个对Linux核心等内容了解很少),而听小鑫说这部分的内容挺有难度,小房又表示这部分内容很关键,如果这部分工作难度较大的话,我们想继续进行深入会存在不少困难。参照目前的情况,我一边在学习Linux相关的知识,是希望能在我们这个项目中给小鑫一定的帮助;另一方面也正在学习VHDL的相关知识,希望自己能进一步提高自己VHDL方面的知识。另外关于项目经验总结等的工作,我仍然会继续关注和完善,如果项目有比较大的进展我也会及时修改和补充相关文档。如果还有其他方面的安排和指示还请农工及时告知。 20110712固态硬盘笔记刚刚把 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 过了一遍,如下:1. 我们需要做的固态硬盘的基本要求是什么?2. 存取速度多少有要求没?3. 使用温度范围有要求没?4. 使用方式是什么?5. 我们安装的XPS中并没有文中提到的两个IP核,SATAControl和NANDFLASHControl,应该可以在网上找到吧。6. 文中关于SATA协议部分的阐述非常详细而且复杂,我们是不是一定要应用这个协议?因为目前大多数电脑使用的协议都是SATA或SATA2。7. 数据可靠性传输部分非常复杂,甚至考虑到了硬盘坏块以及检验方法和应对措施,我们是否也需要?8. CrC校验和ECC校验部分如果有参考资料应该不难处理,但是问题是…9. 关于块擦出的问题,以前没碰到过。10. 如果想做成通用固态硬盘(不仅仅电脑上可以使用,电路板上也能或者其他能应用到存储设施的地方也能使用),估计文章中提到的那么多协议和数据传输存储处理方法都要做。 20110712可行性报告格式可行性报告格式1.首页:主要注明项目名称,项目主办单位及负责人,可行性研究单位名称,可行性研究的技术负责人,经济负责人,参加研究人员名单及报告完成日期等。  2.标题:一般直接注明可行性研究项目的名称和主要内容.3.前言:一般简要介绍项目研究的背景,项目实施的相关因素和主要目的和意义,可行性研究的主要依据和主要范围等内容,有些可行性报告还需要列出研究报告的相关摘要。4.正文:该部分是报告的主体,要求列举事实,运用系统分析方法,综合考虑个方面的因素,对项目实施的可行性做出客观,全面准确的预测,不同类型的可行性报告在该部分通常具有不同的侧重点。5.结论:在对项目进行可行性分析和预测的基础上。从整体角度做出科学评价,并与相关 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 进行优差比较,具终获得明确的行动主张,有时还就原法案提出一些更新,更全面的建议  6.附件:为了结论的需要,在可行性报告正文结束后补充的相关材料,主要包括实验,数据,计算浮标,图片表格等。特别提示  对可行性研究报告的写作要求主要包括以下四个方面:(1)设计方案。可行性研究报告的主要任务是对预先设计的方案进行论证,所以必须设计研究方案,才能明确研究对象。(2)内容真实。可行性研究报告涉及的内容以及反映情况的数据,必须绝对真实可靠,不许有任何偏差及失误。可行性研究报告中所运用资料、数据,都要经过反复核实,以确保内容的真实性。(3)预测准确。可行性研究是投资决策前的活动。它是在事件没有发生之前的研究,是对事物未来发展的情况、可能遇到的问题和结果的估计,具有预测性。因此,必须进行深入地调查研究,充分地占有资料,运用切合实际的预测方法,科学地预测未来前景。(4)论证严密。论证性是可行性研究报告的一个显著特点。要使其有论证性,必须做到运用系统的分析方法,围绕影响项目的各种因素进行全面、系统的分析,既要作宏观的分析,又要作微观的分析。 20110801关于文章写作根据内刊编辑相关人员的建议,别人委婉提出了我的文章容易存在的问题:1.文章容易脱节,前后连接不连贯,注意保持文章的连续性。而保持文章连续性的办法有,按照时间顺序,按照因果顺序,事情的发展顺序,一般这样容易保持文章的紧凑性。2.文章应该重点突出,比如去掉无关的小细节,重点描述与主旨相关的细节和内容。这点要慢慢培养,关于细节描述,可以多多使用修辞手法。 20110801学习C语言sfr并非标准C语言的关键字,而是Keil为能直接访问80C51中的SFR而提供了一个新的关键词,其用法是:sfrt变量名=地址值。 20110802OSI参考模型物理层数据链路层网络层传输层会话层表示层应用层 20110808C语言入门在KeilC中规定使用二个字节表示int型数据,因此,变量i在内存中的实际占用情况如下:0000,0000,0000,1010也就是整型数据总是用2个字节存放,不足部分用0补齐。在KeilC中规定使用一个字节表示char型数据,因此,变量c在内存中的实际占用情如下:使用keilC时,不论是char型还是int型,我们都非常喜欢用unsigned型的数据,这是因为在处理有符号的数时,程序要对符号进行判断和处理,运算的速度会减慢。对单片机而言,速度比不上PC机,又工作于实时状态,任何提高效率的手段都要考虑。 20110902点亮TFT屏幕的程序总结今天稍微写了下使用纯逻辑点亮TFT屏幕的程序,当然,因为是沿用原来的程序,所以工作量并不是很大,实际写的过程中,发现自己还是容易忘掉很多东西的,而且往往是忽略了一个细节就可能导致整个程序运行不成功。在昨天写程序的时候因为误输入了一个符号导致程序没有输出,后来仔细检查才得以发现错误并最终解决了问题。今天在写点亮TFT屏幕的程序的时候发现自己总是容易忘记了一些东西比如输出比如输入信号也容易忘掉。其实想了想总结一下,遇到问题并不可怕,静下心来解决就好了。 20110905约稿提示第四期《梦圆十五》主题——应届生、大运会、中秋、班组建设、比亚迪生活等,大家可围绕这些话题抒写感想,也可记录自己生活、工作中的点点滴滴,与我们共同分享~ 20110906点亮TFT在点亮TFT屏的过程中遇到了不少问题,实际解决问题起来也比较棘手,在排除了诸多因素之后,最后我们发现竟然是我们使用了错误的datasheet,说起来也是太粗心了,竟然犯了这样的错误,而且我们几个人一起谁也没有发现,最后是在对照讨论的时候才发现了。TFT点亮过程总结:测量行场同步信号使用正确的数据手册仿真的时候需要将mif文件放到仿真的根目录下 20110908编程之前画框架图今天科长告诉我们编程要养成写提纲画框架图的好习惯,这样有利于正题思路的展开和程序的深入,以后看程序也能方便一些。另外,要了解osd(图像重叠技术)的相关知识。 20110914日语学习1-5今天打算只学日语5个音节ぁかさたなァカサタナ 20110915日语学习6-10今天又学习5个音节,顺便把昨天的一起复习一下。我靠桑塔纳,蛤蟆压软娃。ぁかさたな.はまゃらゎァカサタナ.ハマャラヮ 20110916日语复习1-10先复习前面的10个音节。然后学习5个拓展音节,这5个拓展音节事实上不包括在50音节中。がざだばぱガザダバパ 20110919学习日语i音节今天基本上把i音的所有音节学会了。i音的音节包含15个。ぃきしちに.ひみぃりぃ.ぎじぢびぴィキシチニ.ヒミィリィ.ギジヂビピ 20110920日语五十音一半了ぅくすつぬゥクスツヌ 20110921日语第25-30ふむゅゐぅフムュルゥ 20110921日语复习第25-30ぐずづぶぷグズヅブプ 20110923日语五十音31-35ぇけせてねェケセテネ 20110924日语五十音36-40へめぇれぇヘメェレェ 20110925日语五十音复习前面ぇけせてねェケセテネへめぇれぇヘメェレェげぜでべぺグゼデベペ 20110926日语40-45ぉこそとのォコソトノ 20110927日语45-50ほもょろをホモノロヲ 20110928日语复习前面的ぉこそとのォコソトノほもょろをホモョロヲごぞどぼぽゴゾドボポ 20110929日语开始学习单词いいえ不是いえ家房子あき秋秋天ここ这里…かい…階…层ここ/そこ/あそこ此処/其処/~这里/那里/那里あなた貴方你ひと人人はい是この/その/あの这个/那个/那个いま现在あさ早上ねこ猫お休(やす)みなさい。晚安さようなら。再见ありがとうございます。谢谢すみません/ごめんなさい。  对不起お願(ねが)いします。            拜托 20110930日语单词学习きょぅ今天せんせい先生先生アメリカAmerica美国ほん本书きのう昨日昨天いくら幾ら多少钱みせる見せる看きもち心情いきます行きます去かえります帰ります回来にほん日本日本やすみ休み休息ともだち友達朋友だいじょうぶ大丈夫没关系べんきょう勉強学习コンピューターcomputer电脑げんき元気精神,健康かんぱい乾杯干杯かちょう課長科长がっこう学校学校かのじょ彼女女朋友、她では、また/ じゃ、また/じゃねぇ!再会。はじめまして、**です。   我是*,初次见面,どうぞ、よろしくおねがいします。请多多关照。 20111008日语单词学习わたし 私我わたしたち私達我们あなた貴方你この(あの)ひとあの人这/那个人その(あの)かたあの方这/那个人みなさん皆さん大家さん せんせい 先生 老师きょうし 教師 教师がくせい 学生 学生かいしゃいん 会社員 公司职员しゃいん 社員 公司职员ぎんこういん 銀行員 银行职员いしゃ 医者 医生けんきゅうしゃ 研究者 研究者エンジニア 工程师(engineer)だいがく 大学 大学びょういん 病院 医院でんき 電気 电/电气だれ 誰 谁どなた 谁…さい …歳 なんさい 何歳 几岁おいくつ 御幾つ 几岁はい/いいえ 是/不是 20111009日语简单句学习はじめまして、どうぞよろしくおねがいします。初めまして、どうぞよろしくお願いします。初次见面,请多多关照。 20111012C语言程序设计建议在每个main程序结尾加上return语句,如果不这样做,某些编译器会给出警告信息。如果几个变量具有相同的类型,就可以把他们合并申明:intheight,length,width,volume;floatprofit,loss;每一条完整的申明语句都应该以分号结尾。 20111013C语言短路计算短路计算的优势(i!=0)&&(j/i>0);i>0&&++j>0等价于((i>0)&&(++j))>0c语言不同与其他语言的地方,在if语句中,右侧没有then类似的字符而是直接是下面的语句。为了判定0<i<m应该写做if(0<i&&i<m)而不能写成if(0<i<m)if+条件+语句,语句可以是复合语句(用大括号),复合语句中的每条语句都以分号结尾,但是复合语句本身不以分号结尾。?条件运算符的优先级很低,所以一般情况下我们会用小括号将其括起来。 20111013scanf的录入方式scanf("%d%d%f%f",&i,&j,&x,&y);如果用户输入的是1-20.3-4.0e3回车则,对应的存储情况为i=1,j=-20x=0.3y=-4.0e3,这跟scanf的格式化录入有关。让我们来执行下面一段程序看看发生了什么。scanf("%d,%d",&i,&j);scanf函数将首先寻找输入中的证书,把这个证书存入到变量i中。然后,scanf函数将驶入把逗号与下一个输入的字符相匹配。如果下一个输入的字符是空格而不是逗号,那么scanf函数将不在读取变量j的值而是终止操作。 20111013日语发音种类青碧桌板袄长醋清音鼻音浊音半浊音拗音长音促音 20111014关系比较陷阱关系表达式i<j<k在C语言中是合法的,但它通常不是你所期望的意思,因为运算符是左结合的,所以这个表达式等价于(i<j)<k;那么,正确的表达式应该是i<j&&j<k; 20111017关系运算符优先级运算符&&和运算符||的优先级低于关系运算符和判断运算符,运算符!是右结合的,而运算符&&和运算符||都是左结合的。 20111018关于读写整型变量时读或者写短整型数时,在d、o、u或者x前面加上字母h:scanf("%hd",&s);在读或者写长整型数时,在d、o、u或x前面加上字母l:printf("%ld",&l); 20111018基本类型缩写除非额
本文档为【秋月的笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_799987
暂无简介~
格式:doc
大小:119KB
软件:Word
页数:162
分类:
上传时间:2018-03-22
浏览量:39