This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TMS320F28377D: #pragma DATASECTION understanding

Part Number: TMS320F28377D

Tool/software: TI C/C++ Compiler

Currently I am working on a project where I am defining a set of variables in a '.c' file and then declaring those arrays in main file in a function like below

// this is the file where the functions are defined like this
const float v0[460] = {2314.556889, 2314.565559, ...};
const float v1[460] = {24.556889, 24.5659, ...};
const float v2[460] = {2554.556889, 24.55559, ...};
const float v3[460] = {254.55459, 2714.59, ...};
//this is my main file

//include libraries

void llshape()
//some global variables


void main(void)
{
    //some statement
    while (condition)
    {
      llshape();
    }
}

void llshape(void)
{
    extern float v0[460];
    extern float v1[460];
    extern float v2[460];
    extern float v3[460];

    //some calculations
}

I have gone through the theory of pragma directives and why they are used from this pdf : focus.ti.com/.../spru187q.pdf

So upon reading what I could understand is (what I am suppose to add is) this-

#pragma DATA_SECTION ( v0, "v0_sect")
float v0[460] = {...};
#pragma DATA_SECTION ( v1, "v1_sect")
float v1[460] = {...};
#pragma DATA_SECTION ( v2, "v2_sect")
float v2460] = {...};
#pragma DATA_SECTION ( v3, "v3_sect")
float v3[460] = {...};

But where do I add it? In the main file before main function?

And then in linker file, change the RAMGS3, 4, 5, 6  as 

v0_sect: > RAMGS3, PAGE = 1
v1_sect: > RAMGS4, PAGE = 1
v2_sect: > RAMGS5, PAGE = 1
v3_sect: > RAMGS6, PAGE = 1

I feel there should be some way to not use so many RAMGSs. Please let me knowif I can assign these arrays to same RAMGS or a cluster of only 2-3 RAMGSs( because a single [460] array isn't going to take so much of space).

Regards,

  • Please read the first part of the article Linker Command File Primer.  Focus on understanding the terms input section and output section.  Given how you use it above, each #pragma DATA_SECTION creates a new input section.  But perhaps it makes more sense to put them all in one input section ...

    #pragma DATA_SECTION ( v0, "vn_sect")
    float v0[460] = {...};
    #pragma DATA_SECTION ( v1, "vn_sect")
    float v1[460] = {...};
    #pragma DATA_SECTION ( v2, "vn_sect")
    float v2460] = {...};
    #pragma DATA_SECTION ( v3, "vn_sect")
    float v3[460] = {...};

    Then you only need to allocate vn_sect in the linker command file.  I don't know if this is the best solution for your system.  I just want you to understand what is possible.  

    Rohan Chawhan said:
    But where do I add it? In the main file before main function?

    The DATA_SECTION must be present when the compiler sees the code that defines (not declares) the variable.

    Thanks and regards,

    -George

  • But perhaps it makes more sense to put them all in one input section ...

    I agree. I want to know how that is done. Can you point me in a direction?

    The DATA_SECTION must be present when the compiler sees the code that defines (not declares) the variable.

    So does that mean #pragma DATASECTIONS(v0,"v0_sect"); will go in the '.c' file where the arrays are defined? (and not the 'main.c' file)

    If you see I have demonstrated how the different files(main.c file and the other file) look right now. Can you edit the same and tell me where exactly this (#pragma DATASECTIONS(v0,"v0_sect"); and the others) would go?

    Thanks alot and regards

  • Rohan Chawhan said:
    I agree. I want to know how that is done. Can you point me in a direction?

    The example in my first post does it.  The first use of vn_sect creates the input section, and allocates some space in it.  The remaining ones add yet more space to it.

    Rohan Chawhan said:
    So does that mean #pragma DATASECTIONS(v0,"v0_sect"); will go in the '.c' file where the arrays are defined?

    Yes

    Thanks and regards,

    -George

  • Hey George,

    As I went through the document most of itwent over my head (to be honest) so I looked up your previous comment and followed the step.

    I edited the other '.c' file which had the arrays defined in it. Here is the file - 

    /* HITRAN.c */
    
    
    // line center (wavenumber cm-1)
    #pragma DATA_SECTION (v0, "vn_sect")
    const float v0[460] = {2314.556889, 2314.565559, 2314.571374, 2314.571685, 2314.574408, 2314.578412, 2314.579849, 2314.584995, 2314.585739, 2314.586922, 2314.588594, 2314.589115, 2314.590525, 2314.592608, 2314.594641, 2314.59616, 2314.604137, 2314.609833, 2314.613928, 2314.613928, 2314.614655, 2314.61699, 2314.618404, 2314.618469, 2314.620158, 2314.625166, 2314.646848, 2314.648153, 2314.657735, 2314.658096, 2314.659406, 2314.66288, 2314.664363, 2314.666922, 2314.672655, 2314.672914, 2314.678129, 2314.681398, 2314.685223, 2314.688335, 2314.691075, 2314.692309, 2314.694834, 2314.694881, 2314.696534, 2314.698054, 2314.705101, 2314.706081, 2314.707129, 2314.715007, 2314.715147, 2314.715257, 2314.715257, 2314.715715, 2314.7357, 2314.736304, 2314.737647, 2314.739934, 2314.742541, 2314.744697, 2314.745142, 2314.746679, 2314.746729, 2314.75171, 2314.760747, 2314.765384, 2314.765417, 2314.767547, 2314.770241, 2314.779925, 2314.782861, 2314.784876, 2314.790934, 2314.791147, 2314.791504, 2314.80162, 2314.802525, 2314.802526, 2314.804833, 2314.807581, 2314.8103, 2314.811991, 2314.812231, 2314.813557, 2314.814962, 2314.816041, 2314.819989, 2314.81999, 2314.827323, 2314.830055, 2314.830078, 2314.830247, 2314.830295, 2314.832541, 2314.83535, 2314.839363, 2314.841044, 2314.850035, 2314.85111, 2314.851418, 2314.852246, 2314.856083, 2314.858131, 2314.861412, 2314.863164, 2314.864389, 2314.875386, 2314.876266, 2314.877752, 2314.884531, 2314.887954, 2314.888846, 2314.888861, 2314.893558, 2314.896936, 2314.897026, 2314.90589, 2314.906854, 2314.90997, 2314.913681, 2314.913841, 2314.913864, 2314.919183, 2314.923044, 2314.926842, 2314.926916, 2314.930712, 2314.930715, 2314.932407, 2314.939075, 2314.941759, 2314.941769, 2314.94469, 2314.949226, 2314.953279, 2314.954121, 2314.965254, 2314.970229, 2314.971931, 2314.973815, 2314.978475, 2314.984126, 2314.987948, 2314.988792, 2314.988798, 2314.992127, 2314.995938, 2314.998632, 2315.000127, 2315.001673, 2315.001932, 2315.00364, 2315.004366, 2315.005415, 2315.007149, 2315.009402, 2315.01405, 2315.023936, 2315.023973, 2315.029947, 2315.029949, 2315.037471, 2315.038357, 2315.042879, 2315.043597, 2315.046896, 2315.050983, 2315.055993, 2315.055993, 2315.06283, 2315.065221, 2315.065223, 2315.068542, 2315.069109, 2315.070163, 2315.070489, 2315.077334, 2315.077632, 2315.07881, 2315.078952, 2315.081992, 2315.084763, 2315.089688, 2315.094462, 2315.094616, 2315.094617, 2315.098339, 2315.0998, 2315.100065, 2315.104794, 2315.112849, 2315.116028, 2315.117167, 2315.118133, 2315.118133, 2315.120365, 2315.121992, 2315.134955, 2315.134955, 2315.13577, 2315.13577, 2315.138377, 2315.139604, 2315.144806, 2315.149886, 2315.149993, 2315.156452, 2315.161662, 2315.166284, 2315.167771, 2315.173412, 2315.177516, 2315.177517, 2315.179933, 2315.180547, 2315.185687, 2315.187331, 2315.188105, 2315.189057, 2315.191377, 2315.19356, 2315.1995, 2315.21013, 2315.211159, 2315.216318, 2315.218424, 2315.221269, 2315.227726, 2315.228335, 2315.230528, 2315.233773, 2315.234003, 2315.235834, 2315.241263, 2315.24394, 2315.243942, 2315.244687, 2315.245834, 2315.246886, 2315.24837, 2315.251081, 2315.251626, 2315.253508, 2315.256597, 2315.258996, 2315.259053, 2315.260026, 2315.260027, 2315.26269, 2315.265118, 2315.268415, 2315.271194, 2315.276736, 2315.281137, 2315.284979, 2315.289683, 2315.290341, 2315.29251, 2315.297229, 2315.301043, 2315.303496, 2315.305605, 2315.312207, 2315.316136, 2315.318633, 2315.321492, 2315.325734, 2315.327954, 2315.331884, 2315.333453, 2315.340786, 2315.343725, 2315.351038, 2315.351759, 2315.354305, 2315.361286, 2315.363147, 2315.366674, 2315.366772, 2315.369467, 2315.371537, 2315.37231, 2315.376416, 2315.376892, 2315.377088, 2315.377427, 2315.381934, 2315.3881, 2315.3898, 2315.393065, 2315.395168, 2315.396788, 2315.399305, 2315.40253, 2315.413617, 2315.417294, 2315.421988, 2315.422925, 2315.42425, 2315.426195, 2315.432665, 2315.435818, 2315.438088, 2315.438487, 2315.441196, 2315.441546, 2315.443577, 2315.448125, 2315.449538, 2315.453857, 2315.454295, 2315.454842, 2315.455305, 2315.458604, 2315.458604, 2315.474832, 2315.475132, 2315.480148, 2315.485399, 2315.485665, 2315.485946, 2315.486457, 2315.501383, 2315.503202, 2315.504812, 2315.52228, 2315.522585, 2315.523727, 2315.537418, 2315.543108, 2315.54733, 2315.549429, 2315.549525, 2315.5564, 2315.557683, 2315.559137, 2315.563117, 2315.570825, 2315.582945, 2315.583968, 2315.587777, 2315.587782, 2315.59181, 2315.59181, 2315.59681, 2315.600082, 2315.600803, 2315.602527, 2315.605769, 2315.606607, 2315.607833, 2315.614575, 2315.614868, 2315.630226, 2315.639227, 2315.639402, 2315.640633, 2315.64202, 2315.643915, 2315.64939, 2315.650544, 2315.650655, 2315.651431, 2315.65401, 2315.657849, 2315.662164, 2315.662166, 2315.665627, 2315.667623, 2315.670739, 2315.670987, 2315.67411, 2315.676684, 2315.67837, 2315.68213, 2315.682196, 2315.68376, 2315.690699, 2315.691565, 2315.699104, 2315.700591, 2315.702506, 2315.703771, 2315.704323, 2315.704614, 2315.704689, 2315.718393, 2315.719774, 2315.723342, 2315.730503, 2315.731951, 2315.735358, 2315.735358, 2315.737127, 2315.739481, 2315.741031, 2315.744131, 2315.747672, 2315.749426, 2315.752541, 2315.754642, 2315.760425, 2315.761125, 2315.763071, 2315.767471, 2315.768916, 2315.779533, 2315.781609, 2315.78192, 2315.78265, 2315.783708, 2315.789107, 2315.789258, 2315.796408, 2315.799055, 2315.799055, 2315.802446, 2315.802945, 2315.805331, 2315.80538, 2315.806559, 2315.807884, 2315.808024, 2315.81149, 2315.813503, 2315.820284, 2315.820783, 2315.824909, 2315.839384, 2315.841122, 2315.848558, 2315.849549, 2315.870594, 2315.874042, 2315.895728, 2315.898129, 2315.898228, 2315.89991, 2315.907643, 2315.909177, 2315.909578, 2315.909832, 2315.910499, 2315.918866, 2315.92079, 2315.922431, 2315.934561, 2315.942937, 2315.943149, 2315.949746, 2315.950001, 2315.95108, 2315.955764, 2315.95853, 2315.95862, 2315.962734, 2315.963882, 2315.964908, 2315.96809, 2315.972921};
    
    #pragma DATA_SECTION (ST0, "vn_sect")
    // ST0 = line intensity*N,   (N = 2.479E19)
    const float ST0[460] = {2.66E-08, 1.80E-08, 1.94E-10, 3.25E-10, 5.58E-06, 1.43E-01, 4.39E-08, 5.90E-09, 5.70E-11, 5.56E-06, 1.54E-10, 5.85E-09, 1.39E-07, 1.22E-10, 1.54E-10, 4.22E-09, 1.34E-04, 4.43E-05, 6.17E-06, 6.17E-06, 3.76E-06, 1.71E-10, 2.01E-06, 2.01E-06, 7.01E-08, 8.27E-05, 4.76E-09, 6.86E-09, 1.57E-10, 3.00E-08, 6.74E-09, 3.48E-10, 3.48E-10, 2.33E-06, 2.99E-08, 2.53E-06, 2.49E-10, 4.07E-10, 2.86E-04, 2.39E-06, 5.67E-07, 1.31E-06, 2.28E-06, 2.28E-06, 1.07E-07, 4.11E-10, 2.39E-06, 1.33E-10, 1.31E-06, 1.68E-02, 1.17E-03, 1.41E-10, 1.98E-10, 1.86E-10, 1.27E-10, 2.97E-05, 1.17E-03, 4.04E-07, 1.37E-06, 5.67E-05, 2.81E-05, 8.50E-04, 1.25E-07, 5.30E-08, 4.09E-10, 2.59E-06, 2.59E-06, 9.42E-11, 2.38E-06, 1.19E-04, 1.92E-10, 7.02E-09, 1.26E-10, 1.26E-10, 1.89E-10, 2.86E-06, 1.84E-06, 1.84E-06, 1.07E-04, 2.75E-09, 4.36E-06, 1.38E-05, 1.39E-10, 1.41E-10, 5.29E-06, 2.88E-10, 1.01E-08, 1.01E-08, 1.90E-08, 2.96E-06, 2.96E-06, 2.20E-10, 2.20E-10, 8.94E-10, 2.78E-10, 8.78E-08, 1.38E-05, 3.30E-09, 5.58E-10, 1.41E-08, 1.02E-04, 9.40E-08, 6.58E-10, 1.65E-04, 7.28E-05, 4.39E-09, 9.38E-08, 1.51E-10, 8.93E-07, 5.51E-10, 1.14E-09, 3.39E-06, 3.39E-06, 3.30E-04, 1.77E-10, 5.51E-10, 6.84E-07, 1.18E-08, 1.38E-09, 2.63E-10, 7.07E-08, 2.86E-10, 1.18E-08, 9.82E-10, 2.74E-06, 5.37E-08, 9.77E-09, 6.97E-09, 2.65E-10, 2.18E-07, 3.92E-06, 3.92E-06, 7.91E-11, 1.37E-09, 1.43E-04, 8.31E-09, 9.40E-05, 3.25E-10, 1.47E-06, 1.47E-04, 1.47E-06, 1.90E-08, 3.89E-10, 4.58E-06, 4.58E-06, 1.28E-10, 1.08E-07, 1.29E-10, 1.84E-08, 1.68E-04, 1.84E-08, 3.57E-10, 6.95E-08, 3.81E-06, 2.09E-10, 6.94E-08, 1.94E-06, 8.20E-06, 1.84E-08, 5.44E-06, 5.44E-06, 8.09E-10, 1.09E-05, 3.41E-06, 4.76E-05, 2.29E-10, 1.23E-04, 2.00E-08, 2.00E-08, 3.65E-11, 6.58E-06, 6.58E-06, 3.52E-10, 5.85E-10, 6.03E-09, 1.98E-04, 1.57E-08, 9.81E-07, 7.32E-08, 7.32E-08, 1.68E-10, 3.42E-10, 6.34E-08, 2.11E-10, 8.23E-06, 8.23E-06, 5.96E-08, 5.95E-08, 4.91E-10, 9.20E-02, 3.27E-09, 8.22E-07, 1.30E-10, 1.08E-05, 1.08E-05, 1.67E-04, 1.04E-10, 2.20E-04, 2.20E-04, 1.56E-05, 1.56E-05, 2.93E-05, 8.59E-07, 1.25E-05, 6.64E-06, 5.25E-06, 3.01E-04, 5.23E-06, 1.38E-10, 3.47E-06, 2.40E-04, 5.72E-06, 5.72E-06, 3.21E-06, 1.12E-10, 3.11E-10, 3.11E-10, 1.13E-10, 1.97E+01, 1.07E-01, 4.50E-10, 1.38E-07, 3.96E-04, 5.72E-04, 3.11E-08, 6.42E-09, 3.45E-03, 4.10E-08, 3.45E-03, 1.04E-03, 1.05E-10, 1.05E-10, 3.74E-10, 6.64E-08, 8.48E-09, 8.48E-09, 1.63E-10, 9.30E-08, 1.33E-07, 1.11E-07, 1.61E-10, 3.69E-10, 2.72E-11, 2.29E-10, 1.88E-10, 1.88E-10, 1.81E-10, 1.29E-10, 1.73E-10, 1.58E-08, 1.42E-06, 1.23E-10, 1.75E-10, 2.43E+00, 1.09E-10, 7.73E-10, 1.21E-08, 7.73E-08, 1.28E-06, 3.94E-06, 2.98E-08, 2.56E-09, 1.65E-04, 5.10E-04, 2.98E-08, 9.84E-07, 3.61E-09, 1.60E-03, 3.46E-10, 2.23E-10, 9.96E-09, 4.71E-08, 2.27E-10, 2.76E-10, 9.96E-09, 1.34E-06, 3.69E-02, 5.12E-09, 2.86E-04, 4.73E-10, 5.07E-09, 2.29E-10, 1.33E-06, 1.10E-09, 2.51E-06, 2.70E-10, 7.08E-11, 4.73E-10, 1.07E-10, 1.23E-09, 2.50E-06, 1.07E-10, 5.98E-07, 8.69E-08, 1.33E-05, 7.86E-07, 8.67E-08, 2.89E-08, 7.20E-06, 3.75E-06, 1.22E-09, 1.48E-01, 1.08E-09, 2.76E-06, 4.87E-09, 1.17E-04, 1.33E-05, 1.77E-10, 3.02E-10, 4.78E-09, 1.95E-07, 8.51E-11, 5.33E-09, 1.84E-06, 1.84E-06, 2.78E-10, 8.31E-06, 6.03E-08, 3.54E-05, 6.03E-08, 6.77E-08, 7.62E-09, 1.53E-03, 2.59E-10, 1.78E-10, 1.18E-06, 3.12E-08, 1.11E-10, 1.73E-08, 8.96E-11, 1.66E-08, 1.66E-08, 1.46E-10, 3.14E-08, 9.06E-11, 1.63E-08, 1.16E-03, 3.42E-06, 1.36E-08, 1.16E-03, 7.19E-09, 1.01E-08, 1.78E-08, 1.78E-08, 7.42E-10, 5.15E-11, 1.02E-07, 1.08E-06, 8.52E-07, 1.47E-10, 7.56E-07, 1.79E-10, 8.48E-08, 6.10E-10, 6.91E-08, 6.91E-08, 4.83E-10, 1.65E-06, 1.81E-02, 1.65E-06, 1.62E-04, 1.12E-10, 4.66E-10, 6.25E-06, 1.61E-04, 7.06E-09, 7.06E-09, 4.38E-06, 1.46E-08, 8.76E-11, 8.76E-11, 3.04E-09, 5.53E-08, 5.52E-08, 1.60E-10, 1.60E-10, 3.32E-10, 6.02E-08, 3.63E-10, 2.15E-09, 1.39E-10, 2.76E-10, 3.58E-06, 2.76E-10, 1.37E-10, 1.22E-05, 1.40E-06, 4.92E-06, 1.02E-08, 4.90E-06, 4.07E-10, 5.29E-06, 5.29E-06, 6.79E-08, 2.95E-09, 6.65E-10, 9.88E-08, 3.46E-11, 1.72E-10, 1.31E-08, 3.42E-07, 2.39E-10, 3.82E-09, 2.05E-10, 3.39E-10, 8.39E-09, 3.15E-06, 8.83E-11, 2.27E-10, 1.95E-10, 8.39E-09, 8.84E-11, 2.32E-10, 1.04E-05, 1.18E-10, 1.65E-10, 7.17E-10, 1.36E-07, 2.32E-04, 2.32E-04, 1.97E-10, 4.43E-05, 7.38E-06, 2.36E-08, 1.15E-10, 5.91E-10, 1.59E-10, 3.94E-10, 7.86E-07, 4.21E-08, 4.04E-10, 5.85E-09, 1.08E-09, 4.04E-10, 9.60E-09, 2.97E-10, 5.09E-06, 7.15E-11, 1.00E-08, 1.50E-10, 1.98E-10, 1.66E-06, 1.08E-09, 2.39E-05, 7.53E-09, 7.23E-11, 7.00E-08, 2.95E-08, 8.00E-08, 5.22E-08, 1.63E-10, 6.89E-07, 5.21E-08, 1.53E-01, 2.95E-08, 7.97E-08, 1.73E-07, 7.19E-11, 6.91E-11, 4.83E-10};
    
    #pragma DATA_SECTION (gamma_air, "vn_sect")
     // Air broadening coeffcient
    const float gamma_air[460] = {0.0654, 0.0677, 0.0676, 0.0681, 0.0692, 0.0712, 0.0671, 0.0691, 0.0676, 0.0692, 0.0659, 0.0691, 0.0735, 0.0665, 0.0659, 0.0646, 0.0874, 0.0744, 0.0686, 0.0686, 0.0688, 0.0683, 0.0782, 0.0782, 0.062, 0.0794, 0.0652, 0.0675, 0.0626, 0.0747, 0.0675, 0.0679, 0.0679, 0.0677, 0.0747, 0.0614, 0.0664, 0.065, 0.0757, 0.0807, 0.0671, 0.0776, 0.0792, 0.0792, 0.0673, 0.0683, 0.0807, 0.0686, 0.0776, 0.0688, 0.0756, 0.0682, 0.0682, 0.0686, 0.0651, 0.0919, 0.0756, 0.068, 0.0693, 0.0763, 0.0878, 0.0878, 0.0677, 0.0681, 0.0648, 0.0803, 0.0803, 0.0677, 0.074, 0.0733, 0.0669, 0.0817, 0.0663, 0.0663, 0.0669, 0.0715, 0.0747, 0.0747, 0.0815, 0.0684, 0.0723, 0.0707, 0.0643, 0.0643, 0.0662, 0.0644, 0.066, 0.066, 0.0666, 0.0814, 0.0814, 0.0664, 0.0664, 0.067, 0.0684, 0.067, 0.0707, 0.0655, 0.0684, 0.0667, 0.0748, 0.0685, 0.0681, 0.0809, 0.0784, 0.0662, 0.0685, 0.0785, 0.0679, 0.0671, 0.0691, 0.0825, 0.0825, 0.0788, 0.0653, 0.0671, 0.0672, 0.0664, 0.0674, 0.0667, 0.0701, 0.0639, 0.0664, 0.0643, 0.0678, 0.0618, 0.0785, 0.0785, 0.0667, 0.0677, 0.0836, 0.0836, 0.0678, 0.0674, 0.0838, 0.0668, 0.0805, 0.0648, 0.0847, 0.0839, 0.0847, 0.0684, 0.0682, 0.0848, 0.0848, 0.0657, 0.0697, 0.0657, 0.0682, 0.0715, 0.0682, 0.065, 0.0671, 0.0682, 0.0628, 0.0671, 0.0612, 0.0688, 0.0679, 0.0858, 0.0858, 0.0685, 0.0882, 0.0805, 0.0815, 0.0686, 0.0827, 0.0679, 0.0679, 0.0675, 0.0868, 0.0868, 0.0695, 0.0705, 0.0654, 0.086, 0.0676, 0.0677, 0.0691, 0.0691, 0.0675, 0.0646, 0.07, 0.0663, 0.0877, 0.0877, 0.0686, 0.0686, 0.0695, 0.0778, 0.0798, 0.0673, 0.0679, 0.0886, 0.0886, 0.0849, 0.0658, 0.0805, 0.0805, 0.09, 0.09, 0.0869, 0.068, 0.0714, 0.0664, 0.069, 0.0879, 0.069, 0.0671, 0.0687, 0.087, 0.0685, 0.0685, 0.0679, 0.0641, 0.0678, 0.0678, 0.0641, 0.068, 0.0809, 0.0585, 0.0728, 0.0888, 0.0902, 0.071, 0.0849, 0.0859, 0.0615, 0.0859, 0.0955, 0.0662, 0.0662, 0.0682, 0.0874, 0.0659, 0.0659, 0.0668, 0.0874, 0.0621, 0.0676, 0.0668, 0.0687, 0.0668, 0.0642, 0.0663, 0.0663, 0.0681, 0.0681, 0.0685, 0.0665, 0.061, 0.0685, 0.0688, 0.0702, 0.068, 0.0669, 0.0666, 0.067, 0.0788, 0.074, 0.0738, 0.0653, 0.0867, 0.0892, 0.0738, 0.0674, 0.066, 0.0809, 0.0677, 0.0637, 0.0663, 0.068, 0.0666, 0.063, 0.0663, 0.0766, 0.0667, 0.0689, 0.0748, 0.067, 0.0689, 0.0666, 0.0766, 0.0668, 0.0797, 0.0748, 0.0677, 0.067, 0.0655, 0.0673, 0.0797, 0.0655, 0.0693, 0.0684, 0.0703, 0.0678, 0.0684, 0.0673, 0.0687, 0.068, 0.0673, 0.0717, 0.0689, 0.071, 0.0675, 0.0726, 0.0703, 0.0681, 0.0689, 0.0675, 0.0676, 0.0662, 0.0805, 0.0738, 0.0738, 0.0644, 0.0665, 0.067, 0.0871, 0.067, 0.0697, 0.0656, 0.0871, 0.0646, 0.0662, 0.0674, 0.0613, 0.0774, 0.0683, 0.0639, 0.0681, 0.0681, 0.0674, 0.0668, 0.0639, 0.0678, 0.0766, 0.0681, 0.0675, 0.0766, 0.0774, 0.0774, 0.0678, 0.0678, 0.0684, 0.0649, 0.0694, 0.0608, 0.0676, 0.0682, 0.068, 0.0639, 0.0671, 0.0682, 0.0689, 0.0689, 0.0691, 0.0837, 0.0689, 0.0837, 0.071, 0.065, 0.0692, 0.0729, 0.0828, 0.0657, 0.0657, 0.0681, 0.0666, 0.066, 0.066, 0.0642, 0.0685, 0.0685, 0.0662, 0.0662, 0.0692, 0.0697, 0.0632, 0.0651, 0.0667, 0.0677, 0.0795, 0.0677, 0.0667, 0.0709, 0.0675, 0.0688, 0.0664, 0.0688, 0.0681, 0.0684, 0.0684, 0.0668, 0.0658, 0.0668, 0.0675, 0.0639, 0.0635, 0.0663, 0.0678, 0.0683, 0.0788, 0.0644, 0.0681, 0.0662, 0.0685, 0.0653, 0.0646, 0.0665, 0.0662, 0.0653, 0.0642, 0.0667, 0.068, 0.068, 0.0682, 0.0721, 0.0795, 0.0795, 0.0665, 0.0826, 0.089, 0.0611, 0.0684, 0.0702, 0.0684, 0.0694, 0.0606, 0.068, 0.0669, 0.0666, 0.0673, 0.0669, 0.0657, 0.067, 0.0682, 0.0637, 0.0839, 0.066, 0.0684, 0.0676, 0.0673, 0.0876, 0.0645, 0.0637, 0.0925, 0.0731, 0.0682, 0.0669, 0.0675, 0.0678, 0.0669, 0.0778, 0.0731, 0.0682, 0.0675, 0.0645, 0.0655, 0.0698};
    
    #pragma DATA_SECTION (gamma_self, "vn_sect")
    //self broadening coeff.
    const float gamma_self[460] = {0.069, 0.079, 0.078, 0.085, 0.093, 0.097, 0.074, 0.092, 0.081, 0.093, 0.07, 0.092, 0.1, 0.071, 0.07, 0.068, 0.117, 0.102, 0.09, 0.09, 0.09, 0.088, 0.105, 0.105, 0.065, 0.106, 0.069, 0.08, 0.066, 0.102, 0.08, 0.083, 0.083, 0.082, 0.102, 0.065, 0.072, 0.068, 0.103, 0.108, 0.076, 0.104, 0.106, 0.106, 0.079, 0.087, 0.108, 0.09, 0.104, 0.091, 0.103, 0.087, 0.087, 0.09, 0.069, 0.124, 0.103, 0.087, 0.093, 0.103, 0.118, 0.118, 0.082, 0.084, 0.068, 0.107, 0.107, 0.082, 0.101, 0.1, 0.074, 0.109, 0.071, 0.071, 0.074, 0.098, 0.102, 0.102, 0.109, 0.088, 0.099, 0.097, 0.067, 0.067, 0.071, 0.067, 0.071, 0.071, 0.072, 0.108, 0.108, 0.072, 0.072, 0.075, 0.089, 0.077, 0.097, 0.069, 0.088, 0.073, 0.102, 0.089, 0.087, 0.108, 0.105, 0.071, 0.089, 0.105, 0.081, 0.075, 0.093, 0.11, 0.11, 0.106, 0.069, 0.075, 0.076, 0.072, 0.08, 0.074, 0.096, 0.067, 0.072, 0.067, 0.083, 0.065, 0.105, 0.105, 0.074, 0.082, 0.111, 0.111, 0.083, 0.08, 0.112, 0.073, 0.108, 0.068, 0.113, 0.111, 0.113, 0.088, 0.087, 0.113, 0.113, 0.07, 0.094, 0.07, 0.086, 0.098, 0.086, 0.068, 0.076, 0.085, 0.066, 0.076, 0.064, 0.09, 0.081, 0.114, 0.114, 0.089, 0.118, 0.107, 0.108, 0.09, 0.11, 0.083, 0.083, 0.079, 0.116, 0.116, 0.094, 0.096, 0.069, 0.115, 0.078, 0.079, 0.093, 0.093, 0.077, 0.068, 0.095, 0.072, 0.117, 0.117, 0.09, 0.09, 0.094, 0.105, 0.107, 0.077, 0.084, 0.119, 0.119, 0.113, 0.07, 0.107, 0.107, 0.121, 0.121, 0.116, 0.083, 0.098, 0.071, 0.092, 0.118, 0.092, 0.075, 0.089, 0.116, 0.089, 0.089, 0.084, 0.067, 0.082, 0.082, 0.067, 0.083, 0.108, 0.063, 0.1, 0.119, 0.121, 0.097, 0.113, 0.114, 0.065, 0.114, 0.13, 0.071, 0.071, 0.086, 0.117, 0.07, 0.07, 0.073, 0.117, 0.065, 0.081, 0.073, 0.091, 0.073, 0.067, 0.072, 0.072, 0.086, 0.086, 0.089, 0.071, 0.064, 0.089, 0.09, 0.095, 0.085, 0.074, 0.073, 0.076, 0.106, 0.101, 0.101, 0.069, 0.116, 0.12, 0.101, 0.078, 0.07, 0.108, 0.082, 0.067, 0.072, 0.083, 0.074, 0.066, 0.072, 0.103, 0.073, 0.092, 0.102, 0.075, 0.092, 0.074, 0.103, 0.075, 0.107, 0.102, 0.079, 0.075, 0.069, 0.079, 0.107, 0.069, 0.093, 0.088, 0.096, 0.08, 0.088, 0.076, 0.089, 0.085, 0.079, 0.098, 0.092, 0.097, 0.079, 0.1, 0.096, 0.086, 0.092, 0.079, 0.081, 0.071, 0.107, 0.101, 0.101, 0.067, 0.072, 0.075, 0.116, 0.075, 0.095, 0.069, 0.116, 0.068, 0.071, 0.079, 0.064, 0.104, 0.087, 0.067, 0.085, 0.085, 0.076, 0.073, 0.067, 0.08, 0.103, 0.084, 0.077, 0.103, 0.104, 0.104, 0.082, 0.082, 0.088, 0.068, 0.093, 0.064, 0.078, 0.087, 0.082, 0.067, 0.078, 0.087, 0.092, 0.092, 0.093, 0.111, 0.092, 0.111, 0.097, 0.068, 0.093, 0.1, 0.11, 0.07, 0.07, 0.086, 0.072, 0.07, 0.07, 0.067, 0.089, 0.089, 0.071, 0.071, 0.093, 0.094, 0.066, 0.068, 0.073, 0.081, 0.106, 0.081, 0.073, 0.097, 0.079, 0.091, 0.072, 0.091, 0.086, 0.088, 0.088, 0.075, 0.07, 0.074, 0.08, 0.067, 0.066, 0.071, 0.085, 0.088, 0.106, 0.067, 0.085, 0.071, 0.088, 0.069, 0.068, 0.073, 0.071, 0.069, 0.067, 0.072, 0.085, 0.085, 0.088, 0.099, 0.106, 0.106, 0.073, 0.11, 0.12, 0.064, 0.088, 0.095, 0.088, 0.094, 0.064, 0.082, 0.074, 0.072, 0.078, 0.074, 0.07, 0.074, 0.087, 0.066, 0.111, 0.071, 0.089, 0.08, 0.078, 0.117, 0.067, 0.066, 0.125, 0.1, 0.087, 0.074, 0.077, 0.079, 0.074, 0.105, 0.1, 0.087, 0.08, 0.068, 0.069, 0.095};
    
    #pragma DATA_SECTION (Ep, "vn_sect")
    //lower state energy
    const float Ep[460] = {3313.8391, 5017.6738, 6042.7964, 3163.8845, 2308.0605, 186.271, 4712.9653, 2853.9365, 1235.2485, 2308.6814, 4760.8252, 2853.9321, 1353.7441, 6082.9966, 4760.7988, 3009.3945, 1263.8425, 2052.0242, 2310.3225, 2310.3225, 3703.0286, 1050.7097, 1399.0031, 1399.0031, 2154.1006, 1993.5701, 2052.4016, 3155.2571, 2708.5469, 3094.5859, 3155.2483, 4174.9229, 4174.9209, 1209.1936, 3094.7397, 3054.1663, 4643.9229, 5724.4189, 2679.0798, 1958.3853, 1458.7273, 2131.062, 1389.1235, 1389.1235, 1916.5863, 4114.8125, 1958.4802, 2367.8911, 2131.2263, 352.002, 767.9741, 2377.1753, 2377.1753, 2368.6584, 3204.6477, 0, 767.8159, 1596.1239, 2227.7881, 2026.2404, 3008.6704, 2007.9543, 3159.0044, 4763.9683, 3139.5828, 1380.0038, 1380.0038, 1206.6031, 3833.2124, 2894.6177, 4198.2803, 1398.0176, 4308.5337, 4308.5352, 4200.8223, 3838.7932, 2098.8792, 2098.8792, 1975.5542, 1678.4587, 154.2009, 2088.1738, 4662.728, 4658.3726, 2540.1562, 5805.1255, 3752.3252, 3752.3252, 4902.2861, 1371.6439, 1371.6439, 2894.8474, 2894.8469, 4360.2939, 1027.1632, 1973.3499, 2088.5742, 5288.9053, 2415.8596, 3660.8093, 2903.3738, 3322.137, 1658.2191, 2713.9932, 2003.5808, 5212.2046, 3322.636, 2387.4214, 4053.7383, 3975.4548, 2570.9744, 1364.0439, 1364.0439, 2609.3755, 5335.9771, 3972.9099, 1424.8629, 3707.8088, 2470.1768, 2843.9382, 1552.9131, 5803.7959, 3707.6733, 3009.0676, 1181.1644, 2211.4319, 1382.0248, 1382.0247, 2841.9929, 3046.52, 1357.2039, 1357.2039, 1178.691, 2471.3535, 1960.6711, 5057.0952, 1984.0459, 5774.3467, 674.7094, 1386.4797, 674.7313, 3175.9939, 2438.5559, 1351.1237, 1351.1237, 4801.8105, 2770.6604, 4801.7817, 3195.4641, 2853.2878, 3195.4407, 5751.2295, 3313.9832, 3735.1338, 2653.4062, 3313.9961, 3111.7419, 3546.1982, 4995.9834, 1345.8035, 1345.8035, 3963.927, 1380.5728, 2372.2922, 39.2611, 1004.3515, 1967.636, 3197.1816, 3197.1816, 1939.5654, 1341.2433, 1341.2433, 2139.0908, 4038.5361, 2006.9584, 1948.9209, 5051.1162, 4051.2175, 1571.2661, 1571.2642, 6077.7368, 3179.4199, 2868.0254, 4681.8857, 1337.4432, 1337.4432, 2920.0449, 2920.0515, 2139.6013, 1470.1188, 3390.8381, 1391.7325, 1151.512, 1334.403, 1334.403, 1954.3514, 6135.0391, 1365.7964, 1365.7965, 1332.1228, 1332.1228, 1283.6475, 4049.3247, 803.3533, 2497.1599, 2327.9578, 1940.304, 2328.6265, 2735.5176, 3726.1357, 1944.1924, 2332.5234, 2332.5234, 1153.8716, 4710.623, 4203.5532, 4203.5508, 4706.1372, 578.0116, 1386.8291, 4072.0149, 1366.5837, 1937.1591, 1934.8203, 4867.6289, 1273.6547, 677.8777, 2269.512, 677.8545, 1933.2517, 4349.5825, 4349.584, 4140.3467, 669.429, 3793.0403, 3793.0403, 4235.3135, 669.4181, 2952.3447, 3187.6626, 4237.9614, 982.2749, 2298.0486, 5856.8232, 2931.396, 2931.3953, 2401.5278, 2401.5276, 2389.938, 4943.5303, 3178.0359, 2390.7583, 3629.9919, 921.2381, 1125.0663, 4394.5762, 3697.6707, 2003.9279, 2646.1621, 3731.4021, 3107.3701, 5335.9771, 1266.7874, 2077.6367, 3107.5432, 1359.3367, 5255.8848, 2400.2432, 1901.3584, 5857.2573, 3746.1907, 4793.9155, 2878.2937, 2599.014, 3746.0437, 2141.6709, 994.2385, 2875.2158, 2691.6206, 4011.1475, 2875.2107, 2876.2649, 2141.8606, 3025.8643, 1966.7233, 3458.6938, 4051.2175, 4008.4941, 4843.5244, 2499.4321, 1966.8372, 4843.4932, 3476.9836, 3344.7979, 2105.1194, 4085.0811, 3345.3303, 4784.0522, 3569.1978, 1127.3151, 2500.667, 170.0759, 2590.0884, 3855.887, 3185.532, 2909.4944, 2105.5562, 1099.3541, 960.9333, 3185.5227, 3075.2249, 6167.0889, 1405.3678, 2111.821, 2111.821, 3224.8882, 2454.9517, 3347.9385, 3011.7639, 3347.9524, 1570.0634, 1962.269, 2011.0934, 5823.5435, 4720.5762, 1327.6753, 2328.3401, 2396.8921, 3201.0125, 4759.2495, 3222.0454, 3222.019, 6111.1514, 4790.3345, 4754.6318, 5025.5737, 755.8286, 3763.3772, 5085.334, 755.6889, 1391.6066, 1391.6064, 3226.1389, 3226.1389, 3987.9595, 5432.46, 2790.3672, 3236.9551, 4085.0361, 1074.3752, 4080.9568, 5909.3003, 1974.2026, 2439.4937, 1590.6039, 1590.6016, 940.3268, 679.7121, 329.2988, 679.7413, 2870.5774, 3248.7566, 2158.1929, 139.5169, 1392.3757, 3834.4922, 3834.4922, 1101.4951, 2341.9949, 4391.3877, 4391.3896, 3111.3684, 2943.6003, 2943.6077, 2968.6582, 2968.6575, 2158.7439, 2886.9202, 2545.375, 5383.8286, 4273.1001, 4232.9351, 2380.3279, 4232.9326, 4275.856, 817.7256, 1296.7484, 2348.5911, 3735.2673, 2349.3096, 2462.8691, 2355.4634, 2355.4634, 2035.2397, 5300.4668, 4429.585, 3217.0542, 3841.1904, 5911.499, 4986.0791, 1642.5229, 1050.1302, 3400.3757, 5875.125, 4166.6309, 3785.3081, 3752.282, 4885.9668, 5850.397, 2913.3633, 3785.1492, 4885.9331, 3265.9456, 2413.5137, 2426.6169, 2426.6169, 1633.916, 1380.1362, 1373.9261, 1373.9261, 2911.2493, 32.1229, 1378.3, 2387.9163, 2412.7188, 4057.3723, 2413.5942, 920.4556, 3304.9934, 4822.0732, 4047.5962, 5137.2446, 2529.3992, 4044.8328, 1918.3337, 3544.365, 1076.4117, 4808.6069, 1278.7942, 4759.9946, 1026.6187, 1266.5563, 2530.6938, 1279.8604, 3559.2041, 4803.856, 2340.0134, 3120.906, 3368.189, 3382.6296, 4119.6392, 4117.2041, 3382.6443, 1367.4026, 3121.0994, 3368.7556, 3104.6641, 3683.96, 6225.5908, 3035.5212};
    
    #pragma DATA_SECTION (n, "vn_sect")
    //Temperature coeff.
    const float n[460] = {0.69, 0.75, 0.75, 0.76, 0.74, 0.72, 0.73, 0.74, 0.75, 0.74, 0.71, 0.74, 0.69, 0.72, 0.71, 0.68, 0.77, 0.69, 0.75, 0.75, 0.75, 0.76, 0.69, 0.69, 0.66, 0.69, 0.69, 0.75, 0.66, 0.69, 0.75, 0.76, 0.76, 0.76, 0.69, 0.65, 0.72, 0.69, 0.69, 0.7, 0.74, 0.69, 0.69, 0.69, 0.75, 0.76, 0.7, 0.75, 0.69, 0.75, 0.69, 0.76, 0.76, 0.75, 0.69, 0.78, 0.69, 0.76, 0.74, 0.69, 0.77, 0.77, 0.76, 0.76, 0.69, 0.69, 0.69, 0.76, 0.69, 0.7, 0.73, 0.7, 0.72, 0.72, 0.73, 0.71, 0.69, 0.69, 0.7, 0.76, 0.7, 0.72, 0.68, 0.68, 0.71, 0.68, 0.71, 0.71, 0.72, 0.7, 0.7, 0.73, 0.73, 0.74, 0.75, 0.75, 0.72, 0.7, 0.76, 0.73, 0.69, 0.75, 0.76, 0.7, 0.69, 0.71, 0.75, 0.69, 0.75, 0.74, 0.74, 0.71, 0.71, 0.69, 0.69, 0.74, 0.74, 0.72, 0.75, 0.74, 0.73, 0.67, 0.72, 0.68, 0.76, 0.65, 0.69, 0.69, 0.74, 0.76, 0.72, 0.72, 0.76, 0.75, 0.72, 0.73, 0.69, 0.68, 0.74, 0.73, 0.74, 0.76, 0.76, 0.73, 0.73, 0.71, 0.73, 0.71, 0.76, 0.71, 0.76, 0.69, 0.74, 0.76, 0.66, 0.74, 0.65, 0.75, 0.75, 0.74, 0.74, 0.76, 0.78, 0.7, 0.7, 0.75, 0.71, 0.76, 0.76, 0.75, 0.76, 0.76, 0.73, 0.73, 0.7, 0.74, 0.75, 0.75, 0.74, 0.74, 0.75, 0.69, 0.73, 0.72, 0.77, 0.77, 0.75, 0.75, 0.73, 0.69, 0.69, 0.75, 0.76, 0.77, 0.77, 0.73, 0.7, 0.7, 0.7, 0.78, 0.78, 0.76, 0.76, 0.71, 0.71, 0.74, 0.77, 0.74, 0.74, 0.76, 0.76, 0.75, 0.75, 0.76, 0.68, 0.76, 0.76, 0.68, 0.76, 0.7, 0.65, 0.7, 0.77, 0.78, 0.72, 0.74, 0.75, 0.65, 0.75, 0.77, 0.71, 0.71, 0.76, 0.77, 0.71, 0.71, 0.73, 0.77, 0.65, 0.75, 0.73, 0.75, 0.73, 0.68, 0.72, 0.72, 0.76, 0.76, 0.75, 0.72, 0.65, 0.75, 0.75, 0.73, 0.76, 0.74, 0.73, 0.75, 0.69, 0.69, 0.69, 0.69, 0.76, 0.78, 0.69, 0.75, 0.71, 0.7, 0.76, 0.67, 0.72, 0.76, 0.73, 0.66, 0.72, 0.69, 0.73, 0.75, 0.69, 0.74, 0.75, 0.73, 0.69, 0.74, 0.69, 0.69, 0.75, 0.74, 0.7, 0.75, 0.69, 0.7, 0.74, 0.76, 0.73, 0.75, 0.76, 0.74, 0.76, 0.76, 0.75, 0.71, 0.74, 0.72, 0.75, 0.7, 0.73, 0.76, 0.74, 0.75, 0.75, 0.71, 0.7, 0.69, 0.69, 0.69, 0.72, 0.74, 0.76, 0.74, 0.73, 0.7, 0.76, 0.68, 0.72, 0.75, 0.65, 0.69, 0.76, 0.68, 0.76, 0.76, 0.74, 0.73, 0.68, 0.75, 0.69, 0.76, 0.75, 0.69, 0.69, 0.69, 0.76, 0.76, 0.76, 0.69, 0.74, 0.65, 0.75, 0.76, 0.76, 0.67, 0.75, 0.76, 0.74, 0.74, 0.74, 0.73, 0.75, 0.73, 0.72, 0.69, 0.74, 0.7, 0.71, 0.71, 0.71, 0.76, 0.72, 0.71, 0.71, 0.68, 0.76, 0.76, 0.72, 0.72, 0.74, 0.73, 0.66, 0.69, 0.73, 0.75, 0.69, 0.75, 0.73, 0.71, 0.75, 0.75, 0.72, 0.75, 0.76, 0.76, 0.76, 0.74, 0.7, 0.73, 0.75, 0.67, 0.67, 0.71, 0.76, 0.76, 0.69, 0.68, 0.76, 0.72, 0.76, 0.7, 0.68, 0.73, 0.72, 0.7, 0.68, 0.72, 0.76, 0.76, 0.76, 0.7, 0.69, 0.69, 0.73, 0.71, 0.78, 0.65, 0.76, 0.73, 0.76, 0.74, 0.65, 0.76, 0.73, 0.72, 0.75, 0.73, 0.7, 0.73, 0.76, 0.67, 0.73, 0.71, 0.75, 0.75, 0.75, 0.77, 0.68, 0.67, 0.78, 0.7, 0.76, 0.74, 0.75, 0.75, 0.74, 0.69, 0.7, 0.76, 0.75, 0.68, 0.7, 0.73};
    
    #pragma DATA_SECTION (delta, "vn_sect")
    //Pressure shift coeff.
    const float delta[460] = {-0.002524, -0.002951, -0.002956, -0.002924, -0.002834, -0.002755, -0.003016, -0.002235, -0.002919, -0.002834, -0.00311, -0.002235, -0.002594, -0.00309, -0.00311, -0.003324, -0.001768, -0.002627, -0.002876, -0.002876, -0.002897, -0.002884, -0.002387, -0.002387, -0.003621, -0.002328, -0.003187, -0.002294, -0.003509, -0.002551, -0.002294, -0.002917, -0.002917, -0.002915, -0.002551, -0.003711, -0.003049, -0.003277, -0.002489, -0.002177, -0.00297, -0.00235, -0.002323, -0.002323, -0.002918, -0.002891, -0.002177, -0.002876, -0.00235, -0.002872, -0.00262, -0.002887, -0.002887, -0.002876, -0.002513, -0.001719, -0.00262, -0.002876, -0.00224, -0.002522, -0.001776, -0.001776, -0.002914, -0.002914, -0.003201, -0.002257, -0.002257, -0.002915, -0.002611, -0.00265, -0.00301, -0.002069, -0.003084, -0.003084, -0.00301, -0.002732, -0.002551, -0.002551, -0.002189, -0.002894, -0.00272, -0.002741, -0.00331, -0.00331, -0.003107, -0.003346, -0.003091, -0.003091, -0.003077, -0.002185, -0.002185, -0.003027, -0.003027, -0.002974, -0.002876, -0.002931, -0.002741, -0.003208, -0.003016, -0.003017, -0.002557, -0.002884, -0.002888, -0.002182, -0.002392, -0.003124, -0.002884, -0.002294, -0.002933, -0.00298, -0.002828, -0.002107, -0.002107, -0.002304, -0.002544, -0.00298, -0.002961, -0.003049, -0.002924, -0.002985, -0.002756, -0.003404, -0.003049, -0.00329, -0.002911, -0.003648, -0.002294, -0.002294, -0.002985, -0.002914, -0.002037, -0.002037, -0.002911, -0.002924, -0.002041, -0.003046, -0.002262, -0.003301, -0.001802, -0.00188, -0.001802, -0.002894, -0.003016, -0.001977, -0.001977, -0.003134, -0.002814, -0.003134, -0.002891, -0.002732, -0.002891, -0.003277, -0.002958, -0.002904, -0.003479, -0.002958, -0.003736, -0.002897, -0.002933, -0.001926, -0.001926, -0.002894, -0.001818, -0.002172, -0.002218, -0.002869, -0.002112, -0.002917, -0.002917, -0.002925, -0.001884, -0.001884, -0.002808, -0.002167, -0.00317, -0.00193, -0.002956, -0.002951, -0.002828, -0.002828, -0.00296, -0.003224, -0.002788, -0.003063, -0.001849, -0.001849, -0.00289, -0.00289, -0.002808, -0.002509, -0.001758, -0.002954, -0.002905, -0.001815, -0.001815, -0.001981, -0.003171, -0.002172, -0.002172, -0.001767, -0.001767, -0.002011, -0.002923, -0.002691, -0.00309, -0.002849, -0.001853, -0.002849, -0.002334, -0.0029, -0.001888, -0.002884, -0.002884, -0.002905, -0.003331, -0.00292, -0.00292, -0.003331, -0.002929, -0.002283, -0.004054, -0.002633, -0.001819, -0.001771, -0.002753, -0.001805, -0.002057, -0.003676, -0.002057, -0.001608, -0.003098, -0.003098, -0.002891, -0.001927, -0.00311, -0.00311, -0.003024, -0.001927, -0.003603, -0.00292, -0.003024, -0.002861, -0.003003, -0.003374, -0.003043, -0.003043, -0.002885, -0.002885, -0.002884, -0.00309, -0.003759, -0.002884, -0.002258, -0.002836, -0.002902, -0.002991, -0.003033, -0.002935, -0.00179, -0.002611, -0.002605, -0.003229, -0.001741, -0.001864, -0.002605, -0.002946, -0.003148, -0.002283, -0.00292, -0.003432, -0.003063, -0.002923, -0.002997, -0.003451, -0.003063, -0.002414, -0.00304, -0.002247, -0.002557, -0.002997, -0.002247, -0.002997, -0.002414, -0.002946, -0.002252, -0.002095, -0.002951, -0.002997, -0.003157, -0.00293, -0.002252, -0.003157, -0.00224, -0.002888, -0.002762, -0.002943, -0.002888, -0.002987, -0.0029, -0.002902, -0.00293, -0.002734, -0.002843, -0.002753, -0.002299, -0.002686, -0.002762, -0.002897, -0.002852, -0.002299, -0.00292, -0.003124, -0.002172, -0.002605, -0.002605, -0.003249, -0.003072, -0.002974, -0.001749, -0.002974, -0.002776, -0.003153, -0.001749, -0.003324, -0.003077, -0.002936, -0.003703, -0.002345, -0.002891, -0.003359, -0.002897, -0.002897, -0.002971, -0.003046, -0.003359, -0.002943, -0.002568, -0.002914, -0.00296, -0.002568, -0.002345, -0.002345, -0.00292, -0.00292, -0.002894, -0.002584, -0.00284, -0.003786, -0.002956, -0.002892, -0.002927, -0.003404, -0.002926, -0.003016, -0.002843, -0.002843, -0.00284, -0.001876, -0.00287, -0.001876, -0.002753, -0.002532, -0.002834, -0.002706, -0.001967, -0.003134, -0.003134, -0.002897, -0.003019, -0.003117, -0.003117, -0.003374, -0.002894, -0.002894, -0.003057, -0.003057, -0.002834, -0.002814, -0.003425, -0.003252, -0.00304, -0.002926, -0.002247, -0.002926, -0.00304, -0.002709, -0.002929, -0.002863, -0.003049, -0.002863, -0.003014, -0.002888, -0.002888, -0.002946, -0.003171, -0.003003, -0.00293, -0.003329, -0.003457, -0.003105, -0.002873, -0.002884, -0.00179, -0.003346, -0.002897, -0.003077, -0.0029, -0.003177, -0.003324, -0.003011, -0.003077, -0.003177, -0.003274, -0.003054, -0.002885, -0.002885, -0.002873, -0.002669, -0.002247, -0.002247, -0.003011, -0.002171, -0.001741, -0.003728, -0.002888, -0.002183, -0.002888, -0.002823, -0.003816, -0.002927, -0.00301, -0.003077, -0.002932, -0.00301, -0.003135, -0.002348, -0.002892, -0.003389, -0.00188, -0.003091, -0.002876, -0.002923, -0.002932, -0.001931, -0.002624, -0.003389, -0.00173, -0.002644, -0.002887, -0.002991, -0.00296, -0.002949, -0.002991, -0.002509, -0.002644, -0.002887, -0.00293, -0.003265, -0.003208, -0.002848};
    

    Then I changed the linker file as follows

    But I am Getting insufficient memory error

    As per that error space needed is 0x1929 so essentially RAMGS3 and RAMGS4 should be enough . Right???

    Please Help

    regards,

  • Hi  

    I have got it to compile without error by changing following things in the linker file.

    Increased the size of RAMGS3 from 0x01000 to 0x02000. and allocated RAMGS3 to "vn_sect"  as "vn_sect :> RAMGS3   PAGE = 1"

    But how do I check that the function which was earlier fetching the variable from the c file is now fetching from RAMGS3

    Here is a screenshot how the arrays are called in the function

  • Rohan Chawhan said:
    Increased the size of RAMGS3 from 0x01000 to 0x02000. and allocated RAMGS3 to "vn_sect"  as "vn_sect :> RAMGS3   PAGE = 1"

    This is a reasonable solution.  Your original problem is that the input section vn_sect was larger than any of the memory ranges you attempted to allocate it to.  Section splitting (signaled by the >> syntax) can only split an output section on input section boundaries.  This is discussed in the section splitting part of the Linker Primer article I referenced earlier.  You solved it by collapsing a few adjacent memory ranges into a single memory range, which is then large enough to hold vn_sect.

    Rohan Chawhan said:
    But how do I check that the function which was earlier fetching the variable from the c file is now fetching from RAMGS3

    There are a few ways to see the address of a variable.  One easy method is to look in the linker map file.  This is a text file created by the linker when you use the --map_file option.  In a CCS project, it is usually located in the Debug folder, and is named something like name_of_project.map.  Search it for the name of the variable.

    Thanks and regards,

    -George

  • Hey George,

    I can see the arrays are now stored in RAMGS3. Which is why i marked your answer as 'resolved my problem', that it did.

    Though I am still using "extern float v0[460];" to declare the array in my code. Is this declaration done right? Is it necessary to write extern?

    And since there is no change in the function which uses these variables, how can I say that the function is referring to the arrays stored in RAMGS3 and not refering to "HITRAN.c" file? Because my program is still taking almost the same time as it used to take before, which I was hoping to reduce after after moving the arrays to RAM.

    Regards

  • Rohan Chawhan said:
    Though I am still using "extern float v0[460];" to declare the array in my code. Is this declaration done right? Is it necessary to write extern?

    Please see this FAQ (not from TI) for a general discussion of this issue.

    Rohan Chawhan said:
    how can I say that the function is referring to the arrays stored in RAMGS3

    Because of the address corresponding the symbols that mark the beginning of each array.

    Rohan Chawhan said:
    Because my program is still taking almost the same time as it used to take before, which I was hoping to reduce after after moving the arrays to RAM.

    That is beyond my expertise.  I recommend you start a new thread in the C2000 device forum.  Or, if you prefer, I can move this thread to that forum.

    Thanks and regards,

    -George