There are always various debugging errors, memory errors in general, I inadvertently found that all global variables failed, that is, after the global variable declaration, the early value of the ODE value is wrong.
The initial value is obviously 0x12345674, and finally becomes 0xba141234, and there is a displacement phenomenon.
Test code
Memory test, to prevent the occurrence of memory anomalies, mainly manifested as the global variable initialization problem # define MEM_TEST0X12345678U32 memtest = mem_test;
_init_alloc (0x56000000, 0x60000000-8);//The scope of the initialization heap Pjpegbuff = (u8*) ((u32) Jpeg_buff + 16-(u32) jpeg_buff%16); Uart0_init (enable,115200);//initialization of serial port 0, loss of interrupt reception, baud rate 115200uart1_init (disable,115200); Tft_lcd_init ();//Memory Check if (memtest! = mem_test) {uart_printf ("Memory check error, Address: 0x%08x\t0x%x!=0x%x\r\n", (u32) &memtest, Memtest, mem_test);}
Results:
Watermark/2/text/ahr0cdovl2jsb2cuy3nkbi5uzxqvy3axmzaw/font/5a6l5l2t/fontsize/400/fill/i0jbqkfcma==/dissolve/70 /gravity/southeast ">
There's a shift in the imagination.
Finally, through a few days of debugging, the problem is fixed to the JPEG decoded file above, only if the call jpegcode.c will not be faulted
By staring at the code, discovering the problem again jpeg_tables.h, I will not need to use several arrays to shield off, actually overcame this problem, just started to think is because in. h defined the array variable caused, I moved all into the. c file, the problem is still, a few not practical array to stare out, The problem is really good. Very silent, do not know whether there are other problems caused.
/************************************************************************************************************* * File name: Jpeg_tables.h * Function: s3c6410 JPEG encoding table * Author: [email protected] * creation time: January 14, 2013 * Last modified: January 14, 2013 * Specific: Direct use of the official Code ************************************************************************************************************* /#ifndef __jpeg_tables_h__#define __jpeg_tables_h__const unsigned char qtbl_luminance[4][64]={/level 1-high Qualit Y {8, 6, 6, 8, 12, 14, 16, 17, 6, 6, 6, 8, 10, 13, 12, 15, 6, 6, 7, 8, 13, 14, 18, 24, 8, 8, 8, 14, 13, 19, 24, 35, 12, 10, 13, 13, 20, 26, 34, 39, 14, 13, 14, 19, 26, 34, 39, 39, 16, 12, 18, 2, 12, 8, 8, 12, 17, 21, 24, 23,,,,,,,,,,,,,,,,, 8, 9, 9, 11, 15, 19, 18, 23, 8, 9, 10, 12, 19, 20, 27, 36, 12, 11, 12, 21, 20, 28, 36, 53, 17, 15, 19, 20, 30, 39, 51, 59, 21, 19, 20,--------------------------------- {16, 11, 11, 16, 23, 27, 31, 30, 11, 12, 12, 15, 20, 23, 23, 30, 11, 12, 13, 16, 23, 26, 35, 47, 16, 15, 16, 23, 26, 37, 47, 64, 23, 20, 23, 26, 39, 51, 64, 64, 27, 23, 26, 37, 51, 64, 64, 64, 3 1, Max, 20, (+), Max, (+), (+), (+), (+), (+), (+), (+),//level 4-low quality {, 16, 25, 39, 50, 46, 62, 68, 16, 18, 23, 38, 38, 53, 65, 68, 25, 23, 31, 38, 53, 65, 68, 68, 39, 38, 38, 53, 65, 68, 68, 68, 50, 38, 53, 65, 68, 68, 68, 68, 46, 53, 65, 68, 68, 68, 68, 68, 62, 65, 68, 68, 6 8,----------------}};const unsigned char qtbl_chrominance[4][64]={/level 1-h IgH Quality {9, 8, 9, 11, 14, 17, 19, 24, 8, 10, 9, 11, 14, 13, 17, 22, 9, 9, 13, 14, 13, 15, 23, 26, 11, 11, 14,14, 15, 20, 26, 33, 14, 14, 13, 15, 20, 24, 33, 39, 17, 13, 15, 20, 24, 32, 39, 39, 19, 17, 23, 26, 3 3,,,,,,,,,,,,,,,,,,,,,,,,,, and/or level 2 {13, 11, 13, 16, 20, 20, 29, 37, 11, 14, 14, 14, 16, 20, 26, 32, 13, 14, 15, 17, 20, 23, 35, 40, 16, 14, 17, 21, 23, 30, 40, 50, 20, 16, 20, 23, 30, 37, 50, 59, 20, 20, 23, 30, 37, 48, 59, 59, 29, 26, 35, 40, 50, 59, 59, 59, 37, 32, //Level 3 {17, 15, 17, 21, 20, 26, 38, 48, 15, 19, 18, 17, 20, 26, 35, 43, 17, 18, 20, 22, 26, 30, 46, 53, 21, 17, 22, 28, 30, 39, 53, 64, 20, 20, 26, 30, 39, 48, 64, 64, 26, 26, 30, 39, 48, 63, 64, 64, 38, 35, 46, 53, 64, 64, 64, 64, 48, 43, 53, 64, 64, 64, 64, 64}, Level 4-low Quality {21, 25, 32, 38, 54, 68, 68, 68, 25, 28, 24, 38, 54, 68, 68, 68, 32, 2 4, 32, 43, 66, 68, 68, 68, 38, 38, 43, 53, 68, 68, 68, 68, 54, 54, 66, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, }};/*const unsigned char qtbl0[64]={#if 1,------------------ 0x10, 0x0B, 0x0A, 0x10, 0x18, 0x28, 0x33, 0x3d, 0x0C, 0x0C, 0x0E, 0x13, 0x1A, 0x3A, 0x3C, 0x37, 0x0E, 0x0D, 0x10, 0 x18, 0x28, 0x39, 0x45, 0x38, 0x0E, 0x11, 0x16, 0x1D, 0x33, 0x57, 0x50, 0x3e, 0x12, 0x16, 0x25, 0x38, 0x44, 0x6d, 0x6 7, 0x4d, 0x18, 0x23, 0x37, 0x40, 0x51, 0x68, 0x71, 0x5C, 0x31, 0x40, 0x4E, 0x57, 0x67, 0x79, 0x78, 0x65, 0x48, 0x 5C, 0x5f, 0x62, 0x70, 0x64, 0x67, 0x63#else 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0 X01, 0x01, 0x01, 0x01, 0X01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01#endif};//added quantization tableconst unsigned char Std_chro minance_quant_tbl_plus[64]={0x11, 0x12, 0x18, 0x2F, 0x63, 0x63, 0x63, 0x63, 0x12, 0x15, 0x1A, 0x42, 0x63, 0x63, 0x6 3, 0x63, 0x18, 0x1A, 0x38, 0x63, 0x63, 0x63, 0x63, 0x63, 0x2F, 0x42, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63 , 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63};//quantization table0unsigned Char Std_luminance_qu ANT_TBL[64] ={1, 1, 2, 1, 1, 2, 2, 2, 2, 3, 2, 2, 3, 3, 6, 4, 3, 3, 3, 3, 7, 5, 8, 4, 6, 8, 8, 10, 9, 8, 7, 11, 8, 10, 14, 13, 11, 10, 10, 12, 10, 8, 8, 11, 1 6, A, A, a, 9, a, a, a, a, a, a, a, a, a, a, a, a, a, 1,};//quantization tabl e1unsigned Char Std_chroMINANCE_QUANT_TBL[64] ={4, 4, 4, 5, 4, 5, 9, 5, 5, 9, 15, 10, 8, 10, 15, 26, 19, 9, 9 , 19, 26, 26, 26, 26, 13, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, Fman tableunsigned char hdctbl0[16] = {0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0};unsigned char hdctblg0[12] = {0, 1 , 2, 3, 4, 5, 6, 7, 8, 9, 0xa, 0xb};unsigned char hactbl0[16]= {0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d};const u nsigned Char hactblg0[162]={0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x6 1, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36 , 0x37, 0x38, 0x39, 0X3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x6 5, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9 , 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xDA, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xEA, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa};/*//huffman table0unsigned Char len_dc_luminance[16] ={0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0};unsigned Char val_dc_luminance[12] ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };unsigned Char len_ac_luminance[16] ={0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d};unsigned Char val_ac_luminance [162] ={0x01, 0x02,0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0 X17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x4 5, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92 , 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xDA, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xEA, 0xf1, 0xf2, 0xf3, 0 Xf4, 0xf5, 0xf6, 0xf7, 0Xf8, 0xf9, 0xfa};//huffman table1unsigned Char len_dc_chrominance[16] ={0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };unsigned Char val_dc_chrominance[12] ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ten, one};unsigned char len_ac_chrominance[16] ={ 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77};unsigned char val_ac_chrominance[162] ={0x00, 0x01, 0x02, 0x03, 0x One, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x81, 0x08, 0x14, 0x42 , 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x2 5, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68 , 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0 Xd8, 0XD9, 0xDA, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xEA, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9};*/#endif//__jpeg_tables_h__
It is generally not recommended to define variables in the. h file (This is the official party code), while gazing at the missing arrays.
Copyright notice: This article Bo Master original article. Blog, not reproduced without consent.
ds-5/rvds4.0 Variable initialization error