当前位置: 编程技术>软件工程/软件设计
本页文章导读:
▪Maven4MyEclipse 搭建ssh2+extjs项目(2)加入struts2支持 1.编辑pom.xml
2.添加log4j.xml
3.编辑web.xml
4.添加struts.xml
ok,测试成功
作者:zsStudio 发表于2013-4-11 17:18:07 原文链接
阅读:0 评论:0 查看评论
......
▪ADRL与LDR的区别 调一些代码遇到的问题,总结一下。
(adrl可以看出得到的就是一个相对地址)
 .........
▪关于path_alloc函数(APUE) #include "apue.h"
#include <errno.h>
#include <limits.h>
#ifdef PATH_MAX
static int pathmax = PATH_MAX;
#else
static int pathmax = 0;
#endif
#defi.........
[1]Maven4MyEclipse 搭建ssh2+extjs项目(2)加入struts2支持
来源: 互联网 发布时间: 2013-11-19
1.编辑pom.xml
2.添加log4j.xml
3.编辑web.xml
4.添加struts.xml
ok,测试成功
作者:zsStudio 发表于2013-4-11 17:18:07 原文链接
阅读:0 评论:0 查看评论
[2]ADRL与LDR的区别
来源: 互联网 发布时间: 2013-11-19
调一些代码遇到的问题,总结一下。
先铺垫一下,有这个一个问题:
圈6如何找到圈8 ?
答案a:找出圈8相对于圈6的位置,即圈6后边第二个。这个就是位置无关了。有一个神器就是“ADRL”,它能做到这一点。
答案b: 找出圈8的绝对地址,即地址3。找的办法可以是这样的:位置=8 - 5。这样就可以找出绝对地址3了。这个可以先用"LDR"记下圈8的编号(即8),然后减去圈5的编号(即5)得到的就是地址3。
上边只是理解,具体的体现答案a是在《嵌入式应用开发完全手册》光盘代码中用汇编对SDRAM初始化用到的。代码如下:
b是在u-boot-2009.11中lowlevel_init.S用汇编对SDRAM进行初始化时出现的。代码如下:
通过反汇编也可以看到区别:
(adrl可以看出得到的就是一个相对地址)
(ldr直接得到的是一个不正确的编号,再减去链接地址0x30000000,就可以是正确的绝对地址了)
而我的问题是用了答案b,却不完整,没有对减去链接起始地址。导致出现了问题。不过也学到的东西。不过对于答案a和答案b,我现在不能说哪个方法好一点,只是都能用,u-boot中为什么用看似复杂的方法应该有它的原因。
作者:kangear 发表于2013-4-11 17:16:57 原文链接
阅读:6 评论:0 查看评论
[3]关于path_alloc函数(APUE)
来源: 互联网 发布时间: 2013-11-19
#include "apue.h"
#include <errno.h>
#include <limits.h>
#ifdef PATH_MAX
static int pathmax = PATH_MAX;
#else
static int pathmax = 0;
#endif
#define SUSV3 200112L
static long posix_version = 0;
/* If PATH_MAX is indeterminate, no guarantee this is adequate */
#define PATH_MAX_GUESS 1024
char *
path_alloc(int *sizep) /* also return allocated size, if nonnull */
{
char *ptr;
int size;
if (posix_version == 0)
posix_version = sysconf(_SC_VERSION);
if (pathmax == 0) { /* first time through */
errno = 0;
if ((pathmax = pathconf("/", _PC_PATH_MAX)) < 0) {
if (errno == 0)
pathmax = PATH_MAX_GUESS; /* it's indeterminate */
else
err_sys("pathconf error for _PC_PATH_MAX");
} else {
pathmax++; /* add one since it's relative to root */
}
}
if (posix_version < SUSV3)
size = pathmax + 1;
else
size = pathmax;
if ((ptr = malloc(size)) == NULL)
err_sys("malloc error for pathname");
if (sizep != NULL)
*sizep = size;
return(ptr);
}
或
char*path_alloc(int* size)
{
char *p = NULL;
if(!size) return NULL;
p = malloc(256);
if(p)
*size = 256;
else
*size = 0;
return p;
}
#include <errno.h>
#include <limits.h>
#ifdef PATH_MAX
static int pathmax = PATH_MAX;
#else
static int pathmax = 0;
#endif
#define SUSV3 200112L
static long posix_version = 0;
/* If PATH_MAX is indeterminate, no guarantee this is adequate */
#define PATH_MAX_GUESS 1024
char *
path_alloc(int *sizep) /* also return allocated size, if nonnull */
{
char *ptr;
int size;
if (posix_version == 0)
posix_version = sysconf(_SC_VERSION);
if (pathmax == 0) { /* first time through */
errno = 0;
if ((pathmax = pathconf("/", _PC_PATH_MAX)) < 0) {
if (errno == 0)
pathmax = PATH_MAX_GUESS; /* it's indeterminate */
else
err_sys("pathconf error for _PC_PATH_MAX");
} else {
pathmax++; /* add one since it's relative to root */
}
}
if (posix_version < SUSV3)
size = pathmax + 1;
else
size = pathmax;
if ((ptr = malloc(size)) == NULL)
err_sys("malloc error for pathname");
if (sizep != NULL)
*sizep = size;
return(ptr);
}
或
char*path_alloc(int* size)
{
char *p = NULL;
if(!size) return NULL;
p = malloc(256);
if(p)
*size = 256;
else
*size = 0;
return p;
}
作者:DLUTBruceZhang 发表于2013-4-11 22:09:51 原文链接
阅读:0 评论:0 查看评论
最新技术文章: