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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 W8 h7 e( ?0 r; U7 P" b
#include <linux/init.h>
) ?3 {3 M; r! g; }+ F5 m#include <linux/module.h>
  o) K$ Y- l5 w& R! l: D3 B#include <linux/kernel.h>& `3 ^3 `" A% X+ M2 }
#include <linux/types.h>; Q! j/ e6 I3 c0 k: D, O7 k  ?6 f
#include <linux/gpio.h>' U5 R, y. d5 U$ W' i
#include <linux/leds.h>
  t1 x  u8 u% p+ Z3 h5 \#include <linux/platform_device.h>
4 F$ O- O7 L) b- C6 z9 k# ]/ a+ ?, B/ b8 E
#include <asm/mach-types.h>
/ n$ Q5 G" ^8 z) s1 T9 o#include <asm/mach/arch.h>! t  v9 ?- H0 d4 C" O
#include <mach/da8xx.h>
$ a% P; L$ k) u1 V  E" s5 @#include <mach/mux.h>
7 u& _7 T7 m0 l9 q0 K8 J) M
0 t/ O. Y/ c. l$ M; c. Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 D* f! ^8 u0 W: b9 D* B1 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 u0 N2 k7 {6 L' n8 m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: L9 ]3 W5 `2 {7 r. h; x3 Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ @0 T- F0 }3 ~, y( E7 o0 y/ |1 r" v5 I0 ^8 Z5 ?+ }- m
/* assign the tl som board LED-GPIOs*/
' _, Z0 a0 @4 k7 v, e, s# ~# W! R8 ^5 ustatic const short da850_evm_tl_user_led_pins[] = {
% M& w4 o) T! e3 J! I3 [5 R        /* These pins are definition at <mach/mux.h> file */7 q+ U! i8 e/ }" t: D& x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% u0 R: u+ [9 A2 `' y* R8 o        -1
7 d5 K& \4 g/ U- D9 ~& z# n};+ L" O5 u+ S: f- x

6 S* N4 l+ N& Jstatic struct gpio_led da850_evm_tl_leds[] = {
/ O' Y7 _5 L% E! \" H/ M3 E1 v        {
& K4 m' w7 e$ v* C4 _                .active_low = 0,- h4 g2 c+ x- q7 e. R1 U7 v# D
                .gpio = DA850_USER_LED0,
% q, I1 s- `" q' X4 {                .name = "user_led0",
+ v  a9 o3 w, k. s2 I  k                .default_trigger = "default-on",, O1 X% j9 a* c
        },
) e6 ^- X$ v/ u0 ~7 n        {1 c+ j  ^  m* v) r  C/ B, ]5 C
                .active_low = 0,
( Y8 _" }. S# e( U$ R                .gpio = DA850_USER_LED1,+ t$ Y( j6 `  S  B* v
                .name = "user_led1",
! m& i3 m+ g" N5 m: ^1 }                .default_trigger = "default-on",
7 y4 _/ p+ p3 e; p/ T9 [        },* V" }* R/ P  M% g- u- A
        {
6 d" H0 d, @; F* B3 F/ {! K9 V                .active_low = 0,
6 r" l  N1 u0 W8 U+ m                .gpio = DA850_USER_LED2,
0 I6 p. v% Z# f. h, D. J6 q9 k                .name = "user_led2",
- i% O* }& ~* T# {5 m+ E( I                .default_trigger = "default-on",
. _/ I; K& C/ e/ q        },
3 ]( R! T/ B5 }1 O5 v* S+ S        {5 @5 |, a5 Y! P3 G, k, V
                .active_low = 0,
, Z3 W% `3 U1 j                .gpio = DA850_USER_LED3,9 W7 Z% G  z- f, }# c
                .name = "user_led3",+ U1 {( L* q) n8 V) D
                .default_trigger = "default-on",
, }+ u6 R# A" E) \. T! a* ~        },
, N$ H  s: ^; P6 m3 b};
2 W3 E9 f2 ?# X  {: B9 M9 E4 Z  l- q( M" V/ y% D; X. ^  {, F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ K  p- D* B1 E# K/ U: I        .leds = da850_evm_tl_leds,
1 u5 C  q5 e) s& {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# B2 D5 n5 L* s$ }1 c% `};* }% @2 `; R: r1 a
" @  T# r! @* V1 L- q' x& }
static void led_dev_release(struct device *dev)$ J) E/ g2 F# B
{& I$ ?' V, ^* K. ^
};
. d" K) W5 Y' k0 i3 Q( o0 G" q3 a; o4 U& h  X
static struct platform_device da850_evm_tl_leds_device = {6 U" f9 y+ a  ^, p4 Z+ v, G
        .name                = "leds-gpio",
8 p* {) R* x* \        .id                = 1,
5 C9 H. z. w. x0 v+ D/ h, D. T7 Y- q. u        .dev = {
/ p' M. k- B4 D# \$ V0 N                .platform_data = &da850_evm_tl_leds_pdata,
' A" u0 }+ i5 i8 E) D% g                .release = led_dev_release,
$ a0 M6 S. D/ M- q7 p, l  d6 s3 ?        }+ D3 [2 p7 e, f; c5 R) ^6 ?4 l
};
3 t. V6 J$ q7 I9 }
' n, i: k! e4 L7 u" {, Y" A2 Estatic int __init led_platform_init(void)
- F4 d2 @0 A0 K9 Q' a/ A{, e* [7 `& ]" f, R4 t: G
        int ret;
# J. `. j6 n6 d( W& o#if 01 H8 |/ D) i4 R1 M* `( k; B" U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* s* {8 [0 w- t" j/ x7 e
        if (ret)
: r0 `+ M8 j1 d$ }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 E8 Q) }% D5 z. y$ R
                                "%d\n", ret);8 U% d# p2 r; g' a' U1 f
#endif
; h" v  @8 b2 `. G, Q" l( [        ret = platform_device_register(&da850_evm_tl_leds_device);
! W' k' y$ b4 F& N. h; j/ l        if (ret)% A# N6 T% D' J  w/ U' l
                pr_warning("Could not register som GPIO expander LEDS");
6 P# i% l( i5 u! b4 k' B2 P$ D        else
, |$ j1 J5 l+ }! E                printk(KERN_INFO "LED register sucessful!\n");
4 B& {9 [' q9 K3 [/ G  m2 @
0 `3 U+ Z2 R, M! H! \  P" P4 B        return ret;
, y- J6 K9 V5 g* I8 x& v7 r- d}- p) C8 Q% H5 c" L6 S& t) ~

" U! C7 E: I; I. Ostatic void __exit led_platform_exit(void)# ?, O6 A' r. \4 m4 |9 j
{
, y) \  b/ [# y        platform_device_unregister(&da850_evm_tl_leds_device);
/ P6 N9 o7 u4 }* k# ]! `
. O) k3 D# V" S' T- _; t' y) W" s0 j. Y        printk(KERN_INFO "LED unregister!\n");
: t) d" t2 w! f* e5 x0 m}. r: M% h+ O7 E9 ^

9 B& H7 q) x) T, t' c3 T) q+ tmodule_init(led_platform_init);
9 E- k( m2 e8 ?+ A; omodule_exit(led_platform_exit);
5 D% Q+ {) X* M4 H9 ^0 Z
9 T8 o4 x0 k/ ^" j" \MODULE_DESCRIPTION("Led platform driver");
$ y0 t5 t2 O3 B7 hMODULE_AUTHOR("Tronlong");
6 O. ?. ~) N' R2 X/ e* h* i$ aMODULE_LICENSE("GPL");( t& i0 u$ N. ?
# f$ W) }7 h8 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 03:28 , Processed in 0.039812 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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