ARM技术论坛
直播中

王利祥

7年用户 1339经验值
私信 关注
[问答]

新手求助ARM超级终端始终没有显示是为什么

小弟刚开始学习ARM,借了个FFT--S3C2410的试验箱,按照说明接好了线,超级终端也设置好并连接上了,仿真器FFT-ICE也能下载程序,并能够单步调试,但是在进行整板各模块测试时,超级终端始终没有显示,为什么呢????急!!哪位大哥大姐在学习ARM中时是否也遇到过同样 的问题??如何解决的?或有和建议,恳请不吝赐教指导。多谢了!!!!
bootloader不就是启动代码吗?即2410init.s文件吗?我将2410test.mcp工程中所有文件编译后用AXD调试,程序中有对串口的初始化的呀。我不知道bootloader跟启动代码有什么区别和联系?在不用操作系统交叉开发环境下也要下载bootloader?开发板是预先装Linux的,如果预装 的U-boot和Linux都没有了,也不能开发无操作系统的程序吗?比如一些LED,数码管,按键的测试程序。

回帖(3)

chunhuahua

2022-7-14 11:50:47
1、检查串口有没有正确设置,如波特率、校验位和流控制。
2、程序中是否有对串口正确初始化?如果有BootLoader,这一工作应该由BootLoader来完成,则需检查BootLoader,或者可能根本就没有BootLoader,而你的程序也没有对串口进行初始化,当然就不会有输出了
bootloader是启动代码,裸机跑程序时bootloader指的就是2410init.s,有u-boot或其他bootloader时2410init.s只是bootloader的一部分。它的功能是:初始化中断向量表,初始化堆栈,初始化工作模式,如果代码是烧在ROM上的,还负责把代码搬到RAM上,跳转到main。网上有详细解释2410init.s文件的文章,自己去看一看。
在不跑操作系统时,也是要bootloader的,上面一段已经粗略提了一下它的功能,无操作系统时也需要它。
用不用交叉编译器跟有没有bootloader,没有什么必然联系,无论你在windows的ADS上或者是linux下开发ARM的程序,反正你一编译,就是交叉编译,只是在windows下ADS这些IDE会为你解决这一问题,你要做的只是按一下编译那个图标,而linux下要自己键入arm-linux-gcc而已。
如果开发板预装的u-boot没有了,那你建立工程文件的时候,你2410init.s这些文件,就不能省了,因为要靠它们来引导程序。如果有u-boot或其他bootloader,那你只要交叉编译出一个可执行文件,通过u-boot烧进板子,烧在RAM就go一下,烧在flash就boot,就OK了。
回到串口的问题,如果你真发现有对串口初始化,那就检查下是否正确初始化,或者端口正不正确。
举报

其实znvm

2022-7-14 11:50:55
无操作系统的情况下,除非你在程序里用UART,否则串口就应该是没输出的,因为你没有让它有输出!
举报

而无返还

2022-7-14 11:51:05
串口没接好,换个端口试试
举报

更多回帖

发帖
×
20
完善资料,
赚取积分