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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ `9 a; f: I' ~. R  ?& u  ?1 o
#include <linux/init.h>
  c5 w: M8 V8 u( z#include <linux/module.h>- s0 P- A1 r8 B; G) [$ B
#include <linux/kernel.h>
: ]$ i# L, v  p; Z; Q#include <linux/types.h>
' U) q0 }# W( P, d+ i#include <linux/gpio.h>5 o+ G5 x+ V) K' \6 G5 n
#include <linux/leds.h>( T( q1 U6 u# H- I
#include <linux/platform_device.h>
7 X1 Z0 U- b1 B* G: N( v: m- ]) q( x" q8 o& E& C( {
#include <asm/mach-types.h>  X3 K. j2 Y' L0 @0 Y
#include <asm/mach/arch.h>
+ f- K+ Q! D: j: a#include <mach/da8xx.h>, D: j& K1 n- V
#include <mach/mux.h>
5 H! e2 h4 [; _3 i) Z  {' x: n( R. g* |6 t! X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* x0 ~8 }" M; Z# J8 E' T, o7 Y; S: ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). ^2 h9 G" U1 J: E% [- A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% x; @7 z4 x/ i* Q: I* o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; z/ X# Q& R1 O' p4 y0 m) N# k4 E. _' E$ J' G
/* assign the tl som board LED-GPIOs*/  y0 J, @. m8 G" B2 ]: N  h
static const short da850_evm_tl_user_led_pins[] = {
; h! L+ ]! @+ B' _        /* These pins are definition at <mach/mux.h> file */
2 Q! S+ e3 L* b+ [3 t+ h! y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 {/ @( c( _( r( e) [        -13 I% j4 K. `" {. |( s& i' N" ]. N7 s
};
1 w) A- ^$ d  N" x  n5 J1 Q: F/ o1 S$ f) e! ~; @
static struct gpio_led da850_evm_tl_leds[] = {
' e) u, b: [  r$ _1 x        {' S8 F9 B& T3 F
                .active_low = 0,
9 ]7 W$ A: E( K7 e# [1 h+ }                .gpio = DA850_USER_LED0,
7 P3 R; k; R# f' w2 p) X! R+ F                .name = "user_led0",7 k$ s7 r2 j* G$ _
                .default_trigger = "default-on",* u/ E( q7 T; ~2 E) ?
        },
; u' Q' o" r4 f2 @7 U3 Y; a        {" {( L, z  g7 U
                .active_low = 0,
5 |7 R* J: A9 N8 x: n4 g8 h- B+ [                .gpio = DA850_USER_LED1,9 `: \' j. e# I. Z( r. Z5 v( V1 S
                .name = "user_led1",
* o0 d1 o, m" V7 r# D9 |3 c                .default_trigger = "default-on",
  Q4 ?# p3 a! u& }& i8 ~        },
' z$ [! I9 _9 n) c( Y4 ?) g        {
# v; ^& X  f  q0 j                .active_low = 0,) B: i; |9 M* n; m( E5 u
                .gpio = DA850_USER_LED2,& B2 B! c. c% V; Y: b  V
                .name = "user_led2",) T$ l( j8 x! o1 J: b
                .default_trigger = "default-on",% x) `% ]4 e! j# d- d
        },
7 ^5 H  o% r, H9 g  L7 U" Y        {
$ c! v: o$ J) h) C- W$ ^                .active_low = 0,
1 w& o- _4 H2 h                .gpio = DA850_USER_LED3,2 F3 u! P1 f7 a. U8 |
                .name = "user_led3",2 D* P2 X; k% o% v
                .default_trigger = "default-on",
" d5 |1 K' Z- O& h! A- N8 T" H        },
4 N% r; T! X( P' n" G; }};* u5 a- S" v0 r& d, Q/ U/ q$ x% b4 P
8 c9 Q7 g5 z) D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) I$ ~9 }7 U" |3 x" ?4 _! n
        .leds = da850_evm_tl_leds,% Z8 {/ C. `5 S) x5 W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; b, L# i. R$ |0 D# h8 a6 k};
1 e' P. {8 _; q
5 t! {' B( ?2 q) [static void led_dev_release(struct device *dev)
  h( J/ V( i6 d8 m" Y{* J/ Y, @. V9 Y( z
};3 a* m) D5 v% s1 }& J
; r" `$ {8 E8 Y+ G* V0 m* H# k
static struct platform_device da850_evm_tl_leds_device = {
: r; \+ D1 ^5 l! n, z) o        .name                = "leds-gpio",
( `' Y# J- q) G- U0 \$ ^* p$ ]' a        .id                = 1,3 w5 v0 \% H0 M# W8 a/ ~. c
        .dev = {
# o# R8 S" c$ s  R                .platform_data = &da850_evm_tl_leds_pdata,
1 p$ V+ y8 ]& t$ Y                .release = led_dev_release,4 c; M; B$ ]# J) R  v
        }
0 R1 q7 D0 ^1 |% J6 i( ^};. t/ m  ]3 {+ n7 Z, H

3 T; U/ |% h; Q% s. H* \static int __init led_platform_init(void)
4 J  y( B& ^! Q0 L{
; V6 n2 @6 B/ h9 h        int ret;
2 @) c( J/ E& |: ~& U#if 0
* l' o! w% U3 u- h  f# j% E4 A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* _  Y4 q3 e/ @" k5 Q) U8 R, F9 O
        if (ret)  ~6 o$ b% |2 B3 r2 v% t( ]& w3 O$ Z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 m2 Z" D3 o0 G5 ~# F/ e
                                "%d\n", ret);$ Q6 h$ u$ U  P& _# O
#endif
* n# Z7 i# h9 o  I3 S+ R' F        ret = platform_device_register(&da850_evm_tl_leds_device);
7 b. `( m3 O7 Y2 ~8 C9 ]6 J        if (ret)
! `3 K9 t' u/ H0 q% X, r6 \                pr_warning("Could not register som GPIO expander LEDS");+ y: e( b8 V. z) D' s  j) u
        else
! q& G: t4 u5 i' Z! b, U/ A. {2 Z1 y$ i                printk(KERN_INFO "LED register sucessful!\n");
! p  e  Q3 @7 T+ a
/ f6 S, I4 W  {$ z0 R        return ret;
) _+ ?. O1 `: K6 a0 d; a}
% ]9 O% X9 Y* L
+ \7 D. Z, o9 ustatic void __exit led_platform_exit(void). L# i; ^7 ?) E  s" v
{
! X$ G' \$ H- w$ X$ ^) s        platform_device_unregister(&da850_evm_tl_leds_device);7 j& Y3 e8 ~5 A, w) j
( \: l- ^5 `5 s& J6 B
        printk(KERN_INFO "LED unregister!\n");
; j5 }: T4 L6 W2 c" s' r}- Z8 ^, Q  h, T7 i) U6 g" M9 C
( T7 y" d' ^. f
module_init(led_platform_init);! b5 f7 v+ N) V+ M  t
module_exit(led_platform_exit);5 Z3 O5 k6 ^6 q  u
+ r+ C$ ^: k) W- H9 I+ h
MODULE_DESCRIPTION("Led platform driver");
) y. d* [( L* l, N' J/ ]1 YMODULE_AUTHOR("Tronlong");
. S. _- i) W6 F6 b2 y. e# oMODULE_LICENSE("GPL");2 T# E! T* p1 j

; ~% L8 H2 S. h( G! e8 @6 q' O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 23:14 , Processed in 0.044199 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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