程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ w) S( t) u, X. E8 [#include <linux/init.h>
) O* N+ O' K% `: \2 P2 s+ v#include <linux/module.h>
+ Y% C/ b+ C7 O4 w: l#include <linux/kernel.h>8 w. i: I2 ?. M/ I
#include <linux/types.h>+ |9 k; s) D+ F; P5 H, f
#include <linux/gpio.h>
! {6 T' q; |" i, b6 W#include <linux/leds.h>
- l  a& O* u9 b0 U, g: ^- S#include <linux/platform_device.h>: m8 j# G' G9 T# |3 l. f4 V% H6 b: o
0 m. h: Z$ K# L8 H* i. v0 H
#include <asm/mach-types.h>8 i, @1 X; x1 c7 _1 A3 O  E) r
#include <asm/mach/arch.h>2 z# O/ ^, C& j: B* K( v/ e7 E
#include <mach/da8xx.h>) a) J6 s$ \$ D7 D! h7 S, W
#include <mach/mux.h>0 z; B- M3 G% d2 t$ w8 m
. \$ _% j+ o! J- p# Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& T9 |6 j$ K# W. \0 N3 Y2 M  X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  b4 ?9 ?) _% J8 M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& p& b7 P* H6 Y) L# Z6 {1 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- M+ W' g; q6 ~/ K
% j1 p5 g6 ^6 h  ~, G) |9 p/* assign the tl som board LED-GPIOs*/, K3 j* d8 F, u/ a  J1 x8 K3 C
static const short da850_evm_tl_user_led_pins[] = {
; ]$ e. j9 {& ^& a" y* t+ g        /* These pins are definition at <mach/mux.h> file */5 Y* b( u6 K+ q9 Y5 E5 X4 R% _6 l& Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 m: i& X+ R6 p% c
        -1# M3 Z* o2 \* Y1 [1 ?$ e
};
; x0 j8 n1 D6 {) c% e( n) R
$ @* b$ C$ ~. C9 k$ Vstatic struct gpio_led da850_evm_tl_leds[] = {, D: W+ V" F' \2 T' P, ~
        {
8 h" f# e: I, s# i* q! E) p& [                .active_low = 0,  U. _/ Z; ^/ t2 ^# n
                .gpio = DA850_USER_LED0,
6 {$ p8 H- Q6 z                .name = "user_led0",
) [# |" N9 M+ E( Q. w                .default_trigger = "default-on",
  l) P) r- t* ]  E7 f        },
' x, A, T( L. ^+ x" ]3 {0 d6 t        {
7 Z& z/ K' [* [" H: n& _9 x                .active_low = 0,* x- j6 Y) {% T0 w4 G" N* q
                .gpio = DA850_USER_LED1,
" w  v' V  D. Z- e, B6 y  m                .name = "user_led1",; P8 \8 {9 T$ W# X7 A9 v! u
                .default_trigger = "default-on",( h# U& [0 g* |0 M8 ~
        },, H. W0 f9 d/ F' C3 `
        {
  U% D) c. Y" s% P2 g0 u. D                .active_low = 0,  P, D5 \0 o& K: b- y
                .gpio = DA850_USER_LED2,* D, k2 z; j8 c) d6 F" b% ~1 L
                .name = "user_led2",
3 h* @& C: Z6 h                .default_trigger = "default-on",; R$ g# f+ q( v. }
        },
' ^- y/ p3 E5 R1 d; Y        {' n0 l/ H# b5 w+ e" s
                .active_low = 0,
. _# Z; p( F& q0 V                .gpio = DA850_USER_LED3,
' d- Q* u+ O" ?# L                .name = "user_led3",8 W/ v: P9 R1 |! N3 i5 d  b, K
                .default_trigger = "default-on",
4 a1 |( {/ t5 i! }9 ~' B! P        },: E$ w. j/ q6 m- [7 O: m- }4 \+ G
};6 n6 V4 D3 I. G. ]; I6 X$ f- N

% y, c2 X- }3 T" wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! z1 b6 D; ?3 |5 a( |9 a        .leds = da850_evm_tl_leds,$ X- J: R: @' z& j' b) c5 J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* K6 h; b  i; X8 d};' n% ?* ]% I' i2 q3 w

% n0 n; d; z4 z& astatic void led_dev_release(struct device *dev)* d9 O! N+ r' G/ z
{+ n# h" c. |* ]. n
};( @1 w0 W5 f: S8 `
, J0 W3 _3 h2 E( N1 m. g
static struct platform_device da850_evm_tl_leds_device = {6 O: w1 d1 b# K& c$ D
        .name                = "leds-gpio",
1 m7 y. q4 z) ~8 N7 C        .id                = 1,
4 ]( U. h. t# I% Y- M, T; A        .dev = {3 ^7 b# y- m3 Q2 h- q8 j
                .platform_data = &da850_evm_tl_leds_pdata,7 M! |/ G( b1 d0 F8 e5 w
                .release = led_dev_release,) ?& R4 S; p, c  o. u- }. M$ m
        }* w; O3 X0 F9 h/ @' N
};
1 f6 C- P6 i) W, M( H" A2 `; X) R, Q) f) A6 F( D: d; U
static int __init led_platform_init(void)8 o9 m& C& f0 z  p3 B+ [' ~6 }; V
{
4 a, ~6 X: Q4 I        int ret;5 ?7 e, ^0 X! }5 Q' y2 Q  c: d$ w$ M
#if 0
, D1 V9 E+ D7 P2 U' A+ C  v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, c' y' S/ ]4 x3 M: l7 d, ^0 K        if (ret)
, m. h# `+ d2 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 J8 R) ~- d7 A: W/ v                                "%d\n", ret);' d: c2 a- A; `+ {2 T1 A/ \
#endif' q. I' X6 W# M2 ]+ S( G3 c
        ret = platform_device_register(&da850_evm_tl_leds_device);% G4 K: m" I7 S0 V1 N$ O
        if (ret)
; P/ |: W& b" n, Q6 I                pr_warning("Could not register som GPIO expander LEDS");8 g  s. E" P+ r7 o6 `
        else
; i$ z2 N- M* F4 q                printk(KERN_INFO "LED register sucessful!\n");# P# L- J( _8 R  a7 C: ^7 ?

  S- f- F+ r. R+ S' }$ ^' N, _: z3 t  m        return ret;
( x$ M! X+ Y) A8 h9 g! ^7 z2 l8 y}
0 b# D  j1 d0 l1 O1 w; j/ O
5 W" x' w) N% g( Ostatic void __exit led_platform_exit(void)
4 \. z" C3 I& [$ t7 {; a) S{
' R* O$ a) h3 H8 `0 j. B. o7 \        platform_device_unregister(&da850_evm_tl_leds_device);
+ Z6 X& z2 O* R2 \8 U: b, ~' Z
5 s. Z: p4 \: q: p; J6 l5 D, P        printk(KERN_INFO "LED unregister!\n");
2 ?) b# A# t7 t}
9 d# G: j9 u! f$ z5 T1 i) {7 K! r( o+ O- r" `
module_init(led_platform_init);
" i2 p# h$ h8 C8 j! _6 e2 h9 @8 Umodule_exit(led_platform_exit);
9 i( x" ?$ J/ |, n5 D. z( h3 [, H6 O( y/ M8 e9 o; M
MODULE_DESCRIPTION("Led platform driver");1 [( n) z! e; I0 w  M& E
MODULE_AUTHOR("Tronlong");
4 Z5 R/ \3 X% r( sMODULE_LICENSE("GPL");
7 [' n& n5 l4 h
& g- @" C% f9 y" r7 D8 f4 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-2-24 03:49 , Processed in 0.038317 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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