志盟吧 关注:115贴子:868
  • 9回复贴,共1

有没有人来探讨嵌入式问题

只看楼主收藏回复

我先来说,
闪存(nand flash等)和内存(sdram)区别
闪存就相当于硬盘 像u盘 tf卡 等等都使用闪存芯片 可以储存数据
内存比闪存效率高很多 但断电后数据会消失 一般使用在pc上


1楼2017-11-14 11:52回复
    哈哈哈哈 嵌入式不太懂


    2楼2017-11-21 13:16
    收起回复
      存储器和寄存器的区别
      寄存器是CPU里的存储单元,与CPU离得近,所以CPU在运算时通常都会用寄存器当中转站。存储器是在CPU外部的存储器,分为RAM,ROM。
      对单片机来说,因为存储器,CPU都在一个片内,所以寄存器是片内RAM的一部分。
      存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。
      内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器。现在的DDR2内存的读写速度一般为6~8GB/S,跟机器性能也有关系。
      而寄存器(又称缓存)一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,一般整合在CPU内,其读写速度跟CPU的运行速度基本匹配,但因为性能优越,所以造价昂贵,一般好的CPU也就只有几MB的2级缓存,1级缓存更小。使用寄存器可以缩短至零长度、节省存储空间,提高指令的执行速度。不同的寄存器有不同的作用,如:通用寄存器(GR)用以存放操作数、操作数的地址或中间结果;指令寄存器(IR)用以存放当前正在执行的指令,以便在指令执行的过程中,控制完成一条指令的全部功能。
      CPU计算时,先预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。最理想的情况就是CPU所有的数据都能从寄存器里读到,这样读写速度就快,如果寄存器里没有要用的数据,就要从内存甚至硬盘里面读,那样读写数据占的时间就比CPU运算的时间还多的多。所以评价一款CPU的性能除了频率,缓存也是很重要的指标。
      存储器是用来永久存放数据的设备,应该很好理解。硬盘、u盘都是存储器
      寄存器是汇编语言里放计算数据用的临时单元地址。比如有两个寄存器a和b, a里放了2,b里放了3,那么可以用汇编指令把a和b相加,并把计算结果放到c里,所以寄存器是内存范畴的。
      寄存器是存储器中的一类。
      存储器的概念比寄存器广泛,计算机中用于存储程序和数据的器件都可以称为存储器。
      寄存器是位于CPU内部的存储器件,数量很少,但是数据读写速度很快。
      寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。
      存储器插在主板上,容量大,速度慢;寄存器位于cpu内部,是cpu运算时取数据的地方,所有数据必须从存储器传入寄存器后,cpu才能使用。寄存器容量非常小,但cpu使用寄存器中的数据几乎没有任何延迟,速度非常快


      3楼2017-11-24 10:44
      回复
        汇编语言里的LDR和STR
        LDR:从内存中读取数据放入寄存器中 LDR r0,=0x56000000 ,LDR r0,[r1]和mov r0,#0x0ff的区别:=0x56000000和[r1]表示内存(类似指针),而#0x0ff表示立即数
        STR:将寄存器中的数据存到内存中
        STR r1,[r0]表示将寄存器r1中的数据存入由寄存器r0指向的内存中


        4楼2017-11-28 10:18
        回复
          你们是在志盟学习的么?我前天收到个邮件,说是可以集训三个月之类的,不知道是什么情况,你们知道么?


          5楼2017-11-30 16:31
          收起回复
            用nfs文件系统启动开发板步骤:
            1、在根目录下创建共享目录nfsroot(不一定是根目录)
            2、将busybox生成的目录(bin,dev,etc)放到nfsroot目录下。
            3、配置nfs服务器,在/etc/exports目录里配置共享目录:/nfsroot *(rw,sync,no_subtree_check),配置完成后,重启nfs-server服务:sudo /etc/init.d/nfs-kernel-server restart
            4、在uboot命令行里reset参数rootargs:noinitrd root=/dev/nfs nfsroot=196.168.1.3:/nfsroot ip=196.168.1.2:196.168.1.3:196.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
            5、直接启动就行了:boot
            若出现kernel panic或nfs: server 196.168.1.3 not responding, still trying这种问题,可将nfs目录里的/etc/init.d/rcS里的ifconfig ethx xx注释掉就行了。
            用nfs文件系统启动开发板步骤和在操作系统里用mount -t nfs -o nolock,vers=2 196.168.1.3:/nfsroot /mnt挂接nfs操作不一样。


            6楼2017-12-01 14:47
            回复
              用nfs文件系统启动开发板步骤:
              1、在根目录下创建共享目录nfsroot(不一定是根目录)
              2、将busybox生成的目录(bin,dev,etc)放到nfsroot目录下。
              3、配置nfs服务器,在/etc/exports目录里配置共享目录:/nfsroot *(rw,sync,no_subtree_check),配置完成后,重启nfs-server服务:sudo /etc/init.d/nfs-kernel-server restart
              4、在uboot命令行里reset参数rootargs:noinitrd root=/dev/nfs nfsroot=196.168.1.3:/nfsroot ip=196.168.1.2:196.168.1.3:196.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
              5、直接启动就行了:boot
              若出现kernel panic或nfs: server 196.168.1.3 not responding, still trying这种问题,可将nfs目录里的/etc/init.d/rcS里的ifconfig ethx xx注释掉就行了。
              用nfs文件系统启动开发板步骤和在操作系统里用mount -t nfs -o nolock,vers=2 196.168.1.3:/nfsroot /mnt挂接nfs操作不一样。


              7楼2017-12-06 14:33
              回复
                NOR与NAND的区别
                1、NOR的读速度比NAND稍快一些。
                2、NAND的写入速度比NOR快很多。
                3、NAND的擦除速度远比NOR快。
                4、NAND的擦除单元更小,相应的擦除电路更加简单。
                5、NAND的实际应用方式要比NOR复杂的多。
                6、NOR可以直接使用,并在上面直接运行代码,而NAND需要I/O接口,因此使用时需要驱动。


                8楼2017-12-13 14:07
                回复