我是C#和Visual C#IDE的新手,我根本不知道如何使用它们.我在EclipseIDE上用C编写了我的所有生命.我已经在几个地方搜索过如何解决这个问题,但无法得到正确的程序.因为这个原因,我在这里发布了这个问题.
我下载了一个C#项目,我希望调试项目以了解算法实现的工作原理.
该项目已进入文件夹,在此文件夹中有 -
.sln文件和.csproj文件.我安装了Visual Studio C#Express并打开了VS C#IDE中主文件夹中的.sln文件.我成功构建了项目,但是当我尝试调试项目时,我得到了以下消息:
无法直接启动具有类库的输出类型的项目为了调试此项目,请向此解决方案添加可执行项目,该项目引用库项目.将可执行项目设置为启动项目.
奇怪的是我在任何地方都看不到主要功能.
我应该怎么做才能超越这个打嗝?
我正在开发一个图像处理项目,我在许多科学论文中遇到了遮挡这个词,遮挡在图像处理的背景下意味着什么?字典只给出了一般定义.任何人都可以使用图像作为上下文来描述它们吗?
我需要帮助malloc() 内部另一个功能.
我正在向我的函数传递一个指针和大小main(),我想malloc()从被调用的函数内部动态地为该指针分配内存,但我看到的是......正在分配的内存是对于在我调用的函数内声明的指针,而不是指向内部的指针main().
我应该如何传递指向函数的指针并为被调用函数内部传递的指针分配内存?
我写了下面的代码,得到如下所示的输出.
资源:
int main()
{
unsigned char *input_image;
unsigned int bmp_image_size = 262144;
if(alloc_pixels(input_image, bmp_image_size)==NULL)
printf("\nPoint2: Memory allocated: %d bytes",_msize(input_image));
else
printf("\nPoint3: Memory not allocated");
return 0;
}
signed char alloc_pixels(unsigned char *ptr, unsigned int size)
{
signed char status = NO_ERROR;
ptr = NULL;
ptr = (unsigned char*)malloc(size);
if(ptr== NULL)
{
status = ERROR;
free(ptr);
printf("\nERROR: Memory allocation did not complete successfully!"); …Run Code Online (Sandbox Code Playgroud) 在ARM Cortex-A8处理器中,我了解NEON是什么,它是一个SIMD协处理器.
但VFP(矢量浮点)单元也是一个协处理器,可以作为SIMD处理器使用吗?如果是这样哪个更好用?
我读了几个链接,如 -
但不是很清楚他们的意思.他们说VFP从未打算用于SIMD,但在Wiki上我读了以下内容 - " VFP架构还支持短向量指令的执行,但这些指令依次对每个向量元素进行操作,因此不提供真正的SIMD性能(单指令多数据并行. "
它不是很清楚要相信什么,任何人都可以详细说明这个话题吗?
我正在使用一个名为i.MX515的基于ARM Cortex-A8的处理器.有Linux Ubuntu 9.10发行版.我正在运行一个用C编写的非常大的应用程序,我正在利用gettimeofday();函数来衡量我的应用程序所需的时间.
main()
{
gettimeofday(start);
....
....
....
gettimeofday(end);
}
Run Code Online (Sandbox Code Playgroud)
这个方法足以让我看看我的应用程序块占用了多少时间.但是,现在,我正在尝试使用gettimeofday()计算时间的方法彻底优化我的代码,我看到连续运行之间有很多波动(在我的优化之前和之后运行),所以我不能确定实际执行时间,从而影响我的改进.
谁能告诉我应该怎么做?
如果通过访问循环计数器(在ARM网站上为Cortex-M3建议的想法),任何人都可以向我指出一些代码,它给出了我在Cortex-A8上访问定时器寄存器时必须遵循的步骤吗?
如果这种方法不是很准确,那么请提出一些替代方案.
谢谢
跟进1:在Code Sorcery上编写了以下程序,生成了可执行文件,当我尝试在主板上运行时,我得到了 - 非法指令消息:(
static inline unsigned int get_cyclecount (void)
{
unsigned int value;
// Read CCNT Register
asm volatile ("MRC p15, 0, %0, c9, c13, 0\t\n": "=r"(value));
return value;
}
static inline void init_perfcounters (int32_t do_reset, int32_t enable_divider)
{
// in general enable all counters (including cycle counter)
int32_t value = 1;
// …Run Code Online (Sandbox Code Playgroud) 我有如下定义的查找表,我正在使用GCC.当我编译时,我收到警告
warning: braces around scalar initializer
Run Code Online (Sandbox Code Playgroud)
这个警告意味着什么?我该如何初始化这个LUT?我在初始化这个结构时犯了错误吗?
救命!!
typedef struct TECH
{
float velocity1, velocity2;
float temp;
float measure;
int id;
float storage[64];
}TECH;
struct TECH lut_model_1[2] = {{{296.001465},
{74.216972},
{2.025908},
{1.516384},
{1},
{0.001746,
0.000256, 0.006216, 0.005249, -0.001668, -0.001377, 0.009865, 0.010454, -0.000288, -0.005853, 0.010584, 0.015440, 0.000465, -0.000602, 0.004330, 0.005700, 0.017120,
0.233015, 0.034154, 0.244022, 0.007644, 0.385683, 0.042960, 0.406633, -0.007811, 0.346931, 0.040123, 0.387361, 0.007030, 0.225309, 0.017897, 0.241024, 0.003700,
0.103601, 0.060748, 0.121059, -0.045041, 0.076974, 0.070647, 0.148810, -0.022399, 0.074007, 0.054797, 0.141794, 0.010376, 0.052482, 0.045013, …Run Code Online (Sandbox Code Playgroud) 如何使用GCC提供的Multiply-Accumulate内在函数?
float32x4_t vmlaq_f32 (float32x4_t , float32x4_t , float32x4_t);
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释我必须传递给这个函数的三个参数.我的意思是源和目标寄存器以及函数返回的内容?
救命!!!
我有一个数据采集模块,我想从以太网端口收集数据.我步骤到达那里,目前我只想connect从客户端服务器.我用过Beej的指南来获取基本的C代码.但我只是继续得到这个连接错误connect: Connection refused.
这就是我做的:
这里提到的网络IP是我配置的STATIC IP.
服务器端的端口号设置为50000,客户端的端口号设置为端口50000的IP.
我构建并运行服务器端应用程序,然后尝试通过运行客户端应用程序连接到它.
returns在启动客户端应用程序之前,对服务器端,服务器端应用程序有一个疑问,所以我应该保持它运行(while(1);)以便我可以从客户端连接到它吗?
我在这里遗忘了什么?救命!
我正在粘贴稍微修改过的(IP和端口号不同)Beej的服务器端和客户端的C代码:
Server.c
/*
** server.c
*/
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
// code for a server waiting for connections
// namely a stream socket on port 3490, on this host's IP
// either IPv4 or IPv6.
int sockfd;
struct addrinfo hints, *servinfo, *p; …Run Code Online (Sandbox Code Playgroud) 我正在使用Cortex-A8处理器而我不了解如何使用该-mfpu标志.
在Cortex-A8上有vfpv3和霓虹灯协处理器.以前我不知道如何使用霓虹灯,所以我只使用
gcc -marm -mfloat-abi=softfp -mfpu=vfpv3
现在我已经了解了SIMD处理器的运行方式,并且我使用NEON内在函数编写了某些代码.要使用霓虹灯协处理器,我的-mfpu标志必须更改为-mfpu=neon,所以我的编译器命令行看起来像这样
gcc -marm -mfloat-abi=softfp -mfpu=neon
现在,这是否意味着我vfpv3不再使用了?我有很多代码没有使用NEON,这些部分没有使用vfpv3.
如果仍然使用neon和vfpv3,那么我没有问题,但如果只使用其中一个,我怎么能同时使用它们?
昨天我发布了一个问题:我应该如何传递指向函数的指针并为被调用函数内部传递的指针分配内存?
从我得到的答案中,我能够理解我在做什么错误.
我现在面临一个新问题,任何人都可以帮忙解决这个问题吗?
我想动态分配一个2D数组,所以我将一个Pointer-to-Pointer从my main()传递给另一个调用的函数alloc_2D_pixels(...),在那里我使用malloc(...)并for(...)循环为2D数组分配内存.
好吧,从alloc_2D_pixels(...)函数返回后,指针指针仍然保持为NULL,所以很自然地,当我尝试访问或尝试free(...)指针到指针时,程序挂起.
谁能告诉我我在这里犯的错误?
救命!!!
维克拉姆
资源:
main()
{
unsigned char **ptr;
unsigned int rows, cols;
if(alloc_2D_pixels(&ptr, rows, cols)==ERROR) // Satisfies this condition
printf("Memory for the 2D array not allocated"); // NO ERROR is returned
if(ptr == NULL) // ptr is NULL so no memory was allocated
printf("Yes its NULL!");
// Because ptr is NULL, with any of these 3 statements below the program HANGS …Run Code Online (Sandbox Code Playgroud)