±¾ÎÄÒÔ¼Ó·¨ÎªÀý£º[code]
//----------------------------------------------------
//adder.c
//---------------------------------------------------
void adder(int a, int b, int *sum)
{
*sum = a + b;
}
[/code][size=3]
[/size]
HLS¹¤¾ß£¨AutoPilot£©×ÛºÏÖ®ºóµÄ½á¹û£º[code]
//---------------------------------------------------
//adder.v
//--------------------------------------------------
`timescale 1 ns / 1 ps
module adder (
a,
b,
sum
);
input [31:0] a;
input [31:0] b;
output [31:0] sum;
assign sum = (b + a);
endmodule //adder
[/code][size=3]
[/size][code]
//---------------------------------------------------
//adder.vhd
//---------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
library work;
use work.AESL_components.al ......
±¾ÎÄÒÔ¼Ó·¨ÎªÀý£º[code]
//----------------------------------------------------
//adder.c
//---------------------------------------------------
void adder(int a, int b, int *sum)
{
*sum = a + b;
}
[/code][size=3]
[/size]
HLS¹¤¾ß£¨AutoPilot£©×ÛºÏÖ®ºóµÄ½á¹û£º[code]
//---------------------------------------------------
//adder.v
//--------------------------------------------------
`timescale 1 ns / 1 ps
module adder (
a,
b,
sum
);
input [31:0] a;
input [31:0] b;
output [31:0] sum;
assign sum = (b + a);
endmodule //adder
[/code][size=3]
[/size][code]
//---------------------------------------------------
//adder.vhd
//---------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
library work;
use work.AESL_components.al ......
1. ʹÓÃTCHARÀàÐÍ£¬¶¨ÒåÔÚtchar.hÖÐ
#include <tchar.h>
#include <stdio.h>
int main()
{
TCHAR s[] = "Äã";
printf("%s \n",s);
return 0;
}
2.¹ØÓÚC++ÖÐÎÄ×Ö·ûµÄ´¦Àí
Ò» ÒýÈëÎÊÌâ
´úÂë wchar_t a[3]=L”Öйú”£¬±àÒëʱ³ö´í£¬³ö´íÐÅϢΪ£ºÊý×éÔ½½ç¡£µ«wchar_t ÊÇÒ»¸ö¿í×Ö½ÚÀàÐÍ£¬Êý×éaµÄ´óСӦΪ6¸ö×Ö½Ú£¬¶øÁ½¸öºº×ֵĵÄunicodeÂëÕ¼4¸ö×Ö½Ú£¬ÔÙ¼ÓÉÏÒ»¸ö½áÊø·û£¬×î¶à6¸ö×Ö½Ú£¬ËùÒÔÓ¦¸Ã²»»áÔ½½ç¡£ÄѵÀÊDZàÒëÆ÷³öÎÊÌâÁË£¿
¶þ ½â¾öÒýÈëÎÊÌâËùÐèµÄ֪ʶ
Ö÷ÒªÐèÁ½·½ÃæµÄ֪ʶ£¬µÚÒ»¸öΪ×Ö·ûÓÈÆäÊǺº×ֵıàÂ룬ÒÔ¼°ÓïÑԺ͹¤¾ßµÄÖ§³ÖÇé¿ö£¬µÚ¶þ¸öÊÇvc/c++ÖÐMutiByte Charater Set ºÍ Wide Character SetÓйØÄÚ´æ·ÖÅäµÄÇé¿ö.
Èý ºº×ֵıàÂ뷽ʽ¼°ÔÚvc/c++ÖеĴ¦Àí
1.ºº×Ö±àÂ뷽ʽµÄ½éÉÜ
¶ÔÓ¢ÎÄ×Ö·ûµÄ´¦Àí£¬7λASCIIÂë×Ö·û¼¯ÖеÄ×Ö·û¼´¿ÉÂú×ãʹÓÃÐèÇó£¬ÇÒÓ¢ÎÄ×Ö·ûÔÚ¼ÆËã»úÉϵÄÊäÈë¼°Êä³öÒ²·Ç³£¼òµ¥£¬Òò´Ë£¬Ó¢ÎÄ×Ö·ûµÄÊäÈë¡¢´æ´¢¡¢ÄÚ²¿´¦ÀíºÍÊä³ö¶¼¿ÉÒÔÖ»ÓÃͬһ¸ö±àÂ루ÈçASCIIÂ룩¡£
¶øºº×ÖÊÇÒ»ÖÖÏóÐÎÎÄ×Ö£¬×ÖÊý¼«¶à£¨ÏÖ´úºº×ÖÖнö³£ÓÃ×Ö¾ÍÓÐÁù¡¢Æßǧ¸ö£¬×Ü×ÖÊý¸ß´ï5Íò¸öÒÔÉÏ£©£¬ÇÒ×ÖÐθ´ÔÓ£¬Ã¿Ò»¸ ......
1. ʹÓÃTCHARÀàÐÍ£¬¶¨ÒåÔÚtchar.hÖÐ
#include <tchar.h>
#include <stdio.h>
int main()
{
TCHAR s[] = "Äã";
printf("%s \n",s);
return 0;
}
2.¹ØÓÚC++ÖÐÎÄ×Ö·ûµÄ´¦Àí
Ò» ÒýÈëÎÊÌâ
´úÂë wchar_t a[3]=L”Öйú”£¬±àÒëʱ³ö´í£¬³ö´íÐÅϢΪ£ºÊý×éÔ½½ç¡£µ«wchar_t ÊÇÒ»¸ö¿í×Ö½ÚÀàÐÍ£¬Êý×éaµÄ´óСӦΪ6¸ö×Ö½Ú£¬¶øÁ½¸öºº×ֵĵÄunicodeÂëÕ¼4¸ö×Ö½Ú£¬ÔÙ¼ÓÉÏÒ»¸ö½áÊø·û£¬×î¶à6¸ö×Ö½Ú£¬ËùÒÔÓ¦¸Ã²»»áÔ½½ç¡£ÄѵÀÊDZàÒëÆ÷³öÎÊÌâÁË£¿
¶þ ½â¾öÒýÈëÎÊÌâËùÐèµÄ֪ʶ
Ö÷ÒªÐèÁ½·½ÃæµÄ֪ʶ£¬µÚÒ»¸öΪ×Ö·ûÓÈÆäÊǺº×ֵıàÂ룬ÒÔ¼°ÓïÑԺ͹¤¾ßµÄÖ§³ÖÇé¿ö£¬µÚ¶þ¸öÊÇvc/c++ÖÐMutiByte Charater Set ºÍ Wide Character SetÓйØÄÚ´æ·ÖÅäµÄÇé¿ö.
Èý ºº×ֵıàÂ뷽ʽ¼°ÔÚvc/c++ÖеĴ¦Àí
1.ºº×Ö±àÂ뷽ʽµÄ½éÉÜ
¶ÔÓ¢ÎÄ×Ö·ûµÄ´¦Àí£¬7λASCIIÂë×Ö·û¼¯ÖеÄ×Ö·û¼´¿ÉÂú×ãʹÓÃÐèÇó£¬ÇÒÓ¢ÎÄ×Ö·ûÔÚ¼ÆËã»úÉϵÄÊäÈë¼°Êä³öÒ²·Ç³£¼òµ¥£¬Òò´Ë£¬Ó¢ÎÄ×Ö·ûµÄÊäÈë¡¢´æ´¢¡¢ÄÚ²¿´¦ÀíºÍÊä³ö¶¼¿ÉÒÔÖ»ÓÃͬһ¸ö±àÂ루ÈçASCIIÂ룩¡£
¶øºº×ÖÊÇÒ»ÖÖÏóÐÎÎÄ×Ö£¬×ÖÊý¼«¶à£¨ÏÖ´úºº×ÖÖнö³£ÓÃ×Ö¾ÍÓÐÁù¡¢Æßǧ¸ö£¬×Ü×ÖÊý¸ß´ï5Íò¸öÒÔÉÏ£©£¬ÇÒ×ÖÐθ´ÔÓ£¬Ã¿Ò»¸ ......
ÔÚ´Ëժ¼C±àÒëʱ³öÏֵľ¯¸æÐÅÏ¢µÄÒâÒå¡£
1) warning: ISO C90 forbids mixed declarations and code
CÓïÑÔÊÇÃæÏò¹ý³ÌµÄÓïÑÔ£¬Õâ¸ö¾¯¸æÍ¨³£±íʾÉùÃ÷Ó¦¸ÃÔÚÆäËû´úÂëµÄÇ°Ãæ¡£
2) warning: initialization from incompatible pointer type
ÔÚLinux kernelÖÐÓÐÐí¶àcallbackº¯Êý£¬Õâ¸ö¾¯¸æ±íÃ÷callbackº¯ÊýµÄʵÏÖÖУ¬»òÕß·µ»ØÀàÐÍ£¬»òÕß²ÎÊý¸öÊýÀàÐÍÓëÔÏȶ¨ÒåµÄ²»Ò»Ö¡£
3) warning: unused variable 'socdev'
ÔÚ±¾º¯ÊýÖÐÉùÃ÷µÄ±äÁ¿Î´±»Ê¹Óá£
4) warning: '**_read' defined but not used
Ä£¿éÖеĺ¯Êý±»¶¨ÒåÁË£¬µ«ÊÇδ±»Ê¹Óá£
5) warning: passing argument 1 of 'bus_to_virt' makes integer from pointer without a cast
º¯ÊýµÄ1ºÅ²ÎÊýÖе÷ÓÃbus_to_virt£¬ÐèÒªÕûÐÍÊý¾Ý£¬¶øµ±Ç°ÊÇÖ¸ÕëÀàÐÍ£¬±ØÐë¾¹ýÇ¿ÖÆ×ª»»¡£
6) warning: passing argument 2 of 'set_dma_irq_handler' from incompatible pointer type
º¯Êýset_dma_irq_handlerµÄ²ÎÊýÀàÐÍÓëÉùÃ÷µÄ²»Ò»Ö¡£ ......
Ò». ÔÚcÖзÖΪÕ⼸¸ö´æ´¢Çø
1.Õ» - ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å
2.¶Ñ - Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ
3.È«¾ÖÇø£¨¾²Ì¬Çø£©£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬Î´³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£- ³ÌÐò½áÊøÊÍ·Å
4.ÁíÍ⻹ÓÐÒ»¸öרÃŷų£Á¿µÄµØ·½¡£- ³ÌÐò½áÊøÊÍ·Å
ÔÚº¯ÊýÌåÖж¨ÒåµÄ±äÁ¿Í¨³£ÊÇÔÚÕ»ÉÏ£¬ÓÃma ......
#include <iostream>
#include <conio.h>
using namespace std;
typedef struct _INTTEST
{
int a;
}inttest;
int main()
{
inttest* p=new inttest[3];
p[1].a=10;
cout<<p[1].a<<endl;
getch();
return 0;
}
......
×î½ü×öµÄһЩ¹¤×÷ÐèÒªÓõ½Ï̳߳ؼ¼Êõ£¬Òò´Ë²Î¿¼ÁËһЩ×ÊÁϺÍÊé¼®£¬Èç¡¶0bug c/c++ÉÌÓù¤³ÌÖ®µÀ¡·¡£
Ϊ´ËÔÚlinuxƽ̨ÉÏÓô¿cдÁËÒ»¸öÏ̳߳صÄʵÏÖ¡£
ÔÚ´ËÁгöÁËÔ´úÂë¡£
Ö÷ÒªÓõ½µÄÊý¾Ý½á¹¹ÓÐ
1.struct thread_pool_t // thread pool µÄʵÏÖ´úÂë
2.struct thread_pool_token_t //ÔÚthread pool ÖÐÓõ½µÄ½á¹¹£¬Ò»¸ö¸ÃÀàÐͱäÁ¿´ú±íÒ»ÌõÏß³Ì
3.struct thread_pool_job_t //µ±Ïßǰ³Ì´¦Àí¸ÃÈÎÎñ½«»Øµ÷½á¹¹
Éè¼ÆË¼Â·£º
Ö÷Ï̴߳´½¨Ï̳߳صĿØÖÆỊ̈߳¬
¹ÜÀíÏ߳̽«½øÈëÑ»·À´×öÒÔÏÂÊÂÇ飺
1.Èç¹ûµ±Ç°¿ÕÏнø³Ì²»×ã²¢ÇÒ×ÜÏß³ÌÊýûÓдﵽÉÏÏÞ£¬½«´´½¨Ò»Ìõ¿ÕÏÐỊ̈߳¬ÖÁµÀ¿ÕÏÐÏ̴߳ﵽ3Ìõ£¨¼ûTHREAD_POOL_MIN_IDLE_SIZE£©
2.²»¶Ï¼ì²é¹¤×÷ÈÎÎñ¶ÓÁУ¬ÓÐÔò°²ÅÅÒ»Ìõ¿ÕÏÐÏ̶߳ԸÃÈÎÎñ½øÐд¦Àí
ÆÕͨÏ̱߳»¹ÜÀíÏ̴߳´½¨ºóÒ²½«½øÈëÑ»·À´×öÒÔÏÂÊÂÇ飺
1.¼ì²éµ±Ç°assignµÄthread_pool_token_t½á¹¹µÄ״̬£¬Èç¹ûÊÇTREAD_POOL_STATE_BUSYÔòµ÷ÓÃthread_pool_token_tËù×¢²áµÄ»Øµ÷º¯ÊýÀ´´¦ÀíÈÎÎñ¡£
2.Íê³É¸ÃÈÎÎñºó¼ì²âµ±Ç°¿ÕÏнø³Ì¹»²»¹»£¬Èç¹ûÌ«¶àÔòÍ˳ö±¾Ị̈߳¬·ñÔò»á¸ÄдÔËÐÐ״̬ΪTREAD_POOL_STATE_IDLEºó¼ÌÐøÑ»·
× ......
×î½ü×öµÄһЩ¹¤×÷ÐèÒªÓõ½Ï̳߳ؼ¼Êõ£¬Òò´Ë²Î¿¼ÁËһЩ×ÊÁϺÍÊé¼®£¬Èç¡¶0bug c/c++ÉÌÓù¤³ÌÖ®µÀ¡·¡£
Ϊ´ËÔÚlinuxƽ̨ÉÏÓô¿cдÁËÒ»¸öÏ̳߳صÄʵÏÖ¡£
ÔÚ´ËÁгöÁËÔ´úÂë¡£
Ö÷ÒªÓõ½µÄÊý¾Ý½á¹¹ÓÐ
1.struct thread_pool_t // thread pool µÄʵÏÖ´úÂë
2.struct thread_pool_token_t //ÔÚthread pool ÖÐÓõ½µÄ½á¹¹£¬Ò»¸ö¸ÃÀàÐͱäÁ¿´ú±íÒ»ÌõÏß³Ì
3.struct thread_pool_job_t //µ±Ïßǰ³Ì´¦Àí¸ÃÈÎÎñ½«»Øµ÷½á¹¹
Éè¼ÆË¼Â·£º
Ö÷Ï̴߳´½¨Ï̳߳صĿØÖÆỊ̈߳¬
¹ÜÀíÏ߳̽«½øÈëÑ»·À´×öÒÔÏÂÊÂÇ飺
1.Èç¹ûµ±Ç°¿ÕÏнø³Ì²»×ã²¢ÇÒ×ÜÏß³ÌÊýûÓдﵽÉÏÏÞ£¬½«´´½¨Ò»Ìõ¿ÕÏÐỊ̈߳¬ÖÁµÀ¿ÕÏÐÏ̴߳ﵽ3Ìõ£¨¼ûTHREAD_POOL_MIN_IDLE_SIZE£©
2.²»¶Ï¼ì²é¹¤×÷ÈÎÎñ¶ÓÁУ¬ÓÐÔò°²ÅÅÒ»Ìõ¿ÕÏÐÏ̶߳ԸÃÈÎÎñ½øÐд¦Àí
ÆÕͨÏ̱߳»¹ÜÀíÏ̴߳´½¨ºóÒ²½«½øÈëÑ»·À´×öÒÔÏÂÊÂÇ飺
1.¼ì²éµ±Ç°assignµÄthread_pool_token_t½á¹¹µÄ״̬£¬Èç¹ûÊÇTREAD_POOL_STATE_BUSYÔòµ÷ÓÃthread_pool_token_tËù×¢²áµÄ»Øµ÷º¯ÊýÀ´´¦ÀíÈÎÎñ¡£
2.Íê³É¸ÃÈÎÎñºó¼ì²âµ±Ç°¿ÕÏнø³Ì¹»²»¹»£¬Èç¹ûÌ«¶àÔòÍ˳ö±¾Ị̈߳¬·ñÔò»á¸ÄдÔËÐÐ״̬ΪTREAD_POOL_STATE_IDLEºó¼ÌÐøÑ»·
× ......