C语言循环加法,使用Embest IDE 编写简单的C语言程序,嵌入式系统1、 实验内容或题目利用命令脚本初始化栈指针,并使用c 语言完成延时函数。(1) 执行实验指导书3.5工程程序,写出程序实现的功能,程序变量i,j的变化过程(2) 写出一个C程序,实现循环加法的功能。定义整型数组S[8]={1,2,3,4,5,6,7,8},执行8次循环加法运算,结果存放回s[8]数组。
2、实验目的与要求 学会使用Embest IDE 编写简单的C 语言程序并进行调试; 学会编写和使用命令脚本文件; 掌握通过memory/register/watch/variable 窗口分析判断运行结果。3、 实验步骤与源程序 ⑴ 实验步骤1) 参考前面实验创建新的工程(工程名为C1);2) 按照参考程序,编写源文件C1.c 和C1.cs,并把它们加入工程里面。C1.cs 加在工程根目录即可。3) 参考前面例子进行标准的设置,其中需要注意的是,在调试Debug 对话框设置的时候,增加连接后自动执行脚本文件: 4) 参考前面实验步骤进行编译;5) 下载,打开Memory/Register/Watch/Variable 窗口,单步执行,通过memory/register/watch/variable窗口分析判断结果,在watch 框中输入要观察变量I 和变量J 的值,并记录下来。特别注意在variable 窗口观察变量I 的变化并记录下来;6) 结合实验内容和相关资料,观察程序运行,通过实验;7) 理解和掌握实验后,完成实验练习题。
⑵ 源代码题目一:0x00008000 mov ip, sp0x00008004 stmdb sp!, {fp, ip, lr, pc}0x00008008 sub fp, ip, #40x0000800c sub sp, sp, #40x00008010 mov r3, #50x00008014 str r3, [fp, -#16]0x00008018 ldr r0, [fp, -#16]0x0000801c bl 0x80240x00008020 b 0x8018delay :题目二:_main(){int s[8]={1,2,3,4,5,6,7,8}; int i,j; int sum=0; for(i=0;i<8;i++) {for(j=0;j<8;j++) {sum+=s[j]; } s[i]=sum; //printf("%d",s[i]);}} 4、 测试数据与实验结果(可以抓图粘贴)1.CPU临时停止,完成延时nTime 0x5 0x5 0x5 0x5……0x5 0x5 0x5……0x5 ………i 0x8034 0x5 0x5 0x0……0x0 0x1 0x1……0x1 ………j 0x8020 0xa 0x0 0x1……0x9 0xa 0x0……0x9 ………2.实现循环加法s 0xfd0s[0] 0x24s[1] 0x6bs[2] 0x11bs[3] 0x2e3s[4] 0x78as[5] 0x13b6s[6] 0x3392s[7] 0x86f9
i 0x8j 0x8sum 0x86f9
5、 结果分析与实验体会 此次是第二次嵌入式系统上机实验,主要的做的是C程序实验。第一题是实现CPU临时停止,完成延时。第一题并不难,将原程序打开运行下,便能得出结果。其中,我们观察i,j的变化,当在程序运行到循环中时,需要按step into进入后续程序,刚开始并不了解,后来再老师的指导下完成了验证。第二题是编写一个简单的C程序,实现循环加法功能,程序还算简单,但有许多细小之处值得注意。如首先main前需加个下划线之类的。 总之,本次实验完成并不困难。学校为我们提供了实验仪器,我们需充分利用。当然,我们还需在以后的实验中更加努力。219