程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6481|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% g) Q0 J" ^( H) J* v+ b7 C  F#include <linux/init.h>
* c/ |% f- O0 U, h, L' c5 Y#include <linux/module.h>; M& [  W  {& x9 X% n( o7 N
#include <linux/kernel.h>" b. c4 @, C3 r9 P9 }! o' B0 n9 s
#include <linux/types.h>; M# z- E' j* X, I! Y
#include <linux/gpio.h>9 U2 V% o  u& X5 E2 x9 }
#include <linux/leds.h>) m/ g: S3 I) N; N
#include <linux/platform_device.h>
$ M, K* ]6 j/ Y+ j4 |5 E( I2 Y( A0 K) I* `+ N* f( H+ g8 t$ \! E1 X
#include <asm/mach-types.h>% u: d8 B9 Z8 X. g
#include <asm/mach/arch.h>
% _1 r7 x3 I0 w2 `* t2 K) s6 C4 e, v#include <mach/da8xx.h>
$ L2 X# K" L2 [4 N9 b# ^" _#include <mach/mux.h>5 F0 O5 y4 W% o2 f7 F+ c

8 Q  {+ [5 A6 d4 z) q$ @; @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 ]- L6 E: R/ d  z4 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 N, J4 @& q* D$ w" r3 h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 o; p! @+ w+ t7 d& L" e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ Y* F& g( P0 ?8 K: b
6 X5 |! r+ O* [
/* assign the tl som board LED-GPIOs*/
  J4 X+ x# @; \' _1 Sstatic const short da850_evm_tl_user_led_pins[] = {  G! ~" I( i2 ~
        /* These pins are definition at <mach/mux.h> file */7 I8 i4 n8 p" G' e+ h, C6 O3 a
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. M6 a7 O% Y1 z  u
        -1
: }( T+ X) g1 N( B* D1 L! m: L};: {4 H( T/ c/ Z; k6 D

1 G& n9 `+ v3 G/ Y3 n: Astatic struct gpio_led da850_evm_tl_leds[] = {. n% t3 A* b8 @+ Q$ B( O
        {8 N+ N8 w$ ?9 Y* ?+ f8 e; [
                .active_low = 0,. x! R$ Z6 T0 |8 u6 `6 m
                .gpio = DA850_USER_LED0,$ v# P6 \4 ]/ `1 z# S
                .name = "user_led0",
/ }# C# S+ A) Y. M                .default_trigger = "default-on",
( j7 R" \- d. J+ |        },3 d5 L/ a& s- J1 G  ?3 [& S
        {
# Q. E6 w$ T8 [7 R. k# y2 C                .active_low = 0,; z, \8 S$ h  l) I7 h" p; e2 F
                .gpio = DA850_USER_LED1,6 K6 z: V! I; A( R
                .name = "user_led1",
- E: V/ @8 }- K% b. a  I                .default_trigger = "default-on",1 F1 l$ K7 U$ [& L$ h, j
        },4 G& o; S& I* ?  X5 l; F
        {
$ n" G" E# z/ a) Y                .active_low = 0,
. K. ?7 ?. E8 {6 U# c1 I& }                .gpio = DA850_USER_LED2,5 H* t) \; A, D4 V# k7 S+ Y
                .name = "user_led2",
0 ^0 D# F" a: k% j5 U  ~" p                .default_trigger = "default-on",' \( \+ ^, N0 ~3 w+ a" d
        },6 m& a8 I; I: T) \. E; K! T5 H" m
        {
9 A, v2 X# ~5 r                .active_low = 0,- X) `, w  E9 l! c3 u
                .gpio = DA850_USER_LED3,: s8 u8 G' \0 j' P7 @! ^
                .name = "user_led3",
% j7 J4 q1 |; ?  q1 |; M                .default_trigger = "default-on",0 m3 c9 P" t, I0 r
        },: q# R' e  m* K- q  K: _; V
};
% m' E+ I- }: q# x" |+ ]: D! F5 }; Z& b: ?( H% f# v& l5 P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" u# d) u1 k7 H. V6 Q3 z- u% ]        .leds = da850_evm_tl_leds,7 Z8 H7 M# Y( J8 `7 r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) o# G. @4 _* z+ v$ m4 {9 p9 l
};8 B! J# M" m$ T9 Q7 [) W

- a2 ?" x* l" P; ystatic void led_dev_release(struct device *dev)9 H$ l+ n0 i1 q8 p
{+ R1 g$ U" t: W8 M* H0 Z6 V
};3 G9 |0 t6 w" o: G+ a1 h) I2 L; J) C
3 b9 H' ~( S6 R' A4 e. z  S
static struct platform_device da850_evm_tl_leds_device = {
, i/ Z+ D! M/ U) {        .name                = "leds-gpio",) x5 q' {& N" N7 [
        .id                = 1,
* z2 H) J+ j& p- e        .dev = {0 X3 j4 ]* S4 x$ @0 q- J
                .platform_data = &da850_evm_tl_leds_pdata,
, ~/ N" X! T5 }( g                .release = led_dev_release,
$ Y! G3 b+ _: Y, C. w( {        }) G6 P! p3 ^2 j7 z6 |2 `
};* X- L) B5 l, P4 s% P+ _
3 ^2 x( v4 e% ?& y. H+ `
static int __init led_platform_init(void)! c- z, b* M! m/ z5 x/ O: ?' p
{
0 b, c4 d6 q8 V$ N* `2 Z" q% D        int ret;
- A3 H* k6 L- @+ n* y6 R, i#if 0
9 c2 n9 Z2 c$ u3 W3 m0 J6 R( V* D8 ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( k! m( R5 a9 o0 Q2 T6 `+ A        if (ret)- `" ]8 e- `: B5 D# O* s! T5 I& d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 c! ?& ~( N* O. D2 T+ i5 ^                                "%d\n", ret);( B$ d& M8 L& `2 O/ s
#endif
/ ]$ T4 |% U- @' u. e        ret = platform_device_register(&da850_evm_tl_leds_device);
! b, g* O) ^2 p( Z! S0 I3 b        if (ret)
, u6 ?" x; {' B. v  r                pr_warning("Could not register som GPIO expander LEDS");
& v/ g& ]/ B+ u8 y$ ~6 T# l        else) ~: n. d# L* w1 {
                printk(KERN_INFO "LED register sucessful!\n");
6 P/ V; n, B. r& {3 C6 s& }- u$ i; L6 }+ q- R0 t3 S# K
        return ret;/ L# M3 `! y$ M8 y* g8 D7 `+ G* A4 b
}
* D% u8 C0 r( U/ a9 ~0 j. S
9 s. a! l& r# G4 `static void __exit led_platform_exit(void)
# w# ?: ]# Q$ x{. u  h. _, Y3 O7 D* W$ Q# c2 h
        platform_device_unregister(&da850_evm_tl_leds_device);
" h2 l% d; t' j, t; k6 j) t% p7 Y
# i- I1 i; p  z) x$ O- I) S        printk(KERN_INFO "LED unregister!\n");
; q8 i0 p9 r5 k9 T$ x9 K}
4 m/ X; y' A  n! B0 ]% @. q" I5 K2 q& I& N
module_init(led_platform_init);
  N7 E9 O( {2 U3 Nmodule_exit(led_platform_exit);
" \6 t: ^. v" N6 K  K
% n& M+ W9 r* bMODULE_DESCRIPTION("Led platform driver");
1 m8 z! Z# y) q( x& H7 vMODULE_AUTHOR("Tronlong");
; [. ?: z  A* NMODULE_LICENSE("GPL");, S% _0 i0 v7 M7 E8 G. |8 l" j9 R4 t# S

2 v* j, X# S  y' ]8 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-11-24 05:17 , Processed in 0.038164 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表