2013年4月19日
摘要: 有误或者表述不清楚请指出,谢谢 硬件:TQ2440开发板、jlink V8 固件 软件:J-LINK ARM 4.08i、MDK4.20先解释下MDK中三种linker之间的区别设置集中在option linker选项卡 1.采用Target对话框中的ram和rom地址。采用此方式,需在linker选项卡中的Use Memort Layout fromTarget Diaglog选项选中,并且在Target中设置好ram、rom地址。MDK会根据Target对话框中设定的ram和rom地址自动生成一个分散加载文件。最后链接器会根据此文件中的信息对目标文件进行连接,生成axf文件。如下图:... 阅读全文
posted @ 2013-04-19 12:00 阿逸 阅读(1217) 评论(0) 推荐(0) 编辑
摘要: 开发板也差不多买了半年了, 以前照着教程用的是软件是ADS,在win7下老是崩溃, 后来才知道ADS早就不提供支持了, ADS的公司怎样怎样了...(此处省略300..) 然后我就捣鼓着怎么转到KEIL上来, 具体的例程代码我不会移植, 不过裸机开发是没什么问题的了, 在网上也找了些教程, 因为我比较菜, 然后教程又不是针对TQ2440的, 也有针对TQ2440的, 内容不全, 前段时间一直看不懂, 无奈, 捣鼓了好长时间, 终于明白了, 然后就想写一份文档, 造福一下和我一样用TQ2440的后人~主要内容有: 1 准备工作 2.JLINK SDRAM调试 3.JLINK 烧写NOR Fla. 阅读全文
posted @ 2013-04-19 10:36 阿逸 阅读(345) 评论(0) 推荐(0) 编辑
  2013年4月11日
摘要: 板子是s3c2410,使用两片容量为32MB、位宽16bit的HY57V561620CT-H芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet,要使用SDRAM需配置13个寄存器,以下逐个来看:1、 BWSCON:Bus width & wait status control register总线位宽和等待状态控制寄存器。此寄存器用于配置BANK0 – BANK7的位宽和状态控制,每个BANK用4位来配置,分别是:● ST(启动/禁止SDRAM的数据掩码引脚。对于SDRAM,此位置0;对于SRAM,此位置1)● WS(是否使用存储器的WAIT信号,通常置 阅读全文
posted @ 2013-04-11 23:28 阿逸 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 板子是s3c2410,使用两片容量为32MB、位宽16bit的HY57V561620CT-H芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet,要使用SDRAM需配置13个寄存器,以下逐个来看:1、 BWSCON:Bus width & wait status control register总线位宽和等待状态控制寄存器。此寄存器用于配置BANK0 – BANK7的位宽和状态控制,每个BANK用4位来配置,分别是:● ST(启动/禁止SDRAM的数据掩码引脚。对于SDRAM,此位置0;对于SRAM,此位置1)● WS(是否使用存储器的WAIT信号,通常置 阅读全文
posted @ 2013-04-11 22:11 阿逸 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloader给删除了,这时候开发板上电后由于没有bootloader,硬件没有被初始化,在NAND Flash中的操作系统也就无法被加载,开发板成“砖”了,这时候笔记本又无法利用JTag烧写程序进Nand Flas 阅读全文
posted @ 2013-04-11 22:08 阿逸 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 1、arm-linux-gcc在命令arm-linux-gcc后面跟一个或多个选项,选项间用空格隔开,然后跟一个或多个目标文件。例如,将test.c 编译成目标文件test.o 并且生成调试信息:arm-linux-gcc–g –c –o test.o test.c命令选项列表输出控制选项:-c 将输入的源文件编译成目标文件-S 将C/C++文件生成汇编文件-o file 将输出内容存于文件file-pipe 在编译的不同阶段之间采用管道通讯方式-v 打印出编译过程中执行的命令-x language 说明文件的输入类型为languageC语言选项:-ansi 支持所有ANSI C程序警告选项: 阅读全文
posted @ 2013-04-11 21:23 阿逸 阅读(480) 评论(0) 推荐(0) 编辑
  2013年4月1日
摘要: Linux系统中,文件和设备都被看作是数据流。要对流访问,需要stdio库提供的函数和文件指针FILE来实现。当程序执行时,有3个流回自动打开,分别是标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr),结束时他们也会自动被关闭。函数fopen 打开一个文件FILE * fopen(const char * path,const char * mode);返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。 一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行 阅读全文
posted @ 2013-04-01 21:49 阿逸 阅读(353) 评论(0) 推荐(0) 编辑
摘要: write(将数据写入已打开的文件内)ssize_twrite (int fd,const void * buf,size_t count);write()会把参数buf所指的内存写入count个字节到参数fd所指的文件内。当然,文件读写位置也会随之移动如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。open(打开文件)int open( const char * pathname,int flags,mode_t mode);参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的标志位:O_RDONLY 以只读方式 阅读全文
posted @ 2013-04-01 10:51 阿逸 阅读(680) 评论(0) 推荐(0) 编辑
摘要: #include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <signal.h>#include <stdarg.h>#include <fcntl.h>void parent(char *argv[]);void child(char *argv[]);int write_buffer(int f 阅读全文
posted @ 2013-04-01 09:51 阿逸 阅读(191) 评论(2) 推荐(0) 编辑
  2013年3月31日
摘要: #include <sys/types.h>#include <linux/ipc.h>#include <linux/shm.h>#include <linux/sem.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <signal.h>#define SHMDATASIZE 1000#define BUFFERSIZE (SHMDATASIZE-sizeof(in 阅读全文
posted @ 2013-03-31 21:41 阿逸 阅读(185) 评论(0) 推荐(0) 编辑