C库(C 标准函数库(C Standard library))是什么?具体我也不知道!还是去看wiki吧!
看完上面的,下面我来说说为什么要用C库,因为我在写一个单片机程序时发现我定义的全局变量无法初始化为我想要的初始值(就比如说我要的int t=30;结果却是0或是别的),而局部变量却可以,然后我去看了看ST公司所提供的启动文件(因为我用的单片机是STM32F0系列单片机),看到他调用的函数是“__main”,结果我在自己写的启动代码中把“main”改为“__main”,全局变量就初始成我想要的值了。
想了解ARM的c库的话:RealView 编译工具 库和浮点支持指南
Keil的MDK跟RealView一样,所以不想看英文的帮助文档的话,那么可以去看RealView的中文帮助文档!中英文帮助手册结合来看更不错!
2014年4月26日星期六
2014年4月21日星期一
STM32F0中RTC的吐槽
妈蛋,ST的手册烂到极点,在RTC部分,只说了有Tamper detection功能,描述了一下它的检测机制和产生中断,但是没说清楚这功能的作用是啥;还有备份功能部分也没说出来,唉,一个太烂的手册!
还不如这个网站说的清楚:成大資訊工程系所 Wiki 系統
难道详细说明在那些STM32F1或者STM32F3的参考手册里?
还不如这个网站说的清楚:成大資訊工程系所 Wiki 系統
难道详细说明在那些STM32F1或者STM32F3的参考手册里?
2014年4月20日星期日
文件系统(filesystem)
Fat32 detailed description(谷歌搜索关键字):
http://www.diydatarecovery.nl/kb_mbr_article.htm
http://www.easeus.com/resource/fat32-disk-structure.htm
在ST上找到的(关键字fat32):
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00105259.pdf?s_searchtype=keyword
http://elm-chan.org/fsw/ff/00index_e.html
FAT32 Specification(关键字):
在ST上找到的(关键字fat32):
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00105259.pdf?s_searchtype=keyword
http://elm-chan.org/fsw/ff/00index_e.html
FAT32 Specification(关键字):
https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CBwQFjAA&url=%68%74%74%70%3a%2f%2f%6d%73%64%6e%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%65%6e%2d%75%73%2f%67%67%34%36%33%30%38%30%2e%61%73%70%78&ei=cR3EU8L9Nc3TkAW5_ICgBA&usg=AFQjCNGg9ydL9tW5KoggmbzN4kzVyNQQdQ&sig2=8bV3oeu1IaLyBMokfWSa0g
要创建文件的话要了解“File format”:http://en.wikipedia.org/wiki/File_format
标签:
储存,
嵌入式,
文件系统,
filesystem
2014年2月12日星期三
CRC;Cyclic redundancy check;循环冗馀校验
由于STM32系列的单片机内嵌了CRC模块,所以特意去查了一下!毕竟这是鬼佬的东西,建议大家还是去英文版的维基百科看看,那些中文的维基百科翻译者翻译的有些不靠谱,但是可以作为参考来看!
摘自英文版的维基百科中的CRC的Introduction部分:
Specification of a CRC code requires definition of a so-called generator polynomial. This polynomial resembles the divisor in a polynomial long division, which takes the message as the dividend and in which the quotient is discarded and the remainder becomes the result, with the important distinction that the polynomial coefficients are calculated according to the carry-less arithmetic of a finite field. The length of the remainder is always less than the length of the generator polynomial, which therefore determines how long the result can be.
个人翻译(水平有限,辅助工具谷歌翻译和必应翻译):
CRC码的规范要求定义一个所谓的“生成多项式”。这“生成多项式”类似于“多项式长除法”中的除数,“消息”当作被除数,而“商”丢弃不用,其“余数”就是结果,其最大的区别是该“生成多项式”的“系数”被计算为相应的无进位算法(carry-less:无进位)的有限域。其“余数”的长度总是小于“生成多项式”的长度,因此可以判断“余数”的最大长度。
更多详情请参阅英文版维基百科,中文版的可以作为参考!
要想了解CRC的计算过程和方法,请看CRC维基百科中的Computation of CRC部分!
摘自英文版的维基百科中的CRC的Introduction部分:
Specification of a CRC code requires definition of a so-called generator polynomial. This polynomial resembles the divisor in a polynomial long division, which takes the message as the dividend and in which the quotient is discarded and the remainder becomes the result, with the important distinction that the polynomial coefficients are calculated according to the carry-less arithmetic of a finite field. The length of the remainder is always less than the length of the generator polynomial, which therefore determines how long the result can be.
个人翻译(水平有限,辅助工具谷歌翻译和必应翻译):
CRC码的规范要求定义一个所谓的“生成多项式”。这“生成多项式”类似于“多项式长除法”中的除数,“消息”当作被除数,而“商”丢弃不用,其“余数”就是结果,其最大的区别是该“生成多项式”的“系数”被计算为相应的无进位算法(carry-less:无进位)的有限域。其“余数”的长度总是小于“生成多项式”的长度,因此可以判断“余数”的最大长度。
更多详情请参阅英文版维基百科,中文版的可以作为参考!
要想了解CRC的计算过程和方法,请看CRC维基百科中的Computation of CRC部分!
![]() |
| 此图出处 |
!!!特别注意!!!
寄存器CRC_INIT中的值对于你所求的值很重要,当CRC_INIT中的值不同时,你在CRC_DR中得到的值就不同,建议每次计算一个新的的数据流时使用CRC_CR寄存器中的RESET位重置一下CRC_DR再计算。
例如,如果CRC_INIT的值为0xFFFFFFFF的话,重置CRC后(通过设置CRC_CR中的RESET位),输入0x1a2b3c4d到CRC_DR后,所得到的值是0xB88C7830;如果CRC_INIT的值为0,重置CRC后向CRC_DR写入0x1A2B3C4D会得到的值为0x7F88A54B。
例如,如果CRC_INIT的值为0xFFFFFFFF的话,重置CRC后(通过设置CRC_CR中的RESET位),输入0x1a2b3c4d到CRC_DR后,所得到的值是0xB88C7830;如果CRC_INIT的值为0,重置CRC后向CRC_DR写入0x1A2B3C4D会得到的值为0x7F88A54B。
2014年2月4日星期二
2014年1月28日星期二
ARM的IO口(GPIO)
ARM的GPIO(相当于51的IO)连接在AHB decoder上,那在使用之前就要设置时钟,它有很多种模式:1.Input mode,2.General purpose output mode,3.Alternate function mode,4.Analog mode;还有很多连接模式(芯片内部的连接方式),更多详细信息请查看相关芯片厂商的芯片引用手册(如:STM32F0 Reference Manual)
而51的io口不用设置,直接可以作为输出输入或者特殊的外设的IO口使用!
各有各的好处!
而51的io口不用设置,直接可以作为输出输入或者特殊的外设的IO口使用!
各有各的好处!
ARM Cortex-M0的时钟
ARM的时钟有很多种,驱动cpu,看门狗和不同的外设等;时钟(clock)有:HSI(内部高速时钟),HSE(外部高速时钟),LSE(外部低速时钟),LSI(内部低速时钟),PLL(锁相环);相关详细时钟和芯片的内部时钟树(clock tree)在ST的引用手册上的“Reset and Clock Control(rcc)”章节中能找到。
而51的则不同,只有HSI,HSE。
而51的则不同,只有HSI,HSE。
订阅:
博文 (Atom)
