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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' G, _" z% r, L9 l#include <linux/init.h>; ]  k3 i& i8 z' U7 k3 _; ^( r5 B
#include <linux/module.h>
8 d4 o9 x* T; A8 _$ {0 W#include <linux/kernel.h>5 E6 e6 Y9 S. p
#include <linux/types.h>5 O% ?( E6 M3 Z1 A
#include <linux/gpio.h>7 j8 `& M% {' X
#include <linux/leds.h>% p5 u( r( y5 [2 C1 x4 k
#include <linux/platform_device.h>9 g9 x0 a2 J+ [
& U' L! C/ I8 [$ \% z! N& Y( A
#include <asm/mach-types.h># W6 B  d  ?! s0 p4 a, P+ r' x
#include <asm/mach/arch.h>7 G  \$ ?, x! I5 n, E
#include <mach/da8xx.h>
; ?/ _( h9 J, M* ?) @) k8 o9 v#include <mach/mux.h># X: }" c' ^1 i. l

6 ?. q0 y+ I2 H" Q& m. T# ~. x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' E- w* p- s7 @: _$ E# n  K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 O3 {5 k  Q2 `$ p! H5 ^2 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 v9 |5 a2 P" J! O3 W+ l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& S. F( B& f8 }1 A
, {' z) v7 g+ |% @/* assign the tl som board LED-GPIOs*/# d/ i' X2 h1 R) P. k5 `
static const short da850_evm_tl_user_led_pins[] = {1 @3 J! J" N. m7 `: v# E
        /* These pins are definition at <mach/mux.h> file */
' x% {. D3 {' B2 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, P- g* w5 S6 h. `6 m. r        -1
! T( |. B& N7 j# K; W};$ h' u# n& N/ E3 |

: E2 Y/ D/ X3 r( U% B3 f; b: m( Mstatic struct gpio_led da850_evm_tl_leds[] = {
5 r+ _( O9 y+ r! }* r+ y        {9 u7 v/ f' L) o" s+ |9 p3 [
                .active_low = 0,* q/ h! H1 F$ _4 a0 B/ l
                .gpio = DA850_USER_LED0,
& m0 E; S0 W; T+ f; r8 o! ]  `; a( s                .name = "user_led0",
7 D7 \& A2 X0 ], [1 F" b' O                .default_trigger = "default-on",
! @! i# z% g; W/ y3 g' O2 d/ [        },
5 b0 j8 i% \/ D        {2 }+ `3 i( d8 o  t
                .active_low = 0,; `# U# _9 F# y" a3 V, h
                .gpio = DA850_USER_LED1,% u; L1 d( g/ J
                .name = "user_led1",: L# k5 g* l  m- [
                .default_trigger = "default-on",
7 |, w3 @6 T8 q. n: n- q        },
, c3 i1 \  i6 P1 C; ^        {9 Y' N% s; ]$ q- X
                .active_low = 0,
! ?4 \5 P3 f5 \* B) n# m- Y0 ^; R                .gpio = DA850_USER_LED2,, K; F! B8 Y2 e% o+ }
                .name = "user_led2",; p2 a1 Y6 I2 K1 s8 x$ F$ Z$ l
                .default_trigger = "default-on",# e0 F5 R# ?* E2 Z% B! a6 r  I) ^
        },  g9 t  w- N7 m$ h8 A3 {, m! d+ w( Q, n
        {6 j1 K7 Z4 l# j- A% A
                .active_low = 0,
1 i6 C% O. E* e& O) v/ R5 C% p                .gpio = DA850_USER_LED3,) J7 I! ^$ {' G( L0 ^5 o. B1 h
                .name = "user_led3"," k9 |/ A  J4 H5 ]3 m
                .default_trigger = "default-on",
. I& [7 V% v( K        },
6 R0 r; X/ N& D};4 L+ ], W; G- }0 @- J9 t9 \/ @
6 v0 d7 c3 j3 `$ n. |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: ~8 a4 t8 S: t  {4 d) w        .leds = da850_evm_tl_leds,
' d7 P! }0 J$ h) u, W# o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, }8 |  q; f$ M/ ?};) u/ z( ~7 K3 Y: A
4 i+ g0 J- r$ G+ E
static void led_dev_release(struct device *dev)
" }2 o) F& S" O  T{- u" I2 n9 {" G9 c
};
- e1 i2 J7 r8 M$ v! W" p- q: C( N* K# j& Y( ?$ v
static struct platform_device da850_evm_tl_leds_device = {
7 A! @7 l, \5 J4 T" D* t        .name                = "leds-gpio",  q2 p0 w- Q, i8 r* j. ^
        .id                = 1,
% Q7 x# M5 e, I+ w        .dev = {7 G" X; k6 G: j$ e# i, A/ W+ R
                .platform_data = &da850_evm_tl_leds_pdata," B! C! y) S  }. a
                .release = led_dev_release,
1 C0 F: H+ b) w/ }' y" y        }
, r1 J6 X) _. D7 j4 N# F};
- Q4 t5 M7 ]- V" j( D8 a* v; C1 [  ~' U
static int __init led_platform_init(void)
! Z5 l; h4 _% V0 L6 ^{
  Y$ N- L! r4 I/ G. r# C4 `1 P        int ret;
  I, I; u" i; V) G/ s- F1 L) ]#if 0
% w( p) f+ [6 }- b4 w& E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 {; `6 e' L& Q! b% [: z
        if (ret)! Q% i1 G- F( {; F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 ^& c$ e9 o2 w' L) X                                "%d\n", ret);; u) Z. ?6 g: f$ d
#endif6 Y. |3 @7 c2 L5 G* _
        ret = platform_device_register(&da850_evm_tl_leds_device);# ?% \, Q* ^5 d; E/ m
        if (ret). n( ]: I  j5 E1 x0 H9 i' L& _
                pr_warning("Could not register som GPIO expander LEDS");
0 M) Q+ W5 @2 q4 |7 v. G! U; b        else' f* c3 t/ Q9 _2 {4 J3 ^
                printk(KERN_INFO "LED register sucessful!\n");# O6 ~2 i; @2 X2 ~
) A- D' Q7 P: {$ d) g4 d
        return ret;7 ~9 F! ]" S2 L, G- E& p1 }
}; ]1 z, ?3 M( |- f7 N* @. W8 I$ c

1 u: i/ {2 ?$ L) \static void __exit led_platform_exit(void)+ ]$ y4 o7 Y  U$ J) `8 |! t
{, r4 H6 r- n8 C9 C! M
        platform_device_unregister(&da850_evm_tl_leds_device);
6 p' ]+ K, c' W# @2 g3 y# `# v# G4 o8 U5 F' u1 R: D. \
        printk(KERN_INFO "LED unregister!\n");4 y  n" y4 R; S. j9 k1 U6 O3 U  w# Z
}
, K5 V# o2 d, a4 H
# h$ f! {) a! F8 b/ j5 |module_init(led_platform_init);9 C7 r) U- G% }% s0 Q& J
module_exit(led_platform_exit);
+ x* M, D. p7 y- h* D  v# Q4 E+ c; r# I
MODULE_DESCRIPTION("Led platform driver");
% \2 y! T0 m8 ]" ~MODULE_AUTHOR("Tronlong");. Q) \7 \: |; q+ G
MODULE_LICENSE("GPL");) L: e% h9 [6 w

/ E9 U& T' G0 J; ~7 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 13:01 , Processed in 0.037811 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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