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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 p) {* {& w# r5 q1 w7 }8 q- n0 c#include <linux/init.h>
: E* c  d# J" w! k# n/ b#include <linux/module.h>
: w- q8 D7 |0 R7 E6 `) a' F, c#include <linux/kernel.h>/ \2 l4 T1 b3 e: B# g$ H
#include <linux/types.h>! h: }5 m, N. }# ?' n! m
#include <linux/gpio.h>/ l, U2 ^' j: ?3 A: ~( D0 `* k
#include <linux/leds.h>
: a4 I; q. J8 `, Y2 e& u0 ?4 s#include <linux/platform_device.h>* E  ?8 w4 R5 d+ s: ?/ P

& s6 R1 O/ ]' Y- B, T#include <asm/mach-types.h># c* X# k+ n8 M$ C; `7 Y
#include <asm/mach/arch.h>! m" L# b7 V. d5 D' I2 X" M
#include <mach/da8xx.h>  N% f8 r1 f0 @! O: N( C
#include <mach/mux.h>0 Z; @( p- Z9 L1 k; B

1 t  T" p+ h- [0 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), b7 W8 w. R  F) B& Y: @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  s. _% S' k# t& I( p4 I7 h$ @" J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ [% Q/ e, z0 A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# q# I2 \1 R$ O% U$ P

; x, c* ~* j1 J" _, N% G6 v/* assign the tl som board LED-GPIOs*/' ~9 F) A0 a' L! h( ]
static const short da850_evm_tl_user_led_pins[] = {
1 m3 @& Z1 E, l/ {0 U- L        /* These pins are definition at <mach/mux.h> file */. l4 u& s% B+ f+ o. k( J6 u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- v4 G: Q& n+ F0 F9 L1 \& M% P$ j
        -1
4 |4 U# m, C$ T6 I% _; y1 `};
* w0 a! N; ^8 p! }, J1 \% t' E8 f# @( h! R/ V7 _  [- V7 M& J* r
static struct gpio_led da850_evm_tl_leds[] = {
1 G: Y4 e9 u* D- d$ r/ }7 C- O        {4 \( I: |. z) h! `& T  U7 e0 I
                .active_low = 0,- U( h3 l3 L- p9 y, v1 S& ^
                .gpio = DA850_USER_LED0,
$ O3 E; D4 H% t; J. d3 B1 A; [, {                .name = "user_led0",
7 ]! b0 j: a- ^$ W" j                .default_trigger = "default-on",
8 o$ {8 D- V# ^1 p% D        },
9 [  V2 D1 M8 k; U5 @        {
9 w/ k1 O( _3 m8 V, p% k                .active_low = 0,+ j% n+ \% a$ l
                .gpio = DA850_USER_LED1,1 s$ A, Y; Y' g! @% v% V! o5 V
                .name = "user_led1",
. }4 K/ s8 P) S. z7 J" v                .default_trigger = "default-on",5 m6 o+ b* L& n9 w
        },
. v$ _8 p+ H! V1 R  q1 w        {' u$ W! I3 t. ~7 i3 a5 F  ^
                .active_low = 0,4 Y! S8 K7 K% w6 R. Y4 J
                .gpio = DA850_USER_LED2,! r9 S/ I( g6 ^: I3 ]6 f, U$ D
                .name = "user_led2",* |* T9 `8 z* y) t. \. r
                .default_trigger = "default-on",
( X  e# @$ `6 m- ]3 b0 B        },
" M  a. u$ `1 V        {5 I5 ]- l8 d7 H
                .active_low = 0,, L  T) k! O' X* O1 P9 J0 w
                .gpio = DA850_USER_LED3,
$ {* J9 a& |1 b1 }                .name = "user_led3",
1 ^2 ]8 i% O/ G0 ?" ~% K8 }* o                .default_trigger = "default-on",
0 _7 `6 l$ y" J2 g% M6 S% P, v' _1 @        },# |$ L  [( @* ?; H: P! L
};
/ K' a* d! i$ ~( |, @3 l; j0 q$ L" V- \, l2 E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% d6 @7 i; V5 w. Q# H        .leds = da850_evm_tl_leds,2 J- e1 z) d! I, r+ `2 ?$ J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# [- O: ?. O0 Z; K};
0 O! H. G9 J, L* W& E$ y( ]5 V8 @: f$ {; s9 A9 n  @
static void led_dev_release(struct device *dev)
, x9 Q. N6 q, o  A9 z{
! [- I6 B3 K0 r& k, x+ w};
' W' p# Z- j. M/ [/ k/ j0 s) Z+ ~" q" k# T; ~
static struct platform_device da850_evm_tl_leds_device = {
- [3 Y8 {- K3 |        .name                = "leds-gpio",6 f, Z! @# u' m) z% w* G6 h
        .id                = 1,
4 k# G- B( W9 r7 D- X4 t5 ^$ W        .dev = {/ W- D( C: ~! b
                .platform_data = &da850_evm_tl_leds_pdata,
: O% n8 o- {, R6 s' A                .release = led_dev_release,
5 p0 x1 T' J, K        }0 t, d2 T4 D+ e- n, M! u3 L. j
};
, r) E9 \( o. d1 m
% D2 ^$ ?2 e- x9 |  j1 [1 Estatic int __init led_platform_init(void)
6 k( l8 z9 G7 d$ O% y& A' R{
. V2 t$ d7 |7 L+ Z3 C7 A        int ret;+ ?$ c* G( S: D& p+ X+ V
#if 00 i& H7 S8 O/ ?! m5 V1 {& n. B7 h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 j5 h. P9 p/ r$ t. l% ]1 ^
        if (ret)
$ I) S+ u1 O* s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! J5 T; M2 R4 g; ^. S
                                "%d\n", ret);
& o$ J7 g7 }# W% n' \#endif6 w) Z- A( U0 ^5 [' q) u
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 P2 U; `% v; Z1 }        if (ret)
+ S' P- ?5 ^: ?8 i' E/ X                pr_warning("Could not register som GPIO expander LEDS");
9 K; ?5 q1 {* g: W' l+ Z5 C        else- a! t- s3 h" n9 Z
                printk(KERN_INFO "LED register sucessful!\n");: J# ^8 h6 y! Y: X

# W7 X  h+ S( A0 b        return ret;1 S( L- ~2 C& V! m: C1 v; [/ q  R5 x
}" }! a) `0 @' Z% J' {+ @" [
# E2 z' ]; G* K
static void __exit led_platform_exit(void)
6 \7 ?  S! }  K" e. a. T( @' ^{
) s3 K9 V* h# @8 Y6 ]        platform_device_unregister(&da850_evm_tl_leds_device);
4 t7 E4 i9 H5 B5 v/ `0 E7 ^, Z9 _* X# p# f9 V, T, s! f
        printk(KERN_INFO "LED unregister!\n");( ]& ]3 Q$ m/ v' Q& @1 q0 q
}! @5 r; g$ b( ~/ s& h. C

" g- |5 q6 b* h0 wmodule_init(led_platform_init);9 ]9 V* z" d) Z" v9 l3 Z: B/ Q
module_exit(led_platform_exit);2 p- Q1 n- r& o5 k, z, @

! t5 w* o# A  d; I$ w# KMODULE_DESCRIPTION("Led platform driver");
; w# [  P8 ~- t0 H; jMODULE_AUTHOR("Tronlong");
6 h* C" _  |4 _9 V) L3 ?% V1 VMODULE_LICENSE("GPL");
9 ~& o, Q. Q  l; G) ^! a
3 I% t* S0 e) ^) ^  I) e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 18:05 , Processed in 0.040457 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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