1
Make
Arm-linux-gcc
Arm-none-linux-gnueabi-gcc;start.o:no
Arm-none-linux-gnueabi-gcc;no
Make:***
经过检查发现错误:
在编译时把
修改成
二:在编写makefile文件时要时刻注意空格键与tab键到底用的是那个;我遇到的是在以下代码中
B
B
A
B
A
B
C
D
B
经过本人验证:
在A处前面的空格要一空格键打出,不然就会出现错误
在B处的空格要以tab键打出,不然显示的是
在C处tab键和空格键那个都不报错,但若用了tab键clean将不起作用
在D处虽然tab键和空格键都不报错,但
在语句里面空格键那个都行
三:在循环点亮led时我写的以下延时程序虽无错误但无法点亮led;
Int time;
dely(time)
{
for(;time>0;time--)
;
}
当我修改到以下程序时就可以点亮了:
dely(int time)
{
for(;time>0;time--)
;
}
总结:用C编写相关的功能函数时,若将变量定义在函数外面,有可能对实现该功能造成影响!
四:一个细节,一旦粗心就会出错,在使用或配置寄存器时要看看之前宏定义时的方式 比如:#define NFSTAT (volatile unsigned char *)0x70200028
在使用时要用*(NFSTAT)配置或传参
而#define *(NFSTAT (volatile unsigned char *)0x70200028)
使用时要用NFSTAT配置或传参
不然可能会出现操作数无效或无法计算的错误
五:出现underfined reference to ‘xxxxxx’的问题
在建立串口控制台时,第一由于是初次在文件中套文件 即一个文件上级makefile要链接下级makefile所以会出现问题,
我出现的问题是第一次有一个函数书写错误导致编译不通过,但改正之后还是同样的错误!经过不断地测试;我发现当我挨个将每个文件或出现问题的文件make clean 即清除一下之后就ok了,而且如果不这样做,在上级直接make clean是不会clean掉下级中的文件的,然后再make,一般就好了!
六:linux编译时遇到警告:检测到时钟错误,您的创建可能不完整
在root的终端输入find . -type f -print | xargs touch即可。。。
在有的网页上看到find . -type f -exec touch{}\;这个我一回车马上提示exec缺少参数,不知道是怎么回事,不过现在先有个感观上的认识吧,然后慢慢的深究,一定能找到原因的。。。