<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://e2echina.ti.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>API 解答论坛 - 最近的话题</title><link>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum</link><description /><dc:language>zh-CN</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 14 May 2026 08:31:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum" /><item><title>TMS320C6678: C6678使用OPENMP编译问题</title><link>https://e2echina.ti.com/thread/1073548?ContentTypeID=0</link><pubDate>Wed, 13 May 2026 03:57:26 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:40b3ea8f-25b0-4724-8dc2-7d2babb0e3b9</guid><dc:creator>w lz</dc:creator><slash:comments>2</slash:comments><comments>https://e2echina.ti.com/thread/1073548?ContentTypeID=0</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1073548/tms320c6678-c6678-openmp/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Part Number:&lt;/b&gt; TMS320C6678&lt;/p&gt;&lt;p&gt;您好！&lt;/p&gt;
&lt;p&gt;我想要在现有的工程里添加openmp，但是编译报错：&lt;/p&gt;
&lt;p&gt;unresolved symbol GOMP_atomic_end, first referenced in ./app/mcsDlinkTest.obj；&lt;/p&gt;
&lt;p&gt;unresolved symbol GOMP_atomic_start, first referenced in ./app/mcsDlinkTest.obj；&lt;/p&gt;
&lt;p&gt;unresolved symbol GOMP_parallel_end, first referenced in ./app/mcsDlinkTest.obj；&lt;/p&gt;
&lt;p&gt;unresolved symbol GOMP_parallel_start, first referenced in ./app/mcsDlinkTest.obj；&lt;/p&gt;
&lt;p&gt;unresolved symbol omp_get_num_threads, first referenced in ./app/mcsDlinkTest.obj；&lt;/p&gt;
&lt;p&gt;unresolved symbol omp_get_thread_num, first referenced in ./app/mcsDlinkTest.obj&lt;/p&gt;
&lt;p&gt;已开启--openmp选项&lt;/p&gt;
&lt;p&gt;&lt;img src="https://e2echina.ti.com/cfs-file/__key/communityserver-discussions-components-files/155/0218.image.png" alt="image.png" width="509" height="321" data-temp-id="image.png-99716" /&gt;&lt;/p&gt;
&lt;p&gt;所用products版本如下：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://e2echina.ti.com/cfs-file/__key/communityserver-discussions-components-files/155/03dc7468_2D00_424e_2D00_4117_2D00_a3a3_2D00_d9dc242ecdbd.png" alt="03dc7468-424e-4117-a3a3-d9dc242ecdbd.png" width="512" height="325" data-temp-id="03dc7468-424e-4117-a3a3-d9dc242ecdbd.png-107839" /&gt;&lt;/p&gt;
&lt;p&gt;代码如下：&lt;/p&gt;
&lt;p&gt;#include &amp;lt;ti/omp/omp.h&amp;gt;&lt;/p&gt;
&lt;p&gt;void ompTest(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; int i;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int n = 0; // 初始化累加器&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; #pragma omp parallel for reduction(+:n)&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(i = 0; i &amp;lt; 1000; i++)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; n += (i + i);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; return;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;请问我还需要增加什么操作，才能让我的工程顺利编译通过？&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>RE: TMS320C6678: C6678使用OPENMP编译问题</title><link>https://e2echina.ti.com/thread/3865391?ContentTypeID=1</link><pubDate>Thu, 14 May 2026 08:31:45 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:64cc3458-3114-484e-80b6-689ebb601b69</guid><dc:creator>Eirwen</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/3865391?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1073548/tms320c6678-c6678-openmp/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;关于这个报错，请尝试参考下面链接：&lt;/p&gt;
&lt;p&gt;&lt;a href="https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1501737/tms320f28027-undefined-symbols-ctrl_initctrl-first-referenced-in-file-main-obj?tisearch=e2e-sitesearch&amp;amp;keymatch=first%2520referenced%2520in"&gt;TMS320F28027: undefined symbols CTRL_initCtrl first referenced in file .main.obj - C2000 microcontrollers forum - C2000&lt;span class="emoticon" data-url="https://e2echina.ti.com/cfs-file/__key/system/emoji/2122.svg" title="Tm"&gt;&amp;#x2122;&lt;/span&gt;︎ microcontrollers - TI E2E support forums&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1106964/tms320f28069m-unresolved-symbol-_buttoncenter-first-referenced-in-sources-menu_haptic_bike-menu_haptic_bike-obj?tisearch=e2e-sitesearch&amp;amp;keymatch=first%25252520referenced%25252520in"&gt;TMS320F28069M: unresolved symbol _ButtonCenter, first referenced in ./Sources/Menu_Haptic_Bike/Menu_Haptic_Bike.obj - C2000 microcontrollers forum - C2000&lt;span class="emoticon" data-url="https://e2echina.ti.com/cfs-file/__key/system/emoji/2122.svg" title="Tm"&gt;&amp;#x2122;&lt;/span&gt;︎ microcontrollers - TI E2E support forums&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1264283/tms320f28379d-unresolved-symbol-first-referenced-in-cla-file?tisearch=e2e-sitesearch&amp;amp;keymatch=first%252520referenced%252520in"&gt;TMS320F28379D: Unresolved symbol, first referenced in cla file - C2000 microcontrollers forum - C2000&lt;span class="emoticon" data-url="https://e2echina.ti.com/cfs-file/__key/system/emoji/2122.svg" title="Tm"&gt;&amp;#x2122;&lt;/span&gt;︎ microcontrollers - TI E2E support forums&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320C6678: C6678使用OPENMP编译问题</title><link>https://e2echina.ti.com/thread/3865288?ContentTypeID=1</link><pubDate>Wed, 13 May 2026 04:49:41 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:260d30b4-e8c0-4f72-8aea-4f2512e0d334</guid><dc:creator>Eirwen</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3865288?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1073548/tms320c6678-c6678-openmp/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;已经收到了您的案例，调查需要些时间，感谢您的耐心等待。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DLPC900: DLP670S: In DLPC900 + DLP670S, according to the official provided API, when performing image writing in the On-The-Fly mode, only one image can be written.</title><link>https://e2echina.ti.com/thread/1072452?ContentTypeID=0</link><pubDate>Sat, 09 May 2026 02:16:08 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:5ab9d058-4ba5-4363-829f-1e0b087d00b3</guid><dc:creator>Zhenming Shen</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/1072452?ContentTypeID=0</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1072452/dlpc900-dlp670s-in-dlpc900-dlp670s-according-to-the-official-provided-api-when-performing-image-writing-in-the-on-the-fly-mode-only-one-image-can-be-written/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Part Number:&lt;/b&gt; DLPC900&lt;/p&gt;&lt;p&gt;Here is the image download function that I wrote based on 6500. Since the code I wrote was for a single image, I first expanded the single image into a 24-bit image before proceeding with the download:&lt;/p&gt;
&lt;p&gt;int DownloadCompressedImage(const std::string&amp;amp; bmpPath, unsigned char imageIndex, int dmd_width, int dmd_height)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; //检查文件是否存在&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (!dlp::File::Exists(bmpPath)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;File does not exist: &amp;quot; &amp;lt;&amp;lt; bmpPath &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 读取 BMP 信息&lt;br /&gt;&amp;nbsp; &amp;nbsp; BMPInfo info = ReadBMP(bmpPath);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (info.width == 0 || info.height == 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Failed to read BMP or unsupported format.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -2;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (info.bitCount != 1 &amp;amp;&amp;amp; info.bitCount != 24) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Only supporte 1-bit and 24-bit BMP&amp;quot; &amp;lt;&amp;lt; info.bitCount &amp;lt;&amp;lt; &amp;quot; bits.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; int imgWidth &amp;nbsp;= info.width;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int imgHeight = abs(info.height);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (imgWidth != dmd_width || imgHeight != dmd_height) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Resolution mismatch: &amp;quot; &amp;lt;&amp;lt; imgWidth &amp;lt;&amp;lt; &amp;quot;x&amp;quot; &amp;lt;&amp;lt; imgHeight&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&amp;lt; &amp;quot; vs &amp;quot; &amp;lt;&amp;lt; dmd_width &amp;lt;&amp;lt; &amp;quot;x&amp;quot; &amp;lt;&amp;lt; dmd_height &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -4;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 如果1位图像为24位图像，如果是24位图像直接使用原始数据&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::vector&amp;lt;uint8_t&amp;gt; rgb24Buffer;&lt;br /&gt;&amp;nbsp; &amp;nbsp; const uint8_t* imageDataForCompression = nullptr;&lt;br /&gt;&amp;nbsp; &amp;nbsp; size_t dataSize = 0;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; if (info.bitCount == 1) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rgb24Buffer = Convert1To24Bit(info);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; imageDataForCompression = rgb24Buffer.data();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dataSize = rgb24Buffer.size();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Converted 1-bit BMP to 24-bit RGB.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; else {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 直接使用 info.rawData（注意 BMP 存储为 BGR，Splash_createImage 内部会做 BGR-&amp;gt;RGB 和垂直翻转）&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; imageDataForCompression = info.rawData.data();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dataSize = info.rawData.size();&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 构造虚拟的 BMP 完整文件缓冲区（用于 Splash_createImage）为了&lt;br /&gt;&amp;nbsp; &amp;nbsp; // 使用 Splash_createImage，需要构造一个临时的 24 位 BMP 内存镜像&lt;br /&gt;&amp;nbsp; &amp;nbsp; // 构造 BMP 文件头（14字节）+ 信息头（40字节）+ 像素数据&lt;br /&gt;&amp;nbsp; &amp;nbsp; int bmpHeaderSize = 14 + 40;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int rowSize24 = (imgWidth * 3 + 3) &amp;amp; ~3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int pixelDataSize = rowSize24 * imgHeight;&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::vector&amp;lt;uint8_t&amp;gt; fakeBMP(bmpHeaderSize + pixelDataSize);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 文件头&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint16_t bfType = 0x4D42;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t bfSize = bmpHeaderSize + pixelDataSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t bfOffBits = bmpHeaderSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(fakeBMP.data(), &amp;amp;bfType, 2);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(fakeBMP.data() + 2, &amp;amp;bfSize, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(fakeBMP.data() + 10, &amp;amp;bfOffBits, 4);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 信息头&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biSize = 40;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biWidth = imgWidth;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biHeight = imgHeight;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint16_t biPlanes = 1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint16_t biBitCount = 24;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biCompression = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biSizeImage = pixelDataSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biXPelsPerMeter = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biYPelsPerMeter = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biClrUsed = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biClrImportant = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint8_t* header = fakeBMP.data() + 14;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header, &amp;amp;biSize, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 4, &amp;amp;biWidth, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 8, &amp;amp;biHeight, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 12, &amp;amp;biPlanes, 2);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 14, &amp;amp;biBitCount, 2);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 16, &amp;amp;biCompression, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 20, &amp;amp;biSizeImage, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 24, &amp;amp;biXPelsPerMeter, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 28, &amp;amp;biYPelsPerMeter, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 32, &amp;amp;biClrUsed, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 36, &amp;amp;biClrImportant, 4);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 填入像素数据（需要保持每一行对齐到4字节，且BGR顺序）&lt;br /&gt;&amp;nbsp; &amp;nbsp; const uint8_t* src = (info.bitCount == 1) ? imageDataForCompression : imageDataForCompression;&lt;br /&gt;&amp;nbsp; &amp;nbsp; for (int y = 0; y &amp;lt; imgHeight; ++y) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int srcRow = y;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 如果原始数据是自顶向下，需要翻转？我们根据 BMP 规范：当 biHeight &amp;gt;0 时，数据存储为自底向上。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 为了简单，我们假设原始数据已经是自顶向下（第一行对应图像顶部）。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 我们构造标准的自底向上 BMP：最后一行放在数据开头。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int dstY = y;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint8_t* dstRow = fakeBMP.data() + bmpHeaderSize + dstY * rowSize24;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; const uint8_t* srcRowPtr = src + y * imgWidth * 3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int x = 0; x &amp;lt; imgWidth; ++x) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dstRow[x * 3 + 0] = srcRowPtr[x * 3 + 0]; // B&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dstRow[x * 3 + 1] = srcRowPtr[x * 3 + 1]; // G&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dstRow[x * 3 + 2] = srcRowPtr[x * 3 + 2]; // R&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; int32_t* pWidth = (int32_t*)(fakeBMP.data() + 18);&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t* pHeight = (int32_t*)(fakeBMP.data() + 22);&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Fake BMP width = &amp;quot; &amp;lt;&amp;lt; *pWidth &amp;lt;&amp;lt; &amp;quot;, height = &amp;quot; &amp;lt;&amp;lt; *pHeight &amp;lt;&amp;lt; std::endl;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; //获取图像splash数据&lt;br /&gt;&amp;nbsp; &amp;nbsp; COMPRESSED_BITMAPIMAGES images = { nullptr, 0, nullptr, 0 };&lt;br /&gt;&amp;nbsp; &amp;nbsp; int &amp;nbsp;compression_format = 0xF;&lt;br /&gt;&amp;nbsp; &amp;nbsp; bool split = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int ret = Splash_createImage(fakeBMP.data(), &amp;amp;images, &amp;amp;compression_format, split);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (ret != 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Splash_createImage failed with error &amp;quot; &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -5;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; unsigned char* leftData = images.bitmapImage1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; unsigned char* rightData = images.bitmapImage2;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int leftSize &amp;nbsp;= images.sizeBitmap1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int rightSize = images.sizeBitmap2;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (!leftData || !rightData || leftSize == 0 || rightSize == 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Compressed image data is empty&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 注意需要释放可能已分配的内存&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (leftData) &amp;nbsp;free(leftData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rightData) free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -6;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 上传主控制器（左半图）&lt;br /&gt;&amp;nbsp; &amp;nbsp; bool master = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (DLPC900_InitPatternMemLoad(master, imageIndex, leftSize) &amp;lt; 0)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Master InitPatternMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -7;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; int left_offset = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int left_remaining = leftSize;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; while (left_remaining &amp;gt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int sent = DLPC900_pattenMemLoad(master, leftData + leftSize - left_remaining, left_remaining);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (sent &amp;lt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Master pattenMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -8;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; left_offset += sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; left_remaining -= sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Master upload: &amp;quot; &amp;lt;&amp;lt; (left_offset * 100 / leftSize) &amp;lt;&amp;lt; &amp;quot;%\r&amp;quot; &amp;lt;&amp;lt; std::flush;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt; &amp;quot;Master image uploaded.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 上传从控制器（右半图）&lt;br /&gt;&amp;nbsp; &amp;nbsp; master = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (DLPC900_InitPatternMemLoad(master, imageIndex, rightSize) &amp;lt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Slave InitPatternMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -9;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; int right_offset = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int right_remaining = rightSize;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; while (right_remaining &amp;gt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int sent = DLPC900_pattenMemLoad(master, rightData + rightSize - right_remaining, right_remaining);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (sent &amp;lt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Slave pattenMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -10;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; right_offset += sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; right_remaining -= sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Slave upload: &amp;quot; &amp;lt;&amp;lt; (right_offset * 100 / rightSize) &amp;lt;&amp;lt; &amp;quot;%\r&amp;quot; &amp;lt;&amp;lt; std::flush;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt; &amp;quot;Slave image uploaded.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; free(leftData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;Below is the code for my main program. The current issue is that when I download these three images, only the third image can be displayed. The first two images have a display time, but no patterns are shown. There is a 4-second period where there is no image, and then the third image starts to be displayed in 2 seconds. Is this a problem with my LUT configuration or with the download function?&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //只有暂停显示的情况下才允许配置 LUT 和显示图形&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[4] = DLPC900_PatternDisplay(0);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[4] &amp;lt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error sending pattern display command&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::vector&amp;lt;std::string&amp;gt; imagePaths =&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;C:\\Users\\leaper\\Desktop\\DLPC900\\DLPC900REF-SW-5.3.0\\DLPC900REF-SW-5.3.0\\DLPC900REF-GUI\\Images and Batch files\\LCR670S_Images\\0101.bmp&amp;quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;C:\\Users\\leaper\\Desktop\\DLPC900\\DLPC900REF-SW-5.3.0\\DLPC900REF-SW-5.3.0\\DLPC900REF-GUI\\Images and Batch files\\LCR670S_Images\\0098.bmp&amp;quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;C:\\Users\\leaper\\Desktop\\DLPC900\\DLPC900REF-SW-5.3.0\\DLPC900REF-SW-5.3.0\\DLPC900REF-GUI\\Images and Batch files\\LCR670S_Images\\0303.bmp&amp;quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 通用参数（可根据需要调整）&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int ExpUs = 2000000; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 曝光时间&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int DarkTime = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 黑暗时间&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int BitDepth = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 图像深度&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int LEDSelect = 7; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // LED颜色&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool ClearPat = false; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 显示后是否清除图案&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool WaitForTrigger = false; // 是否需要外部触发（内部触发连续播放）&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool TrigOut2 = true; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 是否启用 Trigger2 输出&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(int i = 0; i &amp;lt; imagePaths.size(); i++)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[5] = DLPC900_AddToPatLut(i, ExpUs, ClearPat, BitDepth, LEDSelect, WaitForTrigger, DarkTime, TrigOut2, i, 0);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[5] != 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error adding pattern &amp;quot; &amp;lt;&amp;lt; i + 1 &amp;lt;&amp;lt; &amp;quot; to LUT&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[6] = DLPC900_SendPatLut();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[6] != 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error sending pattern LUT&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned int numLutEntries = imagePaths.size();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned int repeat = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[7] = DLPC900_SetPatternConfig(numLutEntries, repeat);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[7] &amp;lt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error setting pattern config&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; imagePaths.size(); i++)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[8] = DownloadCompressedImage(imagePaths[i], i, 2716, 1600);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[8] == 0)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Image &amp;quot; &amp;lt;&amp;lt; std::filesystem::path(imagePaths[i]).filename() &amp;lt;&amp;lt; &amp;quot; Download completed.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Image &amp;quot; &amp;lt;&amp;lt; std::filesystem::path(imagePaths[i]).filename() &amp;lt;&amp;lt; &amp;quot; Download failed with code &amp;quot; &amp;lt;&amp;lt; result[9] &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;</description></item><item><title>DLPC900: DLP670S: In DLPC900 + DLP670S, according to the official provided API, when performing image writing in the On-The-Fly mode, only one image can be written.</title><link>https://e2echina.ti.com/thread/1072449?ContentTypeID=0</link><pubDate>Sat, 09 May 2026 02:13:29 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:45468b5d-cc2d-49fc-ab33-8a8df80dda33</guid><dc:creator>Zhenming Shen</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/1072449?ContentTypeID=0</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1072449/dlpc900-dlp670s-in-dlpc900-dlp670s-according-to-the-official-provided-api-when-performing-image-writing-in-the-on-the-fly-mode-only-one-image-can-be-written/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Part Number:&lt;/b&gt; DLPC900&lt;/p&gt;&lt;p&gt;Here is the image download function that I wrote based on 6500. Since the code I wrote was for a single image, I first expanded the single image into a 24-bit image before proceeding with the download:&lt;/p&gt;
&lt;p&gt;int DownloadCompressedImage(const std::string&amp;amp; bmpPath, unsigned char imageIndex, int dmd_width, int dmd_height)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; //检查文件是否存在&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (!dlp::File::Exists(bmpPath)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;File does not exist: &amp;quot; &amp;lt;&amp;lt; bmpPath &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 读取 BMP 信息&lt;br /&gt;&amp;nbsp; &amp;nbsp; BMPInfo info = ReadBMP(bmpPath);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (info.width == 0 || info.height == 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Failed to read BMP or unsupported format.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -2;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (info.bitCount != 1 &amp;amp;&amp;amp; info.bitCount != 24) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Only supporte 1-bit and 24-bit BMP&amp;quot; &amp;lt;&amp;lt; info.bitCount &amp;lt;&amp;lt; &amp;quot; bits.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; int imgWidth &amp;nbsp;= info.width;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int imgHeight = abs(info.height);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (imgWidth != dmd_width || imgHeight != dmd_height) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Resolution mismatch: &amp;quot; &amp;lt;&amp;lt; imgWidth &amp;lt;&amp;lt; &amp;quot;x&amp;quot; &amp;lt;&amp;lt; imgHeight&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&amp;lt; &amp;quot; vs &amp;quot; &amp;lt;&amp;lt; dmd_width &amp;lt;&amp;lt; &amp;quot;x&amp;quot; &amp;lt;&amp;lt; dmd_height &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -4;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 如果1位图像为24位图像，如果是24位图像直接使用原始数据&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::vector&amp;lt;uint8_t&amp;gt; rgb24Buffer;&lt;br /&gt;&amp;nbsp; &amp;nbsp; const uint8_t* imageDataForCompression = nullptr;&lt;br /&gt;&amp;nbsp; &amp;nbsp; size_t dataSize = 0;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; if (info.bitCount == 1) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rgb24Buffer = Convert1To24Bit(info);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; imageDataForCompression = rgb24Buffer.data();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dataSize = rgb24Buffer.size();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Converted 1-bit BMP to 24-bit RGB.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; else {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 直接使用 info.rawData（注意 BMP 存储为 BGR，Splash_createImage 内部会做 BGR-&amp;gt;RGB 和垂直翻转）&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; imageDataForCompression = info.rawData.data();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dataSize = info.rawData.size();&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 构造虚拟的 BMP 完整文件缓冲区（用于 Splash_createImage）为了&lt;br /&gt;&amp;nbsp; &amp;nbsp; // 使用 Splash_createImage，需要构造一个临时的 24 位 BMP 内存镜像&lt;br /&gt;&amp;nbsp; &amp;nbsp; // 构造 BMP 文件头（14字节）+ 信息头（40字节）+ 像素数据&lt;br /&gt;&amp;nbsp; &amp;nbsp; int bmpHeaderSize = 14 + 40;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int rowSize24 = (imgWidth * 3 + 3) &amp;amp; ~3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int pixelDataSize = rowSize24 * imgHeight;&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::vector&amp;lt;uint8_t&amp;gt; fakeBMP(bmpHeaderSize + pixelDataSize);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 文件头&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint16_t bfType = 0x4D42;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t bfSize = bmpHeaderSize + pixelDataSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t bfOffBits = bmpHeaderSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(fakeBMP.data(), &amp;amp;bfType, 2);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(fakeBMP.data() + 2, &amp;amp;bfSize, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(fakeBMP.data() + 10, &amp;amp;bfOffBits, 4);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 信息头&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biSize = 40;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biWidth = imgWidth;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biHeight = imgHeight;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint16_t biPlanes = 1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint16_t biBitCount = 24;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biCompression = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biSizeImage = pixelDataSize;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biXPelsPerMeter = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t biYPelsPerMeter = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biClrUsed = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint32_t biClrImportant = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; uint8_t* header = fakeBMP.data() + 14;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header, &amp;amp;biSize, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 4, &amp;amp;biWidth, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 8, &amp;amp;biHeight, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 12, &amp;amp;biPlanes, 2);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 14, &amp;amp;biBitCount, 2);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 16, &amp;amp;biCompression, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 20, &amp;amp;biSizeImage, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 24, &amp;amp;biXPelsPerMeter, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 28, &amp;amp;biYPelsPerMeter, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 32, &amp;amp;biClrUsed, 4);&lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(header + 36, &amp;amp;biClrImportant, 4);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 填入像素数据（需要保持每一行对齐到4字节，且BGR顺序）&lt;br /&gt;&amp;nbsp; &amp;nbsp; const uint8_t* src = (info.bitCount == 1) ? imageDataForCompression : imageDataForCompression;&lt;br /&gt;&amp;nbsp; &amp;nbsp; for (int y = 0; y &amp;lt; imgHeight; ++y) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int srcRow = y;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 如果原始数据是自顶向下，需要翻转？我们根据 BMP 规范：当 biHeight &amp;gt;0 时，数据存储为自底向上。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 为了简单，我们假设原始数据已经是自顶向下（第一行对应图像顶部）。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 我们构造标准的自底向上 BMP：最后一行放在数据开头。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int dstY = y;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint8_t* dstRow = fakeBMP.data() + bmpHeaderSize + dstY * rowSize24;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; const uint8_t* srcRowPtr = src + y * imgWidth * 3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int x = 0; x &amp;lt; imgWidth; ++x) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dstRow[x * 3 + 0] = srcRowPtr[x * 3 + 0]; // B&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dstRow[x * 3 + 1] = srcRowPtr[x * 3 + 1]; // G&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dstRow[x * 3 + 2] = srcRowPtr[x * 3 + 2]; // R&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; int32_t* pWidth = (int32_t*)(fakeBMP.data() + 18);&lt;br /&gt;&amp;nbsp; &amp;nbsp; int32_t* pHeight = (int32_t*)(fakeBMP.data() + 22);&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Fake BMP width = &amp;quot; &amp;lt;&amp;lt; *pWidth &amp;lt;&amp;lt; &amp;quot;, height = &amp;quot; &amp;lt;&amp;lt; *pHeight &amp;lt;&amp;lt; std::endl;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; //获取图像splash数据&lt;br /&gt;&amp;nbsp; &amp;nbsp; COMPRESSED_BITMAPIMAGES images = { nullptr, 0, nullptr, 0 };&lt;br /&gt;&amp;nbsp; &amp;nbsp; int &amp;nbsp;compression_format = 0xF;&lt;br /&gt;&amp;nbsp; &amp;nbsp; bool split = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int ret = Splash_createImage(fakeBMP.data(), &amp;amp;images, &amp;amp;compression_format, split);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (ret != 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Splash_createImage failed with error &amp;quot; &amp;lt;&amp;lt; ret &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -5;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; unsigned char* leftData = images.bitmapImage1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; unsigned char* rightData = images.bitmapImage2;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int leftSize &amp;nbsp;= images.sizeBitmap1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int rightSize = images.sizeBitmap2;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (!leftData || !rightData || leftSize == 0 || rightSize == 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Compressed image data is empty&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 注意需要释放可能已分配的内存&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (leftData) &amp;nbsp;free(leftData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rightData) free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -6;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 上传主控制器（左半图）&lt;br /&gt;&amp;nbsp; &amp;nbsp; bool master = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (DLPC900_InitPatternMemLoad(master, imageIndex, leftSize) &amp;lt; 0)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Master InitPatternMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -7;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; int left_offset = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int left_remaining = leftSize;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; while (left_remaining &amp;gt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int sent = DLPC900_pattenMemLoad(master, leftData + leftSize - left_remaining, left_remaining);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (sent &amp;lt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Master pattenMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -8;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; left_offset += sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; left_remaining -= sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Master upload: &amp;quot; &amp;lt;&amp;lt; (left_offset * 100 / leftSize) &amp;lt;&amp;lt; &amp;quot;%\r&amp;quot; &amp;lt;&amp;lt; std::flush;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt; &amp;quot;Master image uploaded.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; // 上传从控制器（右半图）&lt;br /&gt;&amp;nbsp; &amp;nbsp; master = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (DLPC900_InitPatternMemLoad(master, imageIndex, rightSize) &amp;lt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Slave InitPatternMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -9;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; int right_offset = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; int right_remaining = rightSize;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; while (right_remaining &amp;gt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int sent = DLPC900_pattenMemLoad(master, rightData + rightSize - right_remaining, right_remaining);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (sent &amp;lt; 0) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cerr &amp;lt;&amp;lt; &amp;quot;Slave pattenMemLoad failed&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(leftData); free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -10;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; right_offset += sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; right_remaining -= sent;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Slave upload: &amp;quot; &amp;lt;&amp;lt; (right_offset * 100 / rightSize) &amp;lt;&amp;lt; &amp;quot;%\r&amp;quot; &amp;lt;&amp;lt; std::flush;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt; &amp;quot;Slave image uploaded.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; free(leftData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; free(rightData);&lt;br /&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;Below is the code for my main program. The current issue is that when I download these three images, only the third image can be displayed. The first two images have a display time, but no patterns are shown. There is a 4-second period where there is no image, and then the third image starts to be displayed in 2 seconds. Is this a problem with my LUT configuration or with the download function?&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //只有暂停显示的情况下才允许配置 LUT 和显示图形&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[4] = DLPC900_PatternDisplay(0);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[4] &amp;lt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error sending pattern display command&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::vector&amp;lt;std::string&amp;gt; imagePaths =&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;C:\\Users\\leaper\\Desktop\\DLPC900\\DLPC900REF-SW-5.3.0\\DLPC900REF-SW-5.3.0\\DLPC900REF-GUI\\Images and Batch files\\LCR670S_Images\\0101.bmp&amp;quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;C:\\Users\\leaper\\Desktop\\DLPC900\\DLPC900REF-SW-5.3.0\\DLPC900REF-SW-5.3.0\\DLPC900REF-GUI\\Images and Batch files\\LCR670S_Images\\0098.bmp&amp;quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;C:\\Users\\leaper\\Desktop\\DLPC900\\DLPC900REF-SW-5.3.0\\DLPC900REF-SW-5.3.0\\DLPC900REF-GUI\\Images and Batch files\\LCR670S_Images\\0303.bmp&amp;quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 通用参数（可根据需要调整）&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int ExpUs = 2000000; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 曝光时间&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int DarkTime = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 黑暗时间&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int BitDepth = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 图像深度&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int LEDSelect = 7; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // LED颜色&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool ClearPat = false; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 显示后是否清除图案&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool WaitForTrigger = false; // 是否需要外部触发（内部触发连续播放）&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool TrigOut2 = true; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 是否启用 Trigger2 输出&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(int i = 0; i &amp;lt; imagePaths.size(); i++)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[5] = DLPC900_AddToPatLut(i, ExpUs, ClearPat, BitDepth, LEDSelect, WaitForTrigger, DarkTime, TrigOut2, i, 0);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[5] != 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error adding pattern &amp;quot; &amp;lt;&amp;lt; i + 1 &amp;lt;&amp;lt; &amp;quot; to LUT&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[6] = DLPC900_SendPatLut();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[6] != 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error sending pattern LUT&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned int numLutEntries = imagePaths.size();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned int repeat = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[7] = DLPC900_SetPatternConfig(numLutEntries, repeat);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[7] &amp;lt; 0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Error setting pattern config&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; imagePaths.size(); i++)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[8] = DownloadCompressedImage(imagePaths[i], i, 2716, 1600);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (result[8] == 0)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Image &amp;quot; &amp;lt;&amp;lt; std::filesystem::path(imagePaths[i]).filename() &amp;lt;&amp;lt; &amp;quot; Download completed.&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Image &amp;quot; &amp;lt;&amp;lt; std::filesystem::path(imagePaths[i]).filename() &amp;lt;&amp;lt; &amp;quot; Download failed with code &amp;quot; &amp;lt;&amp;lt; result[9] &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;</description></item><item><title>RE: TPSM82823A: TPSM82823ASILR 标签DC2548+ ,但实际零件标记59</title><link>https://e2echina.ti.com/thread/3854944?ContentTypeID=1</link><pubDate>Tue, 28 Apr 2026 08:37:07 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:7e565e5e-2dfb-4abb-a1ba-c816eaa97053</guid><dc:creator>Taylor</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/3854944?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1069323/tpsm82823a-tpsm82823asilr-dc2548-59/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;请联系客服部门进行咨询&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.ti.com.cn/zh-cn/info/customer-support.html"&gt;客户支持中心 | TI.com.cn&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TPSM82823A: TPSM82823ASILR 标签DC2548+ ,但实际零件标记59</title><link>https://e2echina.ti.com/thread/1069323?ContentTypeID=0</link><pubDate>Mon, 20 Apr 2026 09:37:17 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:1830eb70-8c10-4370-aaf8-69f189ae8d26</guid><dc:creator>June KE</dc:creator><slash:comments>2</slash:comments><comments>https://e2echina.ti.com/thread/1069323?ContentTypeID=0</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1069323/tpsm82823a-tpsm82823asilr-dc2548-59/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Part Number:&lt;/b&gt; TPSM82823A&lt;/p&gt;&lt;p&gt;你好，TI团队&lt;br /&gt;我们有一批TPSM82823ASILR 零件（卷轴标签日期代码2548）但实际零件标记59&lt;br /&gt;&lt;br /&gt;我们注意到实际设备上标记的日期代码与卷轴标签不同。您能否确认这是否正常，并解释一下差异的原因？&amp;nbsp;&lt;br /&gt;&lt;img src="https://e2echina.ti.com/cfs-file/__key/communityserver-discussions-components-files/155/5e0721eee1f94be290a962c73c416caa.jpg" alt="5e0721eee1f94be290a962c73c416caa.jpg" data-temp-id="5e0721eee1f94be290a962c73c416caa.jpg-3148221" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>RE: TPSM82823A: TPSM82823ASILR 标签DC2548+ ,但实际零件标记59</title><link>https://e2echina.ti.com/thread/3854943?ContentTypeID=1</link><pubDate>Tue, 28 Apr 2026 08:36:01 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:615ae073-7478-4a44-adb7-ab6e88eb8b78</guid><dc:creator>Taylor</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3854943?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1069323/tpsm82823a-tpsm82823asilr-dc2548-59/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好，&lt;/p&gt;
&lt;p&gt;已经收到了您的案例，调查需要些时间，感谢您的耐心等待。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/1063464?ContentTypeID=0</link><pubDate>Mon, 16 Mar 2026 07:12:09 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:abe484df-ac46-4aa6-a2ad-e2b747b6351d</guid><dc:creator>zs zhang</dc:creator><slash:comments>13</slash:comments><comments>https://e2echina.ti.com/thread/1063464?ContentTypeID=0</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Part Number:&lt;/b&gt; TMS320F2800137&lt;/p&gt;&lt;p&gt;关于这个芯片，请问在执行FLASH写操作时，是否还会关闭关闭全局中断 。&lt;/p&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828810?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 09:10:29 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:767a6076-ee37-45cd-98ec-02dcbb408058</guid><dc:creator>Daniel</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/3828810?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
&lt;p&gt;根据目前公布的相关资料，没有具体的相关披露。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828809?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 09:03:22 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:2b588055-11a8-401c-80df-9cf065c61ff4</guid><dc:creator>zs zhang</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828809?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;这是一个封装的函数，我们无法查看这个函数内部的逻辑，所以想要咨询您那边是否可以帮忙查看，&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828806?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 09:01:20 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:92d20c9a-6da4-4b9e-963e-60bcf69906b0</guid><dc:creator>Daniel</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828806?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
&lt;p&gt;所有中断存在优先级，当优先级不足时，就会存在先后，类似的情况当出现reset时，其余中断介入就会存在&amp;#39;屏蔽&amp;#39;。这是个例子。建议在写入存储过程中做相关处理，防止写入错误导致系统崩溃等情况。&lt;/p&gt;
[quote userid="166108" url="~/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/3828803"]现在就是想问&lt;span&gt;Fapi_issueProgrammingCommand这个函数内部会屏蔽全局中断吗？&lt;/span&gt;[/quote]
&lt;p&gt;请上相关库文件查找相关代码说明。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828803?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 08:52:56 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:ac2d33b2-0c9d-48c3-b4fe-1981943ebd61</guid><dc:creator>zs zhang</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828803?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;我知道您的意思，我们会考虑写flash这个操作不能被打断的问题，现在就是想问&lt;span&gt;Fapi_issueProgrammingCommand这个函数内部会屏蔽全局中断吗？为什么执行这个函数的时候我们的ISR中断就无法执行了，要等待几十微秒之后才能正常执行ISR中断。&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828802?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 08:47:58 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:5640d0a7-12d0-48f8-811b-bcf488510f67</guid><dc:creator>Daniel</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828802?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
[quote userid="166108" url="~/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/3828801"]在只屏蔽&lt;span&gt;Fapi_issueProgrammingCommand这个函数的情况下，执行write flash操作时不会出现中断被打断的情况，请问这个函数内部是有屏蔽全局中断的操作吗&lt;/span&gt;[/quote]
&lt;p&gt;&lt;span&gt;同时写入flash这个等级比较高。您做中断时要进行考虑。&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828801?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 08:39:03 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:8bf040f8-eeb7-40ed-9e1c-a65114c148a3</guid><dc:creator>zs zhang</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828801?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;我们已经尝试过了，在只屏蔽&lt;span&gt;Fapi_issueProgrammingCommand这个函数的情况下，执行write flash操作时不会出现中断被打断的情况，请问这个函数内部是有屏蔽全局中断的操作吗？&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828799?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 08:23:33 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:bcb6c420-f0bc-44c1-8ca3-416acb67e0f7</guid><dc:creator>Daniel</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828799?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
&lt;p&gt;应该会屏蔽，而不是关闭，您通过逐步调试看看，同时写入flash这个等级比较高。您做中断时要进行考虑。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828795?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 08:09:22 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:a0024aa2-e210-415d-aff4-d36632653f6b</guid><dc:creator>zs zhang</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828795?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;是想问执行这个函数是否会关闭全局中断&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828792?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 07:39:33 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:070fdb8f-4658-4c6c-8e67-84b5cbefa5d3</guid><dc:creator>Daniel</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828792?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
[quote userid="166108" url="~/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/3828791"]所以想咨询您在执行这个函数的时候受否会关闭全局中断。[/quote]
&lt;p&gt;没理解？您想问是否会？还是不受相关影响？&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828791?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 07:37:23 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:d7ea3410-05a6-4b37-9187-4bf2485ecc96</guid><dc:creator>zs zhang</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828791?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;是这样的，我们现在想要使用这个芯片在线下载，出现了这个问题，我们在执行在线升级的过程中，发现在执行oReturnCheck = Fapi_issueProgrammingCommand((uint32 *)u32Index,Buffer+i,8, 0, 0,Fapi_AutoEccGeneration);这个函数的时候，我们的ISR中断就无法正常进入了，所以想咨询您在执行这个函数的时候受否会关闭全局中断。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828790?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 07:27:21 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:4d228e33-1f6d-45ed-8338-a5433c789a6b</guid><dc:creator>Daniel</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/3828790?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
&lt;p&gt;最好是关闭中断，因为避免对于flash写入时造成影响。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828789?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 07:22:07 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:704b3b92-ff20-4974-9b56-6cbbca8cf221</guid><dc:creator>zs zhang</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828789?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好，是我不小心多打了，是想问&lt;span&gt;在执行FLASH写操作时，是否会关闭全局中短。&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TMS320F2800137: TMS320F2800137</title><link>https://e2echina.ti.com/thread/3828787?ContentTypeID=1</link><pubDate>Mon, 16 Mar 2026 07:15:41 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:bd377c19-42cc-49a8-8e20-9cfa2b6062e7</guid><dc:creator>Daniel</dc:creator><slash:comments>1</slash:comments><comments>https://e2echina.ti.com/thread/3828787?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
[quote userid="166108" url="~/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1063464/tms320f2800137-tms320f2800137"]请问在执行FLASH写操作时，是否还会关闭关闭全局中断 。[/quote]
&lt;p&gt;您是多输入一个&amp;ldquo;关闭&amp;rdquo;还是表示打开全局中断。&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UCC28C56EVM-066: 24VDC DC converter with an input range from 24V to 400V.</title><link>https://e2echina.ti.com/thread/3807884?ContentTypeID=1</link><pubDate>Wed, 11 Feb 2026 00:53:52 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:bca3b59c-3693-425b-b0f1-5dcabb3a7733</guid><dc:creator>Daniel</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/3807884?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1057876/ucc28c56evm-066-24vdc-dc-converter-with-an-input-range-from-24v-to-400v/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;您好&lt;/p&gt;
&lt;p&gt;According to the official development board guide, it can be supported, but it is recommended to make targeted changes and not to directly refer to it.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://e2echina.ti.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/155/pastedimage1770771183765v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://www.ti.com/tool/WEBENCH-CIRCUIT-DESIGNER"&gt;https://www.ti.com/tool/WEBENCH-CIRCUIT-DESIGNER&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Suggest using this tool to assist in design.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>UCC28C56EVM-066: 24VDC DC converter with an input range from 24V to 400V.</title><link>https://e2echina.ti.com/thread/1057876?ContentTypeID=0</link><pubDate>Tue, 10 Feb 2026 17:50:59 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:b4a5c14a-26b3-405e-9578-22cbd0923733</guid><dc:creator>Gokuldas V</dc:creator><slash:comments>2</slash:comments><comments>https://e2echina.ti.com/thread/1057876?ContentTypeID=0</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1057876/ucc28c56evm-066-24vdc-dc-converter-with-an-input-range-from-24v-to-400v/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Part Number:&lt;/b&gt; UCC28C56EVM-066&lt;/p&gt;&lt;p&gt;Hi Team,&lt;br /&gt;I am currently designing a wide input voltage range DC‑DC converter using the UCC28C56. For reference, I have been reviewing the UCC28C56EVM circuit.&lt;br /&gt;Could you please clarify whether the same calculations or design template used in the EVM can be applied to my application? If not, do you have any alternative design references or that I could follow?&lt;br /&gt;Thank you in advance.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Gokuldas V&lt;/p&gt;</description></item><item><title>RE: UCC28C56EVM-066: 24VDC DC converter with an input range from 24V to 400V.</title><link>https://e2echina.ti.com/thread/3807753?ContentTypeID=1</link><pubDate>Tue, 10 Feb 2026 22:56:14 GMT</pubDate><guid isPermaLink="false">91561404-af28-475a-b96b-cb6cbaadd097:198ea8d0-54c1-4ff0-8add-0b3f709a3deb</guid><dc:creator>Taylor</dc:creator><slash:comments>0</slash:comments><comments>https://e2echina.ti.com/thread/3807753?ContentTypeID=1</comments><wfw:commentRss>https://e2echina.ti.com/support/enterprise-automation-integration/f/enterprise-automation-integration-forum/1057876/ucc28c56evm-066-24vdc-dc-converter-with-an-input-range-from-24v-to-400v/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We have received your post and the investigation will take some time. Thank you for your patience.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>