参考:
emmc的擦写次数是有限的,一般使用久了速度会变慢。
是因为emmc内部数据处理变慢了。
我们可以从寄存器中获知,状态寄存器data0一直为0,即data0一直为拉低的状态,data0一直是busy的状态,就会出现传输数据(一般是写超时)超时,这个是因为emmc老化导致内部处理的数据变慢,一直在处理数据,不让主机在往里面写。
eMMC真正的存储media还是NAND Flash, 而NAND又分为SLC、MLC和TLC。
目前市场上主流的eMMC还是以MLC的NAND为主,而TLC的eMMC也在逐漸的增加。
目前市场上的MLC,擦除次数大概在3000~5000cycle。
而SLC的擦除次数则在25000~40000cycle。
所以,SLC要比MLC效率高,更稳定。
emmc有11根通讯总线:
时钟。一个周期内,传输1bit或2bit。
单向。
主机向设备发送的信号,clock操作在推挽模式下
设备给主机的信号,数据选通操作在推挽模式。
仅仅存在于HS400 mode。2 bit传输(上升沿+下降沿)。
双向。
主机和设备驱动有开漏和推挽二种模式。
用于传输command(host->device)和response(host<-device)。
有两种mode: open-drain:initialization mode
push-pull:fastcommand transfer
双向。
主机和设备驱动都是在推挽模式下(data0默认为拉高的状态)
注意: 由于涉及到高速信号应用,layout时,CLK/CMD/DX信号,要进行长度匹配(等长),阻抗匹配(50欧姆)。
和Device有关的6个寄存器:
定义了VDD电压和访问mode。
定义了Device ID。
定义了data format,data transfer speed,Max_read/write_current@ VDDmin/VDDmax等等。
定义Device属性和可选择的mode。共有512 bytes。
低192 bytes——定义了mode,host可以通过SWITCH命令进行修改。 如,byte 179定义了可以boot的partition,byte 177定义了boot时的bus width。
RCA
eMMC、SD卡的分区:
通过Extend CSD register [179] bit[5:3] 可以选择boot的区域有:partition 1/2,user area。
细节请参考下文中“High-speed eMMC bus function”的“Bus initialization”。
参考A.6 High-speed eMMC bus function的操作步骤。 共包括3个主要步骤:
继任者: Julia, Python, R。
Which numerical computing language is best: Julia, MATLAB, Python or R?
全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?
有个国产软件号称不错,没有用过: truffer
插件列表:
快捷键:
refer link Use ssh client from Git instead of Windows inbuilt SSH client. E.g. set VS Code to use C:\Program Files\Git\usr\bin\ssh.exe instead of C:\Windows\System32\OpenSSH\ssh.exe.
Steps:
In VS Code navigated to [File] -> [Preferences] -> [Settings] -> Search remote.ssh.path Input C:\Program Files\Git\usr\bin\ssh.exe Alternatively:
Update PATH environment variable to point to Git bin before Windows System32. Type “env” in Start bar to edit System (or account) environment variables. Select Path and hit edit. Add C:\Program Files\Git\usr\bin\ssh.exe to the list and move it to the top of the list.
单向登陆的操作过程(能满足上边的目的):
1、登录A机器
2、ssh-keygen -t [rsa | dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub |
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub » ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )
解决方案:
windows命令行下:
SET REMOTEHOST=username@hostname
scp %USERPROFILE%.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub ssh %REMOTEHOST% “mkdir
-p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys
&& chmod 600 ~/.ssh/authorized_keys
&& rm -f ~/tmp.pub”
如果此方法不行,可直接登录服务器去创建修改 /.ssh/authorized_keys
解决方案:
在VS code工具栏File->preference->settings搜索 remote.SSH.showLoginTerminal,并*勾选上
解决方案:
在 /etc/ssh/sshd-config更改AllowTCPForwarding - yes
解决方案:
确认如下三个权限是否正确(显示隐藏文件命令:ls -la)
【1】
chmod 700 /home/username
【2】
chmod 700 ~/.ssh/
【3】
chmod 600 ~/.ssh/authorized_keys
确认public_key在服务器上是否正确:cat ~/.ssh/authorized_keys
连接ssh server时,即使输入正确的密码,仍然有以上提示。
解决方法:
在TERMINAL中,首先,手动登录:
ssh 用户名@服务器地址
输入密码,登录成功后。
然后,再次连接ssh server,就可以成功了。
参考:原贴
$cd ~/.vim/plugged/
$git clone http://www.github.com/kana/vim-textobj-user
安装上这个插件就OK了.
vim .vimrc
配置let g:ycm_server_python_interpreter = ‘‘pthon3绝对路径’ 比如: let g:ycm_server_python_interpreter = ‘/usr/bin/python3.5’
参考了以下的贴子
一般只改用户家目录下面的 .vimrc 此配置文件只针对用户有效。 更改后需使用su - 用户名 来使配置生效(例如 su - zhang3)。
.vimrc为隐藏文件 使用ls -al可查看。
" update cscope index
map <F12> : call ReConnectCscope()<cr>
func! ReConnectCscope()
exec "cs kill 0"
exec "!./generate.sh"
exec "cs add cscope.out"
endfunc
其中,generate.sh文件要放到你自己当前的工作目录下,并更改文件属性为可执行文件。
$ chmod +x generate.sh
generate.sh文件的内容如下:
#!/bin/bash
date;
echo "ctags done......"
find -L . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name
find -L . -name "*.pl" >>cscope.files
date;
cscope -RCbq -i cscope.files;
ctags -R -L cscope.files;
echo "cscope done......"
date;
在你正在编辑文件过程中,按F12按键,开始更新cscope索引
回车
回车
cscope索引更新完成!
参考:原贴