Tag: 映射

C生成唯一ID

我正在创建一个C包装器,可以读取存储在文本文件中的数据结构类型。 接口应该是我可以生成映射到唯一数据结构的唯一ID,并通过唯一ID修改包装函数。 问题是我需要能够生成一个唯一的id来映射。 我想不使用任何外部库。 没有任何大的开销有没有办法做到这一点?

opencl映射内存不起作用

我尝试在我的OpenCL程序中实现内存映射技术,但它不起作用! 这是我的内核代码: __kernel void update(__global char *in, __global char *out) { size_t i; for (i = 0; i < 10; i++); out[i] += 'A' – 'a'; } 这是主机代码: cl_platform_id platformId = NULL; cl_device_id deviceId = NULL; cl_context context = NULL; cl_command_queue commandQueue = NULL; cl_mem cmPinnedBufIn = NULL; cl_mem cmPinnedBufOut = NULL; cl_mem cmDevBufIn = […]

在MCU内部FLASH中从一个固件跳转到另一个固件

我目前正在开发针对STM32F030C8的引导加载程序固件应用程序。 我在我的分散文件中指定引导加载程序应用程序将占用主存储器位置0x08000000到0x08002FFF(扇区0到扇区2)。 我还写了一个主要的固件应用程序,存储从0x08003000到0x0800C800。 将两个固件下载到MCU内部FLASH后,我使用以下代码从引导加载程序中激活了主应用程序: /************************************************************//** * \brief Start the main application if available and correct *****************************************************************/ void INTFLASH_execute_main_app(const char mode) { MyFunc_ptr AppEntry; uint32_t temp[1]; IRQn_Type index; memcpy(temp, (void*)&NVIC->ISER, sizeof(NVIC->ISER)); //Save enabled interrupts for( index = (IRQn_Type)0; indexISER, temp, sizeof(NVIC->ISER) ); //Restore interrupts } 出于某种原因,当它执行AppEntry()时,它会跳转到下面的代码,并且不会在位置0x08003000处执行主应用程序: HardFault_Handler\ PROC EXPORT HardFault_Handler [WEAK] B . ENDP 我之前在ARM7 MCU上使用过这种逻辑,它工作正常,我无法弄清楚为什么它不适用于这种基于Cortex […]

在C中对数组实现一个通用的“map”函数

我在数组上实现通用的“map”函数时遇到了困难。 我从以下草案开始: void MapArray(void * src, void * dest, void * (f)(void *), size_t n, size_t elem) { unsigned int i = 0, j = 0; void * temp = malloc(elem); for(i = 0; i<n, i++) { temp = (f)((char *) src) + i)); for(j = 0; j < elem; j++) { *(((char *) dest) […]

检索16k键值对的最快方法是什么?

好的,这是我的情况: 我有一个函数 – 比方说U64 calc (U64 x) – 它采用64位整数参数,执行一些CPU密集型操作,并返回64位值 现在,鉴于我事先知道了该函数的所有可能输入( x s)(虽然有大约16000),我认为预先计算它们然后根据需要获取它们(从类似数组的结构)可能更好)。 理想的情况是将它们全部存储在某个数组U64 CALC[]并通过索引检索它们(再次为x ) 这就是问题所在:我可能知道我的calc函数的可能输入是什么,但它们绝对不是连续的 (例如,不是从1到16000,而是可能低至0且高达数万亿的值 – 总是具有64位范围) 例如 X CALC[X] ———————– 123123 123123123 12312 12312312 897523 986123 etc. 这是我的问题: 你会如何存储它们? 您更喜欢哪种解决方法? 现在,鉴于这些值(来自CALC ) 每秒必须访问数千到数百万次 ,这将是性能最佳的解决方案吗? 注意 :我没有提到我曾经想过或试过的任何事情,以免把答案变成A和B类型的辩论,而且大部分都没有影响到任何人……