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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 n8 j" c: H2 L( i. v7 T
#include <linux/init.h>4 j3 j, f$ b$ R
#include <linux/module.h>
7 u/ F  s# g8 W  ^' e" b* K#include <linux/kernel.h>
) O, F8 i4 c) Q# _#include <linux/types.h>  S' B8 \/ s' W& W- y# E
#include <linux/gpio.h>" A# O: J" M) [; N3 ?5 Q) c1 S$ w4 N# q
#include <linux/leds.h>  Q; S! m, t8 w
#include <linux/platform_device.h>
; K4 ^% p2 \3 V8 _: J6 R2 Y4 y- {. H  d% N0 \
#include <asm/mach-types.h>
; ^* n/ J' X# c; }1 X8 [#include <asm/mach/arch.h>
: E) Z4 Q$ a! `" y) N/ D#include <mach/da8xx.h>* z4 W$ Z8 K" i& r2 o! q
#include <mach/mux.h>
' ]' l" ~7 K5 Z' t4 t1 @' C/ }! N/ ?' S
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ E2 L! l8 i8 I9 f! \! Z5 u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 a2 a% ^: M* }/ y: m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 c1 |$ z5 h% J, W3 R  }7 J( L) E8 f. q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( X9 p2 s6 j( q$ B
3 N( k  B/ Y& R$ K/* assign the tl som board LED-GPIOs*/, A7 j; I3 j0 f: k- u; [
static const short da850_evm_tl_user_led_pins[] = {
, l5 w5 J0 f; q4 y        /* These pins are definition at <mach/mux.h> file */% l+ c/ m% b& V( B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 h2 v+ n, a1 `6 C; T6 Q9 r
        -1
9 d/ F- s' o( b};
* l% A5 d/ c% J6 A* W3 ^( E; ]5 A7 y! M
static struct gpio_led da850_evm_tl_leds[] = {/ a/ B2 H+ N1 ~7 f& |0 @3 O
        {
0 U% E# [! f0 R& u6 F% E                .active_low = 0,# \. c' [6 j  B6 _9 Q5 C
                .gpio = DA850_USER_LED0,
; u- e4 i( l$ p                .name = "user_led0",
' Z6 W- g* Z( k8 h/ ?. o0 K( k  ^                .default_trigger = "default-on",
: l; q* t- m3 G6 W" l( _        },
# c8 L) Q  H8 j% k        {- s& G. K% D  Z+ e% V
                .active_low = 0,8 I% t) _2 O  u' L* N# @6 d
                .gpio = DA850_USER_LED1,
$ t8 T0 n+ r" r# [+ l+ s* n: ]                .name = "user_led1",
9 p7 f6 N8 H+ x                .default_trigger = "default-on",
) `0 I. |" |/ l2 e2 a* m        },3 I* J! U+ |7 K
        {" b' \! W) ^% b' J
                .active_low = 0,1 s; o) n, [  N. ^% Z& q
                .gpio = DA850_USER_LED2,
3 b- `5 T) n, b* ]0 s) Q( R                .name = "user_led2",
$ Y4 Q; a9 I$ V* C) M5 U* u9 ]                .default_trigger = "default-on",
/ ?4 j5 Q4 K6 R; D& F        },
# D0 }. G4 ?! l$ r1 {' y" q4 j7 K        {
* a& C! u8 C  w( M# @+ G( p                .active_low = 0,
" ]3 i+ X5 n* g                .gpio = DA850_USER_LED3,
0 _/ d1 s5 Y, E- y- M: D                .name = "user_led3",) q' s% {2 T6 a/ N2 t
                .default_trigger = "default-on",  i/ z7 W8 d5 L4 i; A: v) P& a
        },
" c' ^! R0 V# f2 a};" m. t2 B. k* a. k5 O, z
& |$ M& Q( M0 P" F$ z( F9 [0 Q+ _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( A/ e! |/ n7 Y9 D
        .leds = da850_evm_tl_leds,
) z( f" l4 |) ^( u( x/ H% T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ s5 e" [6 r- {6 F. W6 X* W# X% I( O};
" o( S2 E1 t- b$ @
7 E( i# q9 b. E' K& z" G; r# Cstatic void led_dev_release(struct device *dev)
- K8 G8 k, i# G+ ~{
0 I$ g, Z3 y9 C6 Q/ j5 a2 L};. b8 \$ i  h: H1 [) e* a* O+ A
9 g+ s* [* g, Z# o1 m
static struct platform_device da850_evm_tl_leds_device = {. n/ e1 `8 K, D* C/ J
        .name                = "leds-gpio",
# `0 U: m+ s' u        .id                = 1,
- Z! p* f1 @4 d; Q        .dev = {
3 t$ Y. \- t6 [0 G- R3 U! u. P" B                .platform_data = &da850_evm_tl_leds_pdata,
0 F5 |4 W8 W/ \# W, q% d6 H* p3 B                .release = led_dev_release,
, G$ A" \! X# s! l+ C( b        }; S- g% H7 G$ I- r5 p1 ]
};
! @. r% `6 s# S1 d% h! m+ k3 p1 b5 X) U: P# S9 }  S% X
static int __init led_platform_init(void)
) D8 w. `3 L. ]# {/ c4 ]. z- y+ W{
! M: k  P) Y6 d1 }7 v        int ret;
5 @' a# j- `! \& J7 ?#if 0
7 e* x* {/ o4 c4 J+ w+ V+ c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; O4 @- p5 H9 `1 M3 i- S$ c3 ]0 X; }
        if (ret)  }, K' x$ ?( l1 ]3 H6 b0 ~- e$ T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 P& r4 o. z7 k6 r/ J, N
                                "%d\n", ret);  A8 A: s9 G2 ?% U/ b9 M
#endif- L0 }, s4 u) b  R+ v& v' l
        ret = platform_device_register(&da850_evm_tl_leds_device);7 I9 e5 A; J$ ^+ K0 E, C
        if (ret)
. F' U% L" l/ d) u5 m/ V                pr_warning("Could not register som GPIO expander LEDS");$ v) f) w9 R+ w' C" I
        else7 O4 M0 b& ~! ]5 P! H& d! x9 Q
                printk(KERN_INFO "LED register sucessful!\n");% n0 i$ q* k! I0 H$ b% [& U

# Y: G; k5 R0 L5 P5 V1 o        return ret;8 R9 c; C0 N8 m4 E, t! b
}1 @- [  f  q! R3 G4 L* }) w3 Y

* W( K5 K* ?( o8 k" B% B8 |static void __exit led_platform_exit(void)% Z1 t! Z- X6 J- s8 a
{
/ }6 b# E1 g8 W2 ^4 n$ r+ E, W        platform_device_unregister(&da850_evm_tl_leds_device);
: V  R9 v' |6 w% y& q; X* T! T) s; b4 w) _
        printk(KERN_INFO "LED unregister!\n");3 V! Z5 u& _6 w) @: f  e
}4 D. O$ P% E5 o0 \, ~
2 y# T7 K& K# X" a( H- H- t
module_init(led_platform_init);( R% A( c" O) W! a* m
module_exit(led_platform_exit);. J* G4 V3 Y6 J2 \; G
- i! O" a9 X) K, Y0 f+ }
MODULE_DESCRIPTION("Led platform driver");. ~4 L2 g2 x) \0 H* Z+ C4 S& ?
MODULE_AUTHOR("Tronlong");
/ {9 ?. I7 j% TMODULE_LICENSE("GPL");
3 ]0 V  L) I0 {
) p9 I3 T: k3 ^0 y9 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 06:18 , Processed in 0.041146 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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